翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Elastic Beanstalk を使用してコンテナをデプロイする
作成者: Thomas Scott (AWS) と Jean-Baptiste Guillois (AWS)
コードリポジトリ: クラスターサンプルアプリ | 環境:本稼働 | テクノロジー: コンテナとマイクロサービス CloudNative; モダナイゼーション |
AWS サービス: AWS Elastic Beanstalk |
[概要]
Amazon Web Services (AWS) クラウドでは、AWSElastic Beanstalk は Docker を利用可能なプラットフォームとしてサポートしているため、コンテナは作成された環境で実行できます。このパターンは、Elastic Beanstalk サービスを使用してコンテナをデプロイする方法を示しています。このパターンのデプロイでは、Docker プラットフォームベースのウェブサーバー環境が使用されます。
ウェブアプリケーションやサービスをデプロイ、スケーリングするために Elastic Beanstalk を使用する場合、コードをアップロードすると、デプロイが自動的に処理されます。キャパシティのプロビジョニング、ロードバランシング、自動スケーリング、アプリケーションのヘルスモニタリングも含まれます。Elastic Beanstalk を使用すると、ユーザーに代わって作成するAWSリソースを完全に制御できます。Elastic Beanstalk に対する追加料金はありません。支払いは、アプリケーションの保存と実行に使用されるAWSリソースに対してのみ行われます。
このパターンには、AWSElastic Beanstalk コマンドラインインターフェイス (EB CLI) とAWSマネジメントコンソールを使用したデプロイの手順が含まれています。
ユースケース
以下に、Elastic Beanstalk ラベルの一般的なユースケースを示します。
プロトタイプ環境をデプロイして、フロントエンドアプリケーションのデモを行います。(このパターンでは Dockerfile を例として使用しています)。
をデプロイAPIして、特定のドメインのAPIリクエストを処理します。
Docker-Compose を使用して、オーケストレーションソリューションをデプロイします(このモードでは、
docker-compose.yml
は実際の例として使用されません)。
前提条件と制限
前提条件
AWS アカウント
AWS EB CLIがローカルにインストールされている
Docker がローカルマシンにインストールされています
機能制限
無料プランでは、Docker のプル制限は IP アドレスごとに 6 時間あたり 100 回までです。
アーキテクチャ
ターゲットテクノロジースタック
Amazon Elastic Compute Cloud (Amazon EC2) インスタンス
セキュリティグループ
Application Load Balancer
Auto Scaling グループ
ターゲット アーキテクチャ
自動化とスケール
AWS Elastic Beanstalk は、行われたリクエストの数に基づいて自動的にスケーリングできます。AWS 環境用に作成された リソースには、1 つの Application Load Balancer 、Auto Scaling グループ、1 つ以上の Amazon EC2インスタンスが含まれます。
ロードバランサーは、Auto Scaling グループの一部である Amazon EC2インスタンスの前にあります。Amazon EC2 Auto Scaling は、アプリケーションの負荷の増加に対応するため、追加の Amazon EC2インスタンスを自動的に開始します。アプリケーションの負荷が減少すると、Amazon EC2 Auto Scaling はインスタンスを停止しますが、少なくとも 1 つのインスタンスが実行されたままになります。
自動スケーリングトリガー
Elastic Beanstalk 環境の Auto Scaling グループは、2 つの Amazon CloudWatch アラームを使用してスケーリングオペレーションを開始します。各インスタンスの 5 分間の平均アウトバウンドネットワークトラフィックが 6 MB 以上または 2 MB 以下の場合は、デフォルトのトリガーがスケーリングされます。Amazon EC2 Auto Scaling を効果的に使用するには、アプリケーション、インスタンスタイプ、サービス要件に適したトリガーを設定します。レイテンシー、ディスク I/O、CPU使用率、リクエスト数など、いくつかの統計に基づいてスケーリングできます。詳細については、「自動スケーリングトリガー」を参照してください。
ツール
AWS サービス
AWS コマンドラインインターフェイス (AWS CLI) は、コマンドラインシェル内のコマンドを使用してAWSサービスとやり取りするのに役立つオープンソースツールです。
AWS EB コマンドラインインターフェイス (EB CLI) は、Elastic Beanstalk 環境の作成、設定、管理に使用できるコマンドラインクライアントです。
受信したアプリケーションまたはネットワークトラフィックを複数のターゲットに分散するには、Elastic Load Balancing を使用します。例えば、1 つ以上のアベイラビリティーゾーンの Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、コンテナ、IP アドレスにトラフィックを分散できます。
その他のサービス
Docker
は、ライブラリ、システムツール、コード、ランタイムを含むコンテナと呼ばれる、標準化されたユニットにソフトウェアをパッケージ化します。
コード
このパターンのコードは、 GitHub クラスターサンプルアプリケーション
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
リモートリポジトリをクローンを作成します。 |
| アプリケーション開発者、AWS管理者、 AWS DevOps |
Elastic Beanstalk Docker プロジェクトを初期化します。 |
| アプリケーション開発者、AWS管理者、 AWS DevOps |
プロジェクトをローカルでテストします。 |
| アプリケーション開発者、AWS管理者、 AWS DevOps |
タスク | 説明 | 必要なスキル |
---|---|---|
デプロイコマンドの実行 |
| アプリケーション開発者、AWS管理者、 AWS DevOps |
デプロイされたバージョンにアクセスします。 | デプロイコマンドの終了後、 | アプリケーション開発者、AWS管理者、 AWS DevOps |
タスク | 説明 | 必要なスキル |
---|---|---|
ブラウザを使用してアプリケーションをデプロイします。 |
| アプリケーション開発者、AWS管理者、 AWS DevOps |
デプロイされたバージョンにアクセスします。 | デプロイしたら、デプロイされたアプリケーションにアクセスし、URL提供された を選択します。 | アプリケーション開発者、AWS管理者、 AWS DevOps |
関連リソース
追加情報
Elastic Beanstalk を使用するメリット
インフラストラクチャの自動プロビジョニング
基盤となるプラットフォームの自動管理
アプリケーションをサポートするための自動パッチ適用とアップデート
アプリケーションの自動スケーリング
ノード数のカスタマイズが可能
必要に応じて、インフラストラクチャーコンポーネントにアクセス可能
他のコンテナデプロイのソリューションよりもデプロイが簡単