AWS Elastic Beanstalk
開発者ガイド

Elastic Beanstalk の使用開始

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

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

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

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

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

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

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

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

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

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

  1. 次の事前設定されたリンクを使用して、Elastic Beanstalk コンソール を開きます。https://console.aws.amazon.com/elasticbeanstalk/home#/gettingStarted?applicationName=getting-started-app

  2. プラットフォームを選択し、[アプリケーションの作成] を選択します。

    
              新しい環境ウィザード

AWS リソースでサンプルアプリケーションを実行するために、Elastic Beanstalk は次の処理を行います。これらの処理は約 5 分で完了します。

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

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

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

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

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

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

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

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

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

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

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

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


        環境作成イベント出力を表示するコンソール。

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

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

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

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

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

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

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

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

    
            Elastic Beanstalk コンソールにアプリケーションと環境のリストが表示されます。

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


        環境ダッシュボード。

ダッシュボードの右上にある [アクション] メニューの横に、環境の URL が表示されます。これは、環境で実行するウェブアプリケーションの URL です。この URL を選択し、アプリケーションの [おめでとうございます] ページに移動します。

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

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

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

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

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

  • [タグ] ページには、環境内のリソースに適用されるタグ — キーと値のペアが表示されます。このページを使用して、環境のタグを管理します。

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

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

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

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

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

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

  3. Elastic Beanstalk アプリケーションのページで、[getting-started-app] を選択し、次に [GettingStartedApp-env] を選択します。

  4. [概要] セクションで、[アップロードとデプロイ] を選択します。

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

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

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

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

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

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

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

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

このタスクでは、お客様の環境のキャパシティー設定を編集します。Auto Scaling グループに 2 つから 4 つのインスタンスを持つ、ロードバランシングされた自動スケーリング環境を設定し、変更が発生したことを確認します。2 つの Amazon EC2 インスタンスが作成され、環境のロードバランサーに関連付けられています。これらのインスタンスは、最初に Elastic Beanstalk によって作成された単一のインスタンスを置き換えます。

環境設定を変更するには

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

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

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

  4. [キャパシティー] 設定カテゴリで、[変更] を選択します。

  5. [Auto Scaling グループ] セクションで、[環境タイプ] を [負荷分散] に変更します。

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

  7. [容量の変更] ページの下部にある [保存] を選択します。

  8. [設定の概要] ページの下部にある [適用] を選択します。

  9. 警告が表示されます。現在のすべてのインスタンスが移行によって置き換えられたことがわかります。Confirm を選択します。

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

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

  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. [ロードバランサー: <ロードバランサー名>] ペインの [インスタンス] タブを選択し、[インスタンス] テーブルで [名前] を見つけます。

    
            ロードバランサーペイン

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

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

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

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

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

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

    2. Elastic Beanstalk アプリケーションページで、getting-started-app アプリケーションを選択します。

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

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

    5. 削除するバージョンを確認してから、[削除] を選択します。

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

  2. 環境を終了します。

    1. 環境ダッシュボードに戻るには、getting-started-app をクリックしてから、GettingStartedApp-env をクリックします。

    2. [アクション] を選択してから、[環境の終了] を選択します。

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

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

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

    2. [Elastic Beanstalk アプリケーション] ページで、[getting-started-app] アプリケーションの [アクション] を選択し、[アプリケーションの削除] を選択します。

    3. getting-started-app を削除することを確認し、[削除] を選択します。

次の段階

これで Elastic Beanstalk とそのアクセス方法について学びました。AWS 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 が用意されています。AWS SDK for Java では、AWS Java ライブラリ、コードサンプル、および資料が単一のダウンロード可能なパッケージにまとめられているので、数分で使用を開始できます。

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

詳細については、AWS SDK for Java を参照してください。

AWS Toolkit for Eclipse

AWS Toolkit for Eclipse プラグインを使用すると、AWS SDK for Java であらかじめ構成した新しい 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

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

詳細については、AWS SDK for .NETを参照してください。サポートされている .NET Framework および Visual Studio のバージョンの詳細については、「AWS SDK for .NET 開発者ガイド」を参照してください。

AWS Toolkit for Visual Studio

AWS 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 JavaScript in Node.js

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

詳細については、Node.js 内の AWS SDK for JavaScript を参照してください。

AWS SDK for PHP

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

AWS SDK for PHP には PHP 5.2 以降が必要です。ダウンロードの詳細については、http://php.net/を参照してください。

詳細については、AWS SDK for PHP を参照してください。

AWS SDK for Python (Boto)

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

AWS SDK for Ruby

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