プロビジョニングサービス
AWSでは環境構築作業を自動化することができる。
- Elastic Beanstalk
- 定番構成の自動構築
- OpsWorks
- Chef環境を提供し、OSより上のレイヤーの自動構築をサポート
- CloudFormation
- JSONあるいは、YAMLのテンプレートを作成し、OSより下のレイヤーの自動構築をサポート
Elastic Beanstalk
定番のインフラ構成を自動構築するサービス。
- Webサーバー構成(ELB + Auto Scaling + EC2)
- Batchワーカー構成(SQS + Auto Scaling + EC2)
OpsWorks
Chefを利用した構成管理サービス。
ファイルにサーバーの構成を定義し、ミドルウェアのインストールや設定を自動化するツール。
- Chef Client ローカル方式
- 各サーバーがレシピを持ち、自分自身にレシピを適用する方式
- Chef Server/Client方式
- マスターサーバーを用意し、レシピそのものや各サーバーのレシピ適用状況を管理する方式
OpsWorksスタック
Chef Clientローカル方式でChefを利用する場合は、OpsWorksスタックを利用する。
- スタック
- OpsWorksのトップエンティティ。スタック単位の構成情報をJSON形式で保持する。
- レイヤー
- インスタンスの特性ごとにレイヤーを用意する。レイヤーに対してChefレシピをマッピングする。レイヤーが指定してEC2インスタンスを起動することで、インスタンスに対してレシピが適用される。
OpsWorks for Chef Automate
ChefをChef Server/Client方式で利用する場合、Chef Automateという、Chefを統合的に利用するための機能がある。
OpsWorks for Chef Automateを利用すると、Chef Automateサーバーが自動構築される。利用者側でChef Automateサーバーのプロビジョニングやインストール作業を行う必要がなく、Chef Automateサーバー自体のバックアップを行う機能なども標準提供されている。
CloudFormation
AWSリソースを自動構築するためのサービス。
- CloudFormationテンプレートを作成
- テンプレートを適用
- CloudFormationスタックが作成され、それに紐づく形でAWSリソースが自動構築される。
CouldFormationスタック
AWSリソースは、CloudFormationスタックという集合にまとめられる。
- IAMやCloudTrailといったアカウント設定用スタック
- VPCやサブネットといったネットワーク用スタック
- ELBやWebサーバーといったパブリックサブネット用スタック
- DBやインメモリキャッシュといったプライベートサブネット用スタック
CloudFormationテンプレート
スタックの設計図であるCloudFormatioinテンプレートに以下の内容を記載していく。
- VPCの構築
- パブリックサブネットの構築
- EC2インスタンスの構築