CDP:Bootstrapパターン

提供:AWS-CloudDesignPattern
移動: 案内, 検索
寄贈したアーキテクト

起動設定の自動取得

目次

解決したい課題

 マシンイメージからサーバーを作成する方法、すなわちStampパターンの適用に際し、どの程度の頻度でマシンイメージを取得するかは運用効率に対する課題として、しばしば議論となる。

 Stampパターンでは、ミドルウエアからアプリケーションまですべてが設定済みで、立ち上げるだけでそのまま動くマシンイメージを作成することもできる。この場合、仮想サーバーの起動は非常に早いが、ミドルウエアの一つをバージョンアップしなければならなくなった場合や、アプリケーションの設定に変更が入った場合、マシンイメージを再度作成し直す必要が出てきてしまう。

クラウドでの解決/パターンの説明

 クラウドではマシンイメージの作成が容易にできるだけでなく、起動時にパラメータを設定できるものがある。この機能を利用してサーバー構成に必要なパラメータを渡すことで、サーバーを起動する際に必要な設定をサーバー自ら取得し、インストール、起動、設定までを実施するマシンイメージを作成することが可能となる。これにより、個々のパッケージのバージョン変更などの際にマシンイメージを作り直す必要がなくなる。

実装

 AMI(マシンイメージ)を工夫して作成する。具体的には、EC2(仮想サーバー)の初期化に必要なさまざまなパラメータファイルをS3(インターネットストレージ)に配置し、EC2起動時にそのパラメータファイルを読み込み、動的に自分自身を構築するようにしておく。パラメータファイルはGitなどのリポジトリに置くことも可能である。

 なお、Amazon Linuxにはcloud-initという初期化機能があり、ユーザーデータ領域に初期化スクリプトを書いておくことで、自動的に実行することができる。

  • ブートストラップする際に必要なデータなどを、S3やその他Gitなどのレポジトリに用意しておく。ブートストラップを仕込んだAMIを作成しておく。
  • EC2を、ブートストラップが仕込まれた特定のAMIから起動する。
  • EC2は、起動時に自らが必要なパッケージを取得し、インストール、起動、設定を行う。
  • AMIを基に、必要なときに動的にサーバーを複製できる。

構造

6wNg0ISJczU5Pz1m-33D32.png

利点

  • インストールが必要なパッケージのバージョンがアップデートされたときもAMIを作り直す必要がない。
  • 起動時にパラメーターなどを引き渡すことによって、動的に起動時の設定順序や内容を変更できる。

注意点

  • どのレイヤーまでを固定的なAMIとし、どのレイヤーよりも上を起動時の動的な設定にするかは選択の幅がある。
  • Stampパターンとのトレードオフを考慮し、どちらのパターンを適用するかを検討する。

寄贈したアーキテクト

Ninja of Three

個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス