Elastic Beanstalk の使用を開始する方法について説明します。 - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Elastic Beanstalk の使用を開始する方法について説明します。

Elastic Beanstalk を使用すると、ウェブアプリケーションとサービスをデプロイ、モニタリング、スケーリングできます。通常、コードをローカルで開発し、Amazon EC2 サーバーインスタンスにデプロイします。これらのインスタンスは環境とも呼ばれ、 AWS コンソールまたはコマンドラインを介してアップグレードできるプラットフォームで実行されます。

開始するには、コンソールから直接構築済みのサンプルアプリケーションをデプロイすることをお勧めします。次に、ローカルで開発し、 のコマンドラインからデプロイする方法について説明しますQuickStart: Elastic Beanstalk に PHP アプリケーションをデプロイする

Elastic Beanstalk の使用には料金はかかりませんが、このチュートリアルの過程で作成した AWS リソースは、最後に削除するまで標準料金が適用されます。通常、合計料金は 1 ドル未満です。 使用料を最小限に抑える方法については、「AWS 無料利用枠」を参照してください。

このチュートリアルを完了すると、Amazon EC2 インスタンスで実行されている環境を使用して Elastic Beanstalk アプリケーションを作成、設定、デプロイ、更新、モニタリングするための基本を理解できます。

推定所要時間: 35~45 分

ウェブサーバー環境を使用した Elastic Beanstalk アプリケーションのシンプルなアーキテクチャ。

構築する内容

最初の Elastic Beanstalk アプリケーションは、PHP マネージドプラットフォームで PHP サンプルを実行する単一の Amazon EC2 環境で構成されます。

Elastic Beanstalk アプリケーション

Elastic Beanstalk アプリケーションは、Elastic Beanstalk コンポーネント用のコンテナです。これには、アプリケーションコードが Elastic Beanstalk によって提供および管理されるプラットフォームで実行される環境や、ユーザーが提供するカスタムコンテナで実行される環境が含まれます。

環境

Elastic Beanstalk 環境は、Amazon EC2 インスタンスを含む、一緒に実行される AWS リソースのコレクションです。環境を作成すると、Elastic Beanstalk は必要なリソースを AWS アカウントにプロビジョニングします。

プラットフォーム

プラットフォームは、オペレーティングシステム、プログラミング言語ランタイム、ウェブサーバー、アプリケーションサーバー、および追加の Elastic Beanstalk コンポーネントの組み合わせです。Elastic Beanstalk は、管理されたプラットフォームを提供するか、コンテナに独自のプラットフォームを提供できます。

Elastic Beanstalk は、さまざまなプログラミング言語、アプリケーションサーバー、および Docker コンテナ用のプラットフォームをサポートします。環境を作成するときは、プラットフォームを選択する必要があります。プラットフォームはアップグレードできますが、環境のプラットフォームを変更することはできません。

プラットフォームの切り替え

プログラミング言語を変更する必要がある場合は、別のプラットフォームで新しい環境を作成して切り替える必要があります。

ステップ 1 - アプリケーションを作成する

サンプルアプリケーションを作成するには、[Create application] (アプリケーションの作成) コンソールウィザードを使用します。Elastic Beanstalk アプリケーションを作成し、その中に環境を起動します。

注意: 環境は、アプリケーションコードの実行に必要な AWS リソースのコレクションです。

アプリケーションの作成ボタンを指す矢印付きの Elastic Beanstalk コンソール。
アプリケーションを作成する方法

  1. Elastic Beanstalk コンソールで開きます

  2. [Create application] を選択します。

  3. [Application name] (アプリケーション名) に getting-started-app と入力します。

コンソールには、アプリケーションを作成し、環境を設定するための 6 ステップのプロセスが用意されています。このクイックスタートでは、最初の 2 つのステップに集中するだけで済みます。次にスキップして、アプリケーションと環境を確認して作成できます。

環境を設定するには
  1. 環境情報で、環境名に「」と入力しますgs-app-web-env

  2. プラットフォーム で、PHP プラットフォームを選択します。

  3. アプリケーションコードプリセットで、デフォルト (サンプルアプリケーション単一インスタンス) を受け入れ、次へを選択します。

サービスアクセスを設定するには

次に、2 つのロールが必要です。サービスロールを使用すると、Elastic Beanstalk は EC2 インスタンスをモニタリングし、環境のプラットフォームをアップグレードできます。EC2 インスタンスプロファイルロールは、ログの書き込みや他の サービスとの対話などのタスクを許可します。

サービスロールを作成するには
  1. サービスロール で、ロールの作成 を選択します。

  2. [信頼できるエンティティタイプ] で、[AWS サービス] を選択してください。

  3. ユースケースでは、Elastic Beanstalk – Environment を選択します。

  4. [次へ] を選択します。

  5. アクセス許可ポリシーに以下が含まれていることを確認し、次へを選択します。

    • AWSElasticBeanstalkEnhancedHealth

    • AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy

  6. [ロールの作成] を選択してください。

  7. サービスアクセスの設定タブに戻り、リストを更新して、新しく作成したサービスロールを選択します。

EC2 インスタンスプロファイルを作成するには
  1. [ロールの作成] を選択してください。

  2. [信頼できるエンティティタイプ] で、[AWS サービス] を選択します。

  3. ユースケースで、Elastic Beanstalk – Compute を選択します。

  4. [次へ] を選択します。

  5. アクセス許可ポリシーに以下が含まれていることを確認し、次を選択します。

    • AWSElasticBeanstalkWebTier

    • AWSElasticBeanstalkWorkerTier

    • AWSElasticBeanstalkMulticontainerDocker

  6. [ロールの作成] を選択してください。

  7. サービスアクセスの設定タブに戻り、リストを更新して、新しく作成した EC2 インスタンスプロファイルを選択します。

アプリケーションの設定と作成を完了するには
  1. EC2 キーペアをスキップします。

    コンソールから Amazon EC2 インスタンスに接続するその他の方法を示します。

  2. 「レビューにスキップ」を選択して、いくつかのオプションステップを移動します。

    オプションの手順: ネットワーク、データベース、スケーリングパラメータ、更新の高度な設定、モニタリング、ログ記録。

  3. 選択の概要を示すレビューページで、送信を選択します。

お疲れ様でした。

アプリケーションを作成し、環境を設定しました。次に、リソースがデプロイされるのを待つ必要があります。

ステップ 2 - アプリケーションをデプロイする

アプリケーションを作成すると、Elastic Beanstalk が環境をセットアップします。座って待つだけで済みます。

初期デプロイでは、リソースの作成に最大 5 分かかる場合があります。変更のみがスタックにデプロイされるため、更新にかかる時間が短くなります。

デプロイプロセスを表す図

サンプルアプリケーションを作成すると、Elastic Beanstalk によって次の S リソースが作成されます。

  • EC2 インスタンス – 選択したプラットフォームでウェブアプリケーションを実行するように設定された Amazon EC2 仮想マシン。

    各プラットフォームは、特定の言語バージョン、フレームワーク、ウェブコンテナ、またはそれらの組み合わせをサポートするために、さまざまなソフトウェア、設定ファイル、スクリプトを実行します。ほとんどのプラットフォームでは、Apache または nginx をリバースプロキシとして使用して、ウェブトラフィックをウェブアプリケーションに転送し、静的アセットを提供し、アクセスログとエラーログを生成します。Amazon EC2 インスタンスに接続して、設定とログを表示できます。

  • インスタンスセキュリティグループ – Amazon EC2 セキュリティグループが作成され、ポート 80 での受信リクエストが許可されるため、ロードバランサーのインバウンドトラフィックはウェブアプリケーションに到達できます。

  • Amazon S3 バケット – ソースコード、ログ、その他のアーティファクトのストレージの場所。

  • Amazon CloudWatch アラーム – インスタンスの負荷をモニタリングし、必要に応じてスケールアップまたはスケールダウンするために 2 つの CloudWatch アラームが作成されます。

  • AWS CloudFormation スタック – Elastic Beanstalk は AWS CloudFormation を使用して 環境にリソースをデプロイし、設定を変更します。リソース定義テンプレートは AWS CloudFormation コンソールで表示できます。

  • ドメイン名 – ウェブアプリにルーティングするドメイン名。 subdomain.region.elasticbeanstalk.com

