Elastic Beanstalk 環境名とCNAMEの命名の仕方と罠

  • 1
    Like
  • 0
    Comment

デフォルトで環境名とCNAMEは同じになるが、それってどうなのかという話です。
僕がbabaa.comというババアの情報サイトの運営主だったとして話を進めていきます。

環境名とCNAMEの命名の結論(読むのだるい人向け)

環境名には意味のない番号を振り、CNAMEは役割に応じた命名をする。

本番環境:
  環境名: babaa-env01
  CNAME: babaa-production-env
ステージング(テスト)環境:
  環境名: babaa-env02
  CNAME: babaa-staging-env

理由等はこの後から説明します〜

20170304111052.png

運用の前提

  • 本番用のCNAMEとドメインが結びついている
  • 環境は本番環境とステージング環境のみ
  • 普段はステージング環境を終了しておく
  • デプロイ時にeb cloneでステージング環境を作成し、eb deployで更新しeb swapで本番環境と入れ替える

Elastic Beanstalkで環境名とCNAMEを同じにしない理由

eb swapではCNAMEのみ入れ替えるのでeb swapし続けた時にわけわからなくなるから

例えば、次のような環境があったとする

本番環境:
  環境名: babaa-env01
  CNAME: babaa-env01
ステージング環境:
  環境名: babaa-env02
  CNAME: babaa-env02

その状態でeb swapすると

ステージング環境:
  環境名: babaa-env01
  CNAME: babaa-env02
本番環境:
  環境名: babaa-env02
  CNAME: babaa-env01

稼働中の本番環境のCNAMEはbabaa-env01だが、扱ってる本番環境の名前はbabaa-env02となる。

シチュエーションによってはさらに多くの環境を立てるので、運用が続きeb swapし続けると以下の様なわけのわからない状態になる。

ステージング環境:
  環境名: babaa-env02
  CNAME: babaa-env04
本番環境:
  環境名: babaa-env03
  CNAME: babaa-env01

しかし、もしもCNAMEをちゃんと設定していれば次のような状態になる

ステージング環境:
  環境名: babaa-env02
  CNAME: babaa-staging-env
本番環境:
  環境名: babaa-env03
  CNAME: babaa-production-env

こうなってしまえば環境名に惑わされないのでハッピー!

ソーシャル

Google, Web関連を中心にソフトウェアの情報をキャッチアップしてます。
「もっと情報共有したいなあ」と思っているので絡んでくれると嬉しいです。

Twitter: https://twitter.com/awjecc