CDP:Cloud DIパターン
提供:AWS-CloudDesignPattern
変更が多い部分の外出し
目次 |
解決したい課題
規模の大きなシステムでは、アクセス数などの増大とともに多数のサーバーを増設することになる。その場合、サーバー構築に必要なインストールや設定を一つひとつ手作業で行うのは非常に手間となり、期限内で終わらせることも難しくなる。サーバー構築の自動化を行う方法としてシステム管理ツールを利用する方法もあるが、そこにはコストの問題もある。
クラウドでの解決/パターンの説明
仮想サーバーを起動した際、そのサーバーの目的に合わせてサーバーの内部構成を自動的に構築したいケースがある。特にScale OutパターンやCDP:Scheduled Scale Outパターンを使って運用を自動化したい場合に求められる。こうしたケースではBootstrapパターンが有効だが、外出ししておきたい情報(例えばDB接続先IPアドレス、サーバー名、認識番号など)が多くある場合、このCloud DIパターンを利用することでより柔軟にサーバー初期化を行うことができる。
実装
EC2を起動する際、EC2インスタンスに対して、任意のタグをつける機能がある。この機能を利用して、EC2起動時にタグ情報を読み込み、それに応じた設定を行う。
- EC2の固有情報をタグとしてセットする。(例えばEIPをタグとして設定する)
- EC2の起動時に、タグを取得するアプリケーションが起動するよう設定する。
- アプリケーション内で、タグ情報に従ってEC2の初期化を行う(設定したEIPが自動的にEC2に割り当てられる)。
構造
利点
- Stampパターン・Bootstrapパターンを使った汎用的なベースイメージに対して固有の設定を行える。
- タグ情報でパラメータ設定を行うため、マネジメントコンソールで容易に設定したり確認したりできる。
- 自動的に設定を行えるため、運用時のミスを低減できる。
- EC2インスタンスの構築だけでなく、AMIやスナップショットの自動取得を行う仕組みを作る場合にも利用できる。[関連ブログ 1]
注意点
- タグは、付与できる文字数が決まっている場合がある。その場合は、S3のURLやネットワークのファイルパスなど、渡したい情報へのポインタ情報をタグにセットする。
その他
- 情報を引き渡すために、タグだけでなくユーザーデータと呼ばれるメタデータを利用する事もできる。
関連ブログ
- ↑ suz-lab - blog の「タグを利用したEC2のバックアップ(AMI取得)と世代管理」( http://blog.suz-lab.com/2012/05/ec2ami.html )