メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

Elastic Beanstalk の使用開始

Elastic Beanstalk を初めて使う場合、以下の手順に沿って操作することで、アプリケーションの作成、表示、デプロイ、更新だけでなく、環境の編集および終了も行えます。ポイントアンドクリック型のウェブベースインターフェイスである AWS マネジメントコンソール を使用してこれらのタスクを実行します。

ステップ 1: サービスへのサインアップ

まだ AWS カスタマーではない場合は、サインアップする必要があります。サインアップすることによって、Elastic Beanstalk および Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (Amazon S3)、および Amazon Simple Notification Service (Amazon SNS)など、必要な他の AWS サービスにアクセスできるようになります。

サインアップして AWS アカウントを作成するには

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

  2. 表示される手順に従います。

ステップ 2: アプリケーションの作成

次に、サンプルアプリケーションを作成してデプロイします。この手順では、用意されているサンプルアプリケーションを使用します。

Elastic Beanstalk の使用は無料ですが、提供される AWS リソースは実動のものです (サンドボックス環境では実行されません)。このチュートリアルにある最後のタスクで AWS リソースを終了するまで、標準使用料が発生します。使用料合計はごくわずかです(通常 1 USD 未満)。料金を最小限に抑える方法については、http://aws.amazon.com/free/ を参照してください。

サンプルアプリケーションを作成するには

  1. 次の事前に設定されたリンクで Elastic Beanstalk マネジメントコンソールを開きます: https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=getting-started&environmentType=LoadBalanced

  2. プラットフォームを選択し、[Review and launch] を選択します。

     New Environment Wizard
  3. 使用できる設定を確認し、[Create app] を選択します。

AWS リソースでサンプルアプリケーションを実行するには、Elastic Beanstalk が以下のアクションを実行して、その完了までに約 5 分かかります。

  • getting-started という Elastic Beanstalk アプリケーションを作成します。

  • 以下の AWS リソースを使用して、Custom-env という名前の環境を起動します。

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

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

    • インスタンスセキュリティグループ – ポート 80 上の進入を許可するように設定された Amazon EC2 セキュリティグループ。 このリソースでは、ロードバランサーからの HTTP トラフィックが、ウェブアプリケーションを実行している EC2 インスタンスに達することができます。 デフォルトでは、トラフィックは他のポート上で許可されません。

    • ロードバランサー – アプリケーションを実行するインスタンスにリクエストを分散するように設定された Elastic Load Balancing ロードバランサー。 ロードバランサーにより、インスタンスを直接インターネットに公開する必要もなくなります。

    • ロードバランサー セキュリティグループ – ポート 80 上の進入を許可するように設定された Amazon EC2 セキュリティグループ。 このリソースでは、インターネットからの HTTP トラフィックが、ロードバランサーに達することができます。 デフォルトでは、トラフィックは他のポート上で許可されません。

    • Auto Scaling グループ – インスタンスが終了されたか利用不可になった場合にそのインスタンスを置き換えるように設定された Auto Scaling グループ。

    • Amazon S3 バケット – Elastic Beanstalk の使用時に作成されるソースコード、ログ、その他のアーティファクトの保存場所。

    • Amazon CloudWatch アラーム – お客様の環境内のインスタンスの負荷をモニタリングする 2 つの Amazon CloudWatch アラーム。負荷が高すぎたり低すぎたりする場合にトリガーされます。 アラームがトリガーされると、Auto Scaling グループはレスポンスとしてスケールアップまたはダウンを行います。

    • AWS CloudFormation スタック – 環境内でリソースを起動して、設定の変更を伝達するために、Elastic Beanstalk は AWS CloudFormation を使用します。 リソースは、AWS CloudFormation マネジメントコンソールに表示できるテンプレートで定義されます。

    • ドメイン名 – ウェブアプリケーションまでのルートとなるドメイン名であり、subdomain.region.elasticbeanstalk.com という形式になります。

  • Sample Application という名前の新しいアプリケーションバージョンを作成します。これは、デフォルトの Elastic Beanstalk サンプルアプリケーションファイルを参照します。

  • Custom-env にサンプルアプリケーションコードをデプロイします。

環境の作成プロセス中、コンソールでは進捗状況が追跡され、イベントが表示されます。

すべてのリソースが起動し、アプリケーションを起動していた EC2 インスタンスがヘルスチェックにパスすると、環境のヘルス状態は Ok に代わり、ウェブサイトは利用可能になります。

ステップ 3: 環境に関する情報の表示

Elastic Beanstalk アプリケーションを作成した後、AWS マネジメントコンソール の環境ダッシュボードに移動すると、デプロイしたアプリケーションとプロビジョニングされたリソースに関する情報を表示できます。このダッシュボードには、アプリケーションの環境の状態、実行されているバージョン、および環境設定が表示されます。

AWS リソースが作成され、アプリケーションが起動されている間、環境は Pending 状態になります。起動イベントに関するステータスメッセージが環境ダッシュボードに表示されます。

現在ダッシュボードを表示していない場合は、表示します。

ダッシュボードを表示するには

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

  2. [Custom-env] を選択します。

ダッシュボードには、環境に関する有用な情報の一部が表示され、これには現在のヘルス状態、現在デプロイされているアプリケーションバージョンの名前、直近の 5 つのイベント、アプリケーションが起動しているプラットフォーム設定が含まれます。

コンソールの左側はナビゲーションバーで、環境のより詳細な情報が記載され、さらなる機能へのアクセスを提供する他のページにリンクしています。次のページで、環境の現在の状態が確認できます。

  • [Configuration] ページには、例えば、アプリケーションをホスティングしている Amazon EC2 インスタンスなど、この環境にプロビジョニングされたリソースが表示されます。また、このページでは、プロビジョニングされたいくつかのリソースを設定できます。

  • [Health] ページには、アプリケーションを起動している EC2 インスタンスの状態と詳細なヘルス情報が表示されています。

  • [Monitoring] ページには、平均レイテンシーや CPU 使用率など、環境の統計情報が表示されます。また、このページでは、モニタリングしているメトリクスに対するアラームを作成できます。

  • [Events] ページには、この環境が使用しているサービスの情報またはエラーメッセージが表示されます。

ステップ 4: 新しいアプリケーションバージョンのデプロイ

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

現在実行しているアプリケーションバージョンには、Sample Application というラベルが付けられています。

アプリケーションバージョンを更新するには

  1. 環境の設定と一致するサンプルアプリケーションを次から 1 つダウンロードします。

  2. Elastic Beanstalk コンソールを開きます。

  3. Elastic Beanstalk アプリケーションページで、[My First Elastic Beanstalk Application]、[Custom-env] の順に選択します。

  4. [Overview] セクションで、[Upload and Deploy] を選択します。

  5. [Browse] を選択して、ダウンロード済みのサンプルソースバンドルをアップロードします。

  6. コンソールは、アップロードしたアーカイブ名に基づき、[Version label] を自動的に入力します。今後のデプロイに備え、同じ名前のソースバンドルを使用する場合は、一意のバージョンラベルを入力する必要があります。

  7. [Deploy] を選択します。

これで Elastic Beanstalk によってファイルが Amazon EC2 インスタンスにデプロイされます。環境のダッシュボードで、デプロイの状態を表示できます。アプリケーションバージョンがアップデートされている間は、[Environment Health] ステータスが灰色で表示されます。デプロイが完了すると、Elastic Beanstalk によってアプリケーションのヘルスチェックが実行されます。アプリケーションがヘルスチェックに応答すると、ステータスは緑色に戻ります。環境ダッシュボードで、新しい [Running Version] が、[Sample Application Second Version](または [Version label] で指定した内容)として表示されます。

また、新しいアプリケーションバージョンはアップロードされ、アプリケーションバージョンのテーブルにも表示されます。アプリケーションバージョンのテーブルを表示するには、[My First Elastic Beanstalk Application]、[Application Versions] の順で選択します。

ステップ 5: 設定の変更する

お使いのアプリケーションに適合するよう、環境をカスタマイズすることができます。例えば、計算量の多いアプリケーションがある場合、アプリケーションを実行する Amazon EC2 インスタンスの種類を変更できます。

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

このタスクでは、Auto Scaling グループの最小インスタンス設定を 1 から 2 に変更し、変更が行われたことを確認します。新しいインスタンスを作成した後、ロードバランサーに関連付けられます。

環境の構成を変更するには

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

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [Scaling] を選択します。

  5. [Auto Scaling] セクションで、[Minimum Instance Count] を 1 から 2 に変更します。 これにより、Amazon EC2 にデプロイされる Auto Scaling インスタンスの最小数が増加します。

  6. ページの最下部にある [Apply] を選択します。

環境の更新には数分程かかります。環境の準備が整ったら、次の手順に進んで変更を確認します。