Elastic Beanstalk は、アプリケーションを作成し、環境を起動し、アプリケーションバージョンを作成し、コードを環境にデプロイします。プロセス中、コンソールは進行状況を追跡し、イベントタブにイベントステータスを表示します。

ウェブサーバー環境を使用した Elastic Beanstalk アプリケーションのアーキテクチャの概要。

すべてのリソースがデプロイされると、環境の状態は に変わりますOk

アプリケーションの準備ができました。

アプリケーションの状態が に変わったらOk、ウェブアプリケーションのウェブサイトを参照できます。

ステップ 3 - Elastic Beanstalk 環境を調べる

コンソールの環境の概要ページから、デプロイされたアプリケーション環境の探索を開始します。

環境とアプリケーションを表示するには
  1. Elastic Beanstalk コンソールを開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

  3. 環境に移動を選択してアプリケーションを参照します。

    ドメインにリストされている URL リンクを選択してアプリケーションを参照することもできます)。

    接続は HTTP (HTTPS ではない) になるため、ブラウザに警告が表示されることがあります。

サンプル Elastic Beanstalk アプリケーションの「おめでとうございます」画面の例を示します。

Elastic Beanstalk コンソールに戻ると、上部に環境の概要と、名前、ドメイン URL、現在のヘルスステータス、実行中のバージョン、アプリケーションが実行されているプラットフォームなど、環境に関する最上位の情報が表示されます。実行中のバージョンとプラットフォームは、現在デプロイされているアプリケーションのトラブルシューティングに不可欠です。

概要ペインの後に、イベントタブに最近の環境アクティビティが表示されます。

起動された環境を示す Elastic Beanstalk コンソール。

Elastic Beanstalk が AWS リソースを作成し、アプリケーションを起動している間、環境は Pending状態になります。起動イベントに関するステータスメッセージは、イベント のリストに継続的に追加されます。

環境のドメインは、デプロイされたウェブアプリケーションの URL です。左側のナビゲーションペインの「環境に移動」でもドメインに移動します。同様に、左側のナビゲーションペインには、さまざまなタブに対応するリンクがあります。

左側のナビゲーションペインの設定リンクに注意してください。環境設定オプション値の概要がカテゴリ別にグループ化されて表示されます。

環境設定

左側のナビゲーションペインの設定リンクを書き留めます。サービスロール、ネットワーク、データベース、スケーリング、マネージドプラットフォームの更新、メモリ、ヘルスモニタリング、ローリングデプロイ、ログ記録など、詳細な環境設定を表示および編集できます。

さまざまなタブには、環境に関する詳細情報が含まれています。

  • イベント – 環境内のリソースの Elastic Beanstalk サービスおよびその他の サービスからの情報とエラーメッセージの更新リストを表示します。

  • Health – アプリケーションを実行している Amazon EC2 インスタンスのステータスと詳細なヘルス情報を表示します。

  • [Logs] (ログ) - 環境内の Amazon EC2 からログを取得してダウンロードします。ログ全体または最近のアクティビティを取得できます。取得したログは 15 分間使用できます。

  • モニタリング – 平均レイテンシーや CPU 使用率など、環境の統計を表示します。

  • アラーム – 環境メトリクス用に設定されたアラームを表示および編集します。

  • マネージド更新 – 今後および完了したマネージドプラットフォームの更新とインスタンスの置き換えに関する情報を表示します。

  • タグ – 環境に適用されるキーと値のペアを表示および編集します。

注記

コンソールナビゲーションペインのリンクには、対応するタブが表示されます。

ログによるトラブルシューティング

予期しない動作のトラブルシューティングやデプロイのデバッグを行うには、環境のログを確認することをお勧めします。

Elastic Beanstalk コンソールのログタブで、すべてのログファイルの 100 行をリクエストできます。または、Amazon EC2 インスタンスに直接接続し、ログをリアルタイムでテーリングすることもできます。

ログをリクエストするには (Elastic Beanstalk コンソール)
  1. Elastic Beanstalk コンソールで環境に移動します。

  2. ログタブまたは左ナビゲーションを選択し、リクエストログを選択します。

  3. 最後の 100 行を選択します。

  4. ログを作成したら、ダウンロードリンクを選択してブラウザでログを表示します。

ログで、 ログを検索し、nginx アクセスログの ディレクトリを書き留めます。

Amazon EC2 への接続を有効にするポリシーを追加する

接続する前に、Session Manager を使用して Amazon EC2 への接続を有効にするポリシーを追加する必要があります。

  1. [IAM console] (IAM コンソール) に入ります。

  2. aws-elasticbeanstalk-ec2-role ロールを検索して選択します。

  3. アクセス許可を追加を選択し、ポリシーをアタッチします。

  4. 次のテキストでまるデフォルトポリシーを検索しAmazonSSMManagedEC2Instance、ロールに追加します。

Session Manager を使用して Amazon EC2 に接続するには
  1. Amazon EC2 コンソールに移動します。

  2. インスタンスを選択し、gs-app-web-envインスタンスを選択します。

  3. Connect を選択し、Session Manager を選択します。

  4. [接続] を選択します。

インスタンスに接続したら、bash シェルを起動し、ログをテーリングします。

  1. bash コマンドを実行します。

  2. cd /var/log/nginx コマンドを実行します。

  3. tail -f access.log コマンドを実行します。

  4. ブラウザで、アプリケーションドメイン URL に移動します。更新します。

おめでとうございます。接続されました。

ページを更新するたびに、インスタンスの更新にログエントリが表示されます。

接続ボタンが機能しませんか?

接続ボタンが使用できない場合は、IAM に戻り、必要なポリシーをロールに追加したことを確認します。

ステップ 4 - アプリケーションを更新する

最終的には、アプリケーションを更新します。環境で現在実行中の他の更新オペレーションがなければ、アプリケーションの新しいバージョンはいつでもデプロイ可能です。

このチュートリアル開始時のアプリケーションバージョンは、サンプルアプリケーションと呼ばれます。

環境の更新を示す図。
アプリケーションバージョンを更新するには
  1. 次の PHP サンプルアプリケーションをダウンロードします。

    PHPphp-v2.zip

  2. Elastic Beanstalk コンソールを開き、リージョンリストで を選択します AWS リージョン。

  3. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

  4. 環境の概要ページで、[Upload and deploy (アップロードとデプロイ)] を選択します。

  5. [ファイルを選択] を選択し、ダウンロードしたサンプルアプリケーションソースバンドルをアップロードします。

    コンソールは、バージョンラベルに新しい一意のラベルを自動的に入力し、末尾の整数を自動的に増分します。独自のバージョンラベルを選択する場合は、一意であることを確認してください。

  6. [デプロイ] を選択します。

Elastic Beanstalk がファイルを Amazon EC2 インスタンスにデプロイしている間、[環境概要] ページでデプロイステータスを表示できます。アプリケーションバージョンがアップデートされている間、環境の [ヘルス] ステータスは灰色になります。デプロイが完了すると、Elastic Beanstalk によってアプリケーションのヘルスチェックが実行されます。アプリケーションがヘルスチェックに応答すると、正常と見なされ、ステータスは緑色に戻ります。環境概要には、新しい [実行バージョン] に [バージョンラベル ] として指定した名前が表示されます。

Elastic Beanstalk により、新しいアプリケーションバージョンがアップロードされ、アプリケーションバージョンのテーブルにも追加されます。テーブルを表示するには、ナビゲーションペインの [getting-started-app][Application versions] (アプリケーションバージョン) を選択します。

更新に成功しました。

ブラウザを更新すると、更新された「v2」メッセージが表示されます。

ソースを自分で編集する場合は、ソースバンドルを解凍、編集、再圧縮します。macOS では、-X を使用して php ディレクトリ内から次のコマンドを使用して、追加のファイル属性を除外します。

zip -X -r ../php-v2.zip .

ステップ 5 - アプリケーションをスケールする

お使いのアプリケーションに適合するよう、環境をカスタマイズすることができます。例えば、計算量の多いアプリケーションがある場合、アプリケーションを実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの種類を変更できます。設定の変更を適用するために、Elastic Beanstalk は環境の更新を実行します。

一部の簡単な設定の変更はすぐに反映されます。一部の変更では、 AWS リソースを削除して再作成する必要があります。これには数分かかる場合があります。構成設定を変更すると、Elastic Beanstalk により、アプリケーションのダウンタイムが発生する可能性について警告が表示されます。

