・AWS OpsWorks
インフラ構築を自動で行うサービスの一つです。自動的に構築を行うサービスとしては他に「Elastic Beanstalk」「CloudFormation」。
OpsWorksでは例えば、EC2インスタンス上にサーバー用のパッケージをインストールしてデータベースのセットアップを行い、作成したアプリケーションをデプロイ(動作環境への展開)する、といった一連の作業を自動化することができます。また構築後のアップデート対応やパッチ適用も自動的に行うように設定できます。
OpsWorksではEC2インスタンス、EBS、Elastic IPやCloudWatchなどのAWSリソースを自動的に構成・管理することができます。
Chef、Puppetはどちらもサーバーの構成管理(パッケージのインストールやアプリケーションの設定など)をコード化し、デプロイや管理を自動で行うことができるOSS(オープンソースソフトウェア)。
OpsWorksには以下の利用形態があり、どのツールを使用するかを選択することができます。
・AWS OpsWorks for Chef Automate
・AWS OpsWorks for Puppet Enterprise
・AWS OpsWorks Stacks
以下ではそれぞれのサービスについて説明します。
●AWS OpsWorks for Chef Automate
構成管理ツールとしてChefのソフトウェアスイート「Chef Automate」を使用します。Chef AutomateにはChef本体に加えてテストツールや環境の可視化を行うツールなどが導入されています。
ChefサーバーとChefの設定を適用するクライアント群のサーバークライアント方式で構成されます。Chefの設定ファイル(レシピ、クックブック)やクライアントへの適用状況はサーバーで管理することができます。
既にレシピやクックブックを持っている場合は連動が可能です。
●AWS OpsWorks for Puppet Enterprise
「Puppet Enterprise」はインフラおよびアプリケーション管理を行うPuppetを含むソフトウェアスイートです。Puppetサーバーを用意し、設定ファイル(マニフェスト)や設定を行う各ノード(クライアント)の管理を行うことができます。
既にPuppetのマニフェストを持っている場合は連動が可能です。
●AWS OpsWorks Stacks
Chefをサーバークライアント方式ではなくローカルで使用するサービスです。EC2インスタンスにインストールされているChef Soloクライアントを使用し、自分自身のノードのレシピ管理や状態管理を行います。
なお、Chefの構成管理ファイルであるクックブックは自分で一から作成することも可能ですが、AWSがGitHub上に公開しているものを利用することもできます。