ロードバランサーに対する変更を確認するには

  1. ナビゲーションペインの [Events] を選択します。

    イベントリストに、[Successfully deployed new configuration to environment] というイベントに関するメッセージが表示されます。これによって Auto Scaling の最小インスタンス数が 2 に設定されていることが確認できます。2 番目のインスタンスは自動的に起動されます。

  2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  3. ナビゲーションペインの [LOAD BALANCING] で [ Load Balancers] をクリックします。

  4. 適切なインスタンス名を持つロードバランサーが見つかるまで以下の 2 つのステップを繰り返します。

  5. ロードバランサーのリストからロードバランサーを 1 つ選択します。

  6. [Load Balancer: <load balancer name>] ペインの [Instances] タブを選択し、[Name] を [Instances] テーブルで検索します。

     [Edit Configuration] ダイアログボックス

    EC2 インスタンスの増加に対応して、2 つのインスタンスがこのロードバランサーに関連付けられていることが表示されます。

ステップ 6: クリーンアップ

おめでとうございます。サンプルアプリケーションを正しくクラウドにデプロイし、新しいバージョンをアップロードし、その設定を変更して 2 つ目の Auto Scaling インスタンスを追加しました。不要なサービスについて課金されないようにするには、Elastic Beanstalk と AWS サービスから不要なアプリケーションと環境をすべて削除します。

アプリケーションを完全に削除するには

  1. すべてのアプリケーションバージョンを削除します.

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

    2. Elastic Beanstalk アプリケーションページで、[My First Elastic Beanstalk Application] の [Custom-env] を選択します。

    3. [Upload and Deploy] を選択します。

    4. アプリケーションの指定を求められたら、[Application Versions] ページ選択します。

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

    6. 削除するバージョンを確認してから、[Delete] をクリックします。

    7. [Done] を選択します。

  2. 環境を終了します。

    1. [My First Elastic Beanstalk Application] をクリックして環境ダッシュボードに戻り、[Custom-env] をクリックします。

    2. [Actions] を選択してから、[Terminate Environment] を選択します。

    3. [Custom-env] を終了することを確認してから、[Terminate] を選択します。

  3. Elastic Beanstalk アプリケーション [My First Elastic Beanstalk Application] を削除します。

    1. 左上の [Elastic Beanstalk] を選択して、メインダッシュボードに戻ります。

    2. Elastic Beanstalk [Applications] ページで、[My First Elastic Beanstalk Application] アプリケーションの [Actions] を選択し、次に [Delete Application] を選択します。

    3. [Delete] をクリックして、この Elastic Beanstalk アプリケーションを削除することを確認します。

次の段階

ここでは Elastic Beanstalk の概要とアクセス方法を説明しましたが、併せて Elastic Beanstalk の詳細 を読むことをお勧めします。Elastic Beanstalk のコンポーネント、アーキテクチャ、Elastic Beanstalk アプリケーションを設計するうえで考慮すべき重要点について詳しく書かれています。

AWS マネジメントコンソール 以外にも、以下のツールを使用して Elastic Beanstalk 環境を作成および管理することもできます。

EB CLI

EB CLI は、環境を作成および管理するためのコマンドラインツールです。詳細については、「Elastic Beanstalk コマンドラインインターフェイス(EB CLI)」を参照してください。

AWS SDK for Java

Java 用 AWS SDK には、AWS インフラストラクチャサービスを使用するアプリケーションの構築に使用できる Java API が用意されています。Java 用 AWS SDK では、AWS Java ライブラリ、コードサンプル、および資料が単一のダウンロード可能なパッケージにまとめられているので、数分で使用を開始できます。

Java 用 AWS SDK には、J2SE Development Kit 5.0 以降が必要です。最新の Java ソフトウェアは http://developers.sun.com/downloads/ からダウンロードできます。また、この SDK には Apache Commons(Codec、HTTPClient、および Logging)および Saxon-HE サードパーティパッケージも必要です。これらは、SDK の「third-party」ディレクトリに含まれています。

Java 用 AWS SDK の使用の詳細については、「Java 用 AWS SDK」を参照してください。

AWS Toolkit for Eclipse

AWS Toolkit for Eclipse プラグインを使用すると、Java 用 AWS SDK であらかじめ構成した新しい AWS Java ウェブプロジェクトを作成し、ウェブアプリケーションを Elastic Beanstalk にデプロイできます。Elastic Beanstalk プラグインは Eclipse Web Tools Platform(WTP)に基づいて構築されています。このツールキットには、Travel Log サンプルウェブアプリケーションテンプレートが用意されています。このテンプレートでは、Amazon S3、および Amazon SNS の使用方法が説明されています。