環境の拡大を示す図。

容量設定を増やす

この構成変更の例では、環境の容量設定を編集します。Auto Scaling グループに 2 つから 4 つの Amazon EC2 インスタンスを持つ負荷分散型のスケーラブルな環境を設定し、変更が行われたことを確認します。Elastic Beanstalk は Amazon EC2 インスタンスを作成し、最初に作成した 1 つのインスタンスに追加します。次に、Elastic Beanstalk は両方のインスタンスを環境内のロードバランサーに関連付けます。その結果、アプリケーションの応答性が向上し、可用性が向上します。

環境の容量を変更するには
  1. Elastic Beanstalk コンソールを開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [Instance traffic and scaling] (インスタンスのトラフィックおよびスケーリング) 設定カテゴリで、[Edit] (編集) を選択します。

  5. [Instances] (インスタンス) セクションを折りたたむと、[Capacity] (容量) セクションが見やすくなります。[Auto Scaling group] (Auto Scaling グループ) で、[Environment type] (環境タイプ) を [Load balanced] (負荷分散) に変更します。

  6. インスタンス行で、最小 を に2最大 を に変更します4

  7. ページの最下部で [適用] を選択し変更を保存します。

    更新によって現在のインスタンスがすべて置き換えられることが警告された場合。確認 を選択します。

環境の更新には数分程かかります。イベントのリストにいくつかの更新が表示されます。イベントをモニタリングする 環境に新しい設定を正常にデプロイしました

容量の増加を検証する

環境の更新が完了し、環境の準備が完了すると、Elastic Beanstalk は新しい最小容量設定を満たすために 2 番目のインスタンスを自動的に起動します。

増加した容量を確認するには
  1. タブリストまたは左側のナビゲーションペインからヘルスを選択します。

  2. 拡張インスタンスのヘルスセクションを確認します。

スケールアップしたばかりです。

2 つの Amazon EC2 インスタンスでは、環境容量が 2 倍になり、数分しかかかりませんでした。

Elastic Beanstalk 環境のクリーンアップ

使用していないサービスに対して課金されないようにするには、すべてのアプリケーションバージョンを削除し、環境を終了してください。これにより、環境が作成した AWS リソースも削除されます。

リソースの削除を示す図。
アプリケーションおよび関連するすべてのリソースを削除するには
  1. すべてのアプリケーションバージョンを削除します。

    1. Elastic Beanstalk コンソールを開き、リージョンリストで を選択します AWS リージョン。

    2. ナビゲーションペインで、[アプリケーション] を選択し、[getting-started-app] を選択します。

    3. ナビゲーションペインで、アプリケーション名を見つけ、[アプリケーションバージョン] を選択します。

    4. [アプリケーションバージョン] ページで、削除するすべてのアプリケーションバージョンを選択します。

    5. [アクション] を選択し、[削除] を選択します。

    6. [Amazon S3 からのバージョンの削除] をオンにします。

    7. [削除] を選択してから、[完了] を選択します。

  2. 環境を終了します。

    1. ナビゲーションペインで、[gettinging-started-app] を選択してから、環境リストで [GettingStartedApp-env] を選択します。

    2. [アクション]、[環境の終了] の順に選択します。

    3. 環境名を入力し、GettingStartedApp-env の終了を確認した後に、[Terminate] (終了) を選択します。

  3. getting-started-app アプリケーションを削除します。

    1. ナビゲーションペインで、[getting-started-app] を選択します。

    2. [アクション] を選択してから、[アプリケーションの削除] を選択します。

    3. アプリケーション名を入力して [getting-started-app] を削除することを確認し、[削除] を選択します。

お疲れ様でした。

サンプルアプリケーションを AWS クラウドに正常にデプロイし、新しいバージョンをアップロードし、その設定を変更して 2 番目の Auto Scaling インスタンスを追加し、リソースをクリーンアップしました AWS 。

次のステップ

eb コマンドラインツールを使用して Elastic Beanstalk へのコードのデプロイを自動化する方法については、「」を続行することをお勧めしますQuickStart: Elastic Beanstalk に PHP アプリケーションをデプロイする

次に、HTTPS 接続の設定方法を確認します。「」を参照してくださいElastic Beanstalk 環境の HTTPS の設定