CDP:Stack Deploymentパターン

From AWS-CloudDesignPattern
Jump to: navigation, search

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

Contents

解決したい課題

システム開発や運用保守においては、一般的に開発環境やステージング環境を準備する。しかしこれらの環境は常時利用するものでもないので、そのために丸々サーバ群を用意するのは非常にコスト効率が悪い。

クラウドを利用することで仮想サーバを稼働させることができるようになり、一時的に利用する環境へのコスト効率は非常に改善する。

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

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

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

実装

AWSにはCloudFormationと呼ばれる仕組みが提供されており、リソースのテンプレート作成や、それに従いシステム(EC2など)を構築することが可能となる。

  • 既存の環境から、もしくは新規にCloudFormationテンプレートを作成しておく。
  • 利用時に、CloudFormationテンプレートからシステム(EC2など)を一気に構築する。
  • 利用が終わったら、再度CloudFormationテンプレートを利用して一気にシステムを削除する。

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

またこのパターンは、単にシステムをコピーするだけでなく、クラシックなEC2環境からVPC環境への移行時にも適用することができる。実装は以下の通り。

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

構造

6wNg0ISJczU5Pz1m-6EC47.png

利点

  • 立ち上げ順序が関係あるEC2も、その順序通りに起動するようにCloudFormationテンプレートを作成することができるので、オペーレーションミスを減らすことができる
  • CloudFormationテンプレートをバージョニングすることで、システム構成の履歴管理も可能
  • 環境の構築だけでなく、破棄も容易に行える

注意点

  • システム(EC2など)がアップデートされたら、CloudFormationテンプレート内のAMIのIDの記載もアップデートする必要がある。

寄贈したアーキテクト

Ninja of Three

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox