AWS DVA デベロッパー Elastic Beanstalkを簡単にまとめてみた
デベロッパー アソシエイトの範囲です。Elastic Beanstalkを簡単にまとめてみました。
Elastic Beanstalk
容量のプロビジョニング、負荷分散、自動スケーリング、ワーカー環境、アプリケーションのデプロイを自動化し、CloudFormationを使ってアプリケーションのバージョンを実行する環境を作成しています。
Elastic Beanstalk を使用すると、アプリケーションを実行しているインフラストラクチャについて心配することなく、AWSでアプリケーションのデプロイと管理を簡単に行うことができます。
◉Elastic Beantalkでエラーが起こった場合、CloudFormationで原因を探る。(サポートしているため)
Elastic Beantalkはライフサイクルポリシーを設定することができ、使用されていない古いバージョンを定期的に削除することができる。
◉ElasticBeantalkでHTTPSエンドポイントを公開する(クライアントと秘密の通信)には、ebextensionファイルを作成して、ロードバランサーを構成することが求められる。
ebextensionsファイル(YAML,JSON形式)を追加することで、環境に含まれるリソースをカスタマイズすることができる。
ElasticBeantalkとX-Rayを統合するには、ElasticBeantalkコンソールにおいて「X-ray統合」を有効化するか、設定ファイルを使用して、X-rayデーモンを設定する必要ある。
ソースコードに設定ファイルを含めて利用するためには、.ebextensions/xray-daemon.config ソースコードの.ebextensionsディレクトリにxray-daemon.config構成ファイルを含めることが必要です。これにより、X-Rayデーモンを有効にすることができます。
ElasticBeantalkはIAMロールが必要。IAMポリシーをアタッチしないといけない。
→デフォルトの場合
・ElasticBeantalkEnhanceHelth インスタンスや環境の正常性確認のためのポリシー
・ElasticBeantalkService 環境を作成、更新するためのポリシー
ElasticBeantalkによって環境を構成すると、CloudFormationスタックが作成され、ALBを含んでいる。
ElasticBeantalkで新バージョンを無停止でリリースしたい場合
→現環境のクローンを作成して、新しい環境に新バージョンのソフトウェアをデプロイする。
◉CLIコマンドからもアプリケーション・環境構築ができる。
eb init アプリケーションを作成する。パラメータの指定ができる。
eb create 環境名を指定して、アプリケーション環境を作成する。
eb deploy 環境の更新デプロイを実行する。
.ebextensionsを追加すると、環境・インスタンスのカスタマイズができる。
◉さまざまな種類のデプロイ方法:どのようなテンポでデプロイするのか選ぶことができる。サービスを中断せずに行うこともできる
All at once 全てのサーバーで同時にIn-Place更新をする。
Rolling サーバーをいくつかのグループに分けてグループごとにIn-Placeを更新する。一部のインスタンスは古いバージョンでリクエストを処理し、デプロイが完了するまでに新しいインスタンスでもリクエストを処理できる。
Rolling with additional batch 新しいバージョンをバッチで展開。古いバージョンが処理してくれるので、処理機能が低下することはない。
Immutable 現バージョンとは別に新バージョンサーバーを構築する。In-Place 稼働中の環境を新しいアプリケーションで更新する。
Liner(線形) 毎分10%づつ割合を増やす
Canary 最初は10%のみ。割合を段階的に増やしていく。
Blue/Green 検証環境をそのまま本番環境として利用することで、システムの停止時間を最小にするデプロイ手法。リクエストの送信先を変更することで実現。クローンを作成して、そこで編集を加える。本番環境にリリースしたい時にURLの入れ替えを行う。
デプロイポリシーを図でわかりやすく説明(BlackBelt)
コメントや要望があれば、下記のツイッターにDMをください。