AWSでは、仮想マシンのEC2や仮想ネットワークのVPCなどのリソースで構成するシステム環境を、コードによって表しておくことで、その内容通りに自動構築できる。これはInfrastructure as Codeと呼ばれ、チームで取り組む利点が大きい。

 一つには、環境構築の手間を減らすことができる。環境を記述したコードを一度作成しておけば、同一の環境をいくつでも何度でも手間を掛けずに構築できる。

 品質を向上できるのも利点の一つとして挙げられる。手動でAWS上に環境を構築する場合、設計書を見ながらマネジメントコンソールを操作し、リソースを一つずつ追加する。その際に、設計書の読み違いや操作ミスが発生することがある。

 コードから環境を自動構築すれば、間違いを無くせる。しかも、コードの内容に問題がある場合はエラーとなり環境構築が中断されるので、誤った環境を構築するリスクを抑えられる。

 環境構築のテストが容易になることも利点の一つだ。コード化しておけば、本番環境とは別のAWSアカウントで容易にテストを繰り返せる。テストの結果を基に修正したコードは、そのまま本番環境に適用できる。

 AWSでは、Infrastructure as Codeを実現可能なサービスが二つある。AWS CloudFormationとAWS OpsWorksだ(図1)。

図1 AWSの環境構築自動化サービス
図1 AWSの環境構築自動化サービス
[画像のクリックで拡大表示]

 両者はカバー範囲が一部重複するものの、大まかには補完関係にある。簡単にいうと、CloudFormationはシステム環境全体のリソース作成を行い、OpsWorksは主にEC2インスタンスについてOSの設定変更やソフトウエアのデプロイをする。

 以下、二つのサービスを順に説明する。