Infrastructure as codeである。
「エンタープライズにAWS?早い早い」などという担当者の方の冷笑はいまや昔。
今日ではあの三菱東京UFJ銀行までがAWSを利用しようかというご時勢である。
そんな時流に乗り、弊社も忙しい。とっても忙しい。
手のぬくもりを大切にした環境構築ではもはや追いつかない。
そこで自動化を推進するわけである。
Terraformは以前からちょいちょい触っていたが、インフラ構築にもTDDをということで、
awsspecを検証してみた。
Amazon Linuxに2.x系のRubyを入れ(詳細は割愛する)、
gem install awspec
mkdir awspec
cd awspec
awspec init
ここまでは順調。
問題はこの後、
echo "require 'spec_helper'" > spec/ec2_and_rds_spec.rb
awspec generate vpc vpc-xxxxxxxxxc >> spec/ec2_and_rds_spec.rb
しようとすると、
$ awspec generate vpc vpc-1871177c >> spec/ec2_and_rds_spec.rb
/home/ec2-user/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/awsecrets-1.10.1/lib/awsecrets.rb:59:in `exist?': no implicit conversion of nil into String (TypeError)
というエラーが出る。
“secrets”とあるからてっきりaws configure関連かと思ったが、実行しても変わりはない。
こんな時は公式サイトを見るのだ。
結局、
・specディレクトリの下にsecrets.ymlを作成
$ cat <<EOF > spec/secrets.yml
region: ap-northeast-1
aws_access_key_id: XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOF
・awsecretsをインストールする
$ gem install awsecrets
とやったところ、specファイルが生成され、自動テストが実行できるようになった。
パラメータシートとにらめっこして画面ショットを取るのもせつないので、
うまく活用していきたい。
オライリージャパン
売り上げランキング: 9,259