すべての WTP の依存コンポーネントを確実に用意するには、Eclipse の Java EE ディストリビューションから始めることをお勧めします。このディストリビューションは http://eclipse.org/downloads/ からダウンロードできます。

Eclipse 用 Elastic Beanstalk プラグインの使用の詳細については、AWS Toolkit for Eclipse のウェブページを参照してください。Eclipse を使用して初めて Elastic Beanstalk アプリケーションを作成する場合は「AWS Elastic Beanstalk で Java アプリケーションを作成してデプロイする」を参照してください。

AWS SDK for .NET

.NET 用 AWS SDK を使用すると、AWS インフラストラクチャサービスを使用するアプリケーションを構築できます。.NET 用 AWS SDK では、AWS .NET ライブラリ、コードサンプル、資料が単一のダウンロード可能なパッケージにまとめられているので、数分で使用を開始できます。

.NET 用 AWS SDK には .NET Framework 2.0 以降が必要です。この SDK は以下の Visual Studio エディションすべてに使用できます。

.NET 用 AWS SDK の使用の詳細については、「.NET 用 AWS SDK」を参照してください。

AWS Toolkit for Visual Studio

Amazon Toolkit for Visual Studio プラグインを使用すると、既存の .NET アプリケーションを Elastic Beanstalk にデプロイできます。AWS SDK for .NET であらかじめ設定された AWS テンプレートを使用して、新しいプロジェクトを作成することもできます。前提条件とインストールに関する詳細については、「AWS Toolkit for Visual Studio」を参照してください。Visual Studio を使用して初めて Elastic Beanstalk アプリケーションを作成する場合は「AWS Toolkit for Visual Studio を使用して .NET で Elastic Beanstalk アプリケーションを作成しデプロイする」を参照してください。

AWS SDK for Node.js

AWS SDK for Node.js を使用すると、AWS インフラストラクチャサービスに基づいてアプリケーションを構築できます。AWS SDK for Node.js では、AWS Node.js ライブラリ、コードサンプル、資料が単一のダウンロード可能なパッケージにまとめられているので、数分で使用を開始できます。

AWS SDK for Node.js の使用の詳細については、AWS SDK for Node.js(Developer Preview)のウェブページを参照してください。

AWS SDK for PHP

AWS SDK for PHP を使用すると、AWS インフラストラクチャサービスに基づいてアプリケーションを構築できます。AWS SDK for PHP では、AWS PHP ライブラリ、コードサンプル、資料が単一のダウンロード可能なパッケージにまとめられているので、数分で使用を開始できます。

AWS SDK for PHP には、PHP 5.2 以降が必要です。

AWS SDK for PHP の使用の詳細については、AWS SDK for PHP のウェブページを参照してください。

Boto(AWS SDK for Python)

Boto を使用すると、AWS Python ライブラリ、コードサンプル、資料を備えた 1 つのダウンロード可能なパッケージで、すぐに開始できます。API 上に Python アプリケーションを構築できるため、ウェブサービスのインターフェイスに対して直接コーディングをする複雑さがなくなります。オールインワンのライブラリは、認証、再試行リクエスト、エラー処理を含む、AWS クラウドのプログラミングに関連する低レベルのタスクを非表示にする Python の開発者フレンドリーな API を提供します。ライブラリを使用したアプリケーションの構築方法については、Python による実用的な例が用意されています。Boto の詳細情報、サンプルコード、資料、ツール、追加のリソースについては、http://aws.amazon.com/python/ にアクセスしてください。

AWS SDK for Ruby

AWS Ruby ライブラリ、コードサンプル、資料を備えた 1 つのダウンロード可能なパッケージで、すぐに開始できます。API 上に Ruby アプリケーションを構築できるため、ウェブサービスのインターフェイスに対して直接コーディングをする複雑さがなくなります。オールインワンのライブラリは、認証、再試行リクエスト、エラー処理を含む、AWS クラウドのプログラミングに関連する低レベルのタスクを非表示にする Ruby の開発者フレンドリーな API を提供します。ライブラリを使用したアプリケーションの構築方法については、Ruby による実用的な例が用意されています。SDK の詳細情報、サンプルコード、資料、ツール、追加のリソースについては、http://aws.amazon.com/ruby/ にアクセスしてください。