0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

awspecを活用して、AWS Route53でのサブドメイン追加業務を堅実に実施する

Last updated at Posted at 2015-09-18

awspecを活用して、AWS Route53でのサブドメイン追加業務を堅実に実施する

よくあるサブドメイン追加業務を、awspecを利用して堅実に実施してみます。

1. 修正前のRoute53 Hosted Zoneの状態をawspecでspecファイル化

まずawspecの環境を作ります。awspecで利用するIAMのポリシーは必ずリードオンリー権限のみにしてください。

$ mkdir awspec
$ cd awspec/
$ awspec init
 + spec/
 + spec/spec_helper.rb
 + Rakefile
 + spec/.gitignore
 + .rspec
$ cat <<EOF > spec/secrets.yml
region: ap-northeast-1
aws_access_key_id: XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOF

Hosted Zoneの状態をawspec generate route53_hosted_zoneコマンドを使ってspecファイル化します。

$ echo "require 'spec_helper'" > spec/route53_spec.rb
$ awspec generate route53_hosted_zone example.com. >> spec/route53_spec.rb

生成されたspecはこんな感じ

describe route53_hosted_zone('example.com.') do
  it { should exist }
  its(:resource_record_set_count) { should eq 4 }
  it { should have_record_set('example.com.').a('203.0.113.1').ttl(3600) }
  it { should have_record_set('example.com.').mx('10 mail.example.com').ttl(3600) }
  it { should have_record_set('mail.example.com.').a('203.0.113.1').ttl(3600) }
  it { should have_record_set('example.com.').ns('ns-123.awsdns-45.net.
ns-6789.awsdns-01.org.
ns-2345.awsdns-67.co.uk.
ns-890.awsdns-12.com.').ttl(172800) }
end

これで現状のRoute53 Hosted Zoneのspecファイルが生成されました。
実際にrake specを実行してみます。

$ rake spec

...

Finished in 1.55 seconds (files took 0.66 seconds to load)
6 examples, 0 failures

グリーンになることを確認しました。

2. 今回追加するサブドメインのレコードをspecに追記

今回はdev.example.com のAレコード (203.0.113.3) を追加します。

describe route53_hosted_zone('example.com.') do
  it { should exist }
  its(:resource_record_set_count) { should eq 4 }
  it { should have_record_set('example.com.').a('203.0.113.1').ttl(3600) }
  it { should have_record_set('example.com.').mx('10 mail.example.com').ttl(3600) }
  it { should have_record_set('mail.example.com.').a('203.0.113.1').ttl(3600) }
  it { should have_record_set('example.com.').ns('ns-123.awsdns-45.net.
ns-6789.awsdns-01.org.
ns-2345.awsdns-67.co.uk.
ns-890.awsdns-12.com.').ttl(172800) }
  it { should have_record_set('dev.example.com.').a('203.0.113.3').ttl(3600) } # 開発環境用のために追加
end

コメントが書けるのが意外に便利だったりします。

rake specを実行してレッドになることを確認します。

3. マネジメントコンソールなどでHosted Zoneの修正を実施

手動。。。

手動では実施せず、 roadwalker などを使うとカッコいいと思います。

4. チェック

修正後、rake specを実行してグリーンになることを確認します。

DNSの変更確認に Infrataster::Plugin::Dns を併用するのもカッコいいと思います。

終わり!

その他

なんか前に同じようなエントリーを書いたような。。。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?