CDP:Stack Deploymentパターン

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

サーバー群立ち上げのテンプレート化

目次

解決したい課題

 システム開発や運用保守においては、テスト環境やステージング環境を準備するのが一般的である。これらの環境は常時利用するものではないので、本番環境と同じ台数のサーバーを用意するのはコスト効率が悪い。仮想サーバーを利用するとコスト効率は改善する。

 しかし、システムが複雑で仮想サーバー数が多い場合、その環境の構築や、関連する仮想サーバーの起動・停止などの作業は煩雑になってしまう。煩雑になればなるほど時間もかかりミスも多くなってしまう。

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

 サーバー群の立ち上げに関するテンプレートを用意し、それに従い一気に自動で起動する方法を利用する。構築したい環境で必要なクラウドコンポーネントをテンプレートに記載しておき、そのテンプレートに従い環境構築を行うことで、複雑なシステムをミスなく容易に準備することが可能となる。

実装

 AWSの「CloudFormation」と呼ぶサービスを使い、サーバーリソースなどを記述した「CloudFormationテンプレート」からシステム(EC2など)を起動する。

  • 新規にもしくは既存の環境からCloudFormationテンプレートを作成しておく。
  • システムを利用する際、CloudFormationテンプレートからシステム(EC2など)を一気に起動する。
  • システムを終了させる際、CloudFormationテンプレートを利用して一気にシステムを削除する。

 テンプレートの作成の際には、既存システムからテンプレートを作成するCloudFormerというツールも利用可能。

 また、CloudFormationテンプレートをAWS Service CatalogのProductとして登録することで、管理者はCloudFomationテンプレートで作成するシステムをサービスメニュー化できる。システムが必要な各担当者はAWS Service Catalogから登録されたProductを選択してシステム環境を構築することができる。

構造

6wNg0ISJczU5Pz1m-6EC47.png

利点

  • 立ち上げ順序が関係ある仮想サーバー(EC2)も、その順序通りに起動するようにスタックテンプレート(CloudFormationテンプレート)を作成できるので、オペーレーションミスを減らすことができる。
  • スタックテンプレート(CloudFormationテンプレート)をバージョニングすることで、システム構成の履歴管理も可能。
  • 環境の構築だけでなく、破棄も容易に行える。
  • スタックテンプレート(CloudFormationテンプレート)は重ねて利用することもできるので、部品としてのテンプレートを幾つか用意し、それらのテンプレートを必要に応じて重ね合わせることで、システムを柔軟に、そして素早く構築することができる。[関連ブログ 1]

注意点

  • システム(仮想サーバーなど)がアップデートされたら、スタックテンプレート(CloudFormationテンプレート)内のマシンイメージ(AMI)のIDの記載もアップデートする必要がある。

その他

またこのパターンは、単にシステムをコピーするだけでなく、クラシックなEC2環境からユーザー企業と専用ネットワークでつながる仮想プライベートクラウド「VPC(Virtual Private Cloud)」環境への移行時にも適用できる。

  • ツール(CloudFormer)を使って、既存システムのCloudFormationテンプレートを作成。
  • 移行先VPC環境(ネットワーク体系、サブネット)を構築。
  • 構築したVPCのIDやサブネットのIDをCloudFormationテンプレートに登録。
  • CloudFormationテンプレートを使用してシステムを起動。

関連ブログ

  1. suz-lab - blog の「複数のCloudFormationのテンプレートを連動させる」( http://blog.suz-lab.com/2012/12/cdp-stack-deployment-cloudformation.html )
個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス