- EC2, ELB, RDS, S3 を組み合わせる構築事例が多い
- 定番構成の構築・アプリデプロイの自動化サービス
- 特徴
- 早く簡単にアプリケーションをデプロイ可能
- インフラストラクチャの準備&運営からアプリケーションスタックの管理までを自動化
- Auto Scaling によりコストを抑えながらスケーラビリティを確保
- Java, PHP, .NET, Go, Dockerなどに対応
- 特徴
- chefのレシピを使って、デプロイや運用タスクを自動化可能
- ライフサイクルイベントにより動的な構成変更への対応が可能
- 継続的な構成管理
- 特徴
- Amazon.comと同様の仕組みで管理されたデプロイを実現
- エージェントをインストールするだけでEC2でもオンプレでも管理可能
- グループ内に一度にデプロイしたり1台ずつデプロイしたりと設定可能
- 設定管理 & クラウドのオーケストレーションサービス
- 特徴
- テンプレートを元にEC2やELBといったAWSリソースの環境構築を自動化
- JSONフォーマットのテキストでテンプレートを自由に記述可能
-
各種サービスを3つの観点からご紹介
- プロビジョニング
- デプロイ
- 環境のカスタマイズ
-
注意事項
- どれがベストかという話ではない
-
Elastic Beanstalk
- 2.X台ではgit aws pushというコマンドがあった
- 3.X台ではeb deployというコマンドに変更されているので注意
- デプロイ単位(台数)は分割することができる
- 環境設定のRolling update
- Auto Scalingグループ内にあるインスタンスの置換えを伴う操作を一部ずつ実行できる
- OpsWorks
- JSONのデータをchefのレシピから読み込むことができる
- 5つのライフサイクルイベント(Setup -> Configure -> Deploy -> Undeploy -> Shutdown)
- CodeDeploy
- インスタンスのプロビジョニングの機能は持っていない
- WordPressにAppSpec.yamlを含めておく。以下のようにshファイルで実行タイミングを設定できる
- BeforeInstall
- AfterInstall
- ApplicationStart
- ApplicationStop
- Deployyment Configuration
- どれをデプロイするか
- どうやってデプロイするか
- どこにデプロイするか
- CloudFormation
- 主にプロビジョニングに特化したサービス
- デプロイ&マネージメントサービスを活用することで簡単にデプロイ自動化が可能
- それぞれのサービスでデプロイ手順は異なる
- お客様のシステムの要件と照らしあわせて最適なサービスを選ぶべき