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

Symfony2 アプリケーションを Elastic Beanstalk にデプロイする

https://github.com/awslabs/elastic-beanstalk-docs/blob/master/tutorials/php/symfony2/tutorial-deploy-symfony2-application-aws-elastic-beanstalk.md

 GitHub でソースを直接編集することで、この記事に貢献します。

このセクションでは、Elastic Beanstalk コマンドラインインターフェイス(EB CLI)と Git を使用して Elastic Beanstalk にサンプルアプリケーションをデプロイした後、Symfony2 フレームワークを使用するようにアプリケーションを更新する手順を説明します。

Git リポジトリのセットアップ

EB CLI は Git で使用できるコマンドラインインターフェイスで、アプリケーションを迅速かつより簡単にデプロイすることができます。EB は、Elastic Beanstalk のコマンドラインツールパッケージの一部として利用できます。EB CLI のインストール手順については、「Elastic Beanstalk コマンドラインインターフェイス(EB CLI)のインストール」を参照してください。

Git リポジトリを初期化します。次のコマンドを実行した後で、eb init を実行すると、EB CLI ではアプリケーションが Git を使用して設定されたと認識されます。

git init .

Symfony2 開発環境の設定

Symfony2 を設定し、プロジェクト構造を作成します。次に、Linux オペレーティングシステムで Symfony2 を設定する手順を示します。詳細については、http://symfony.com/download を参照してください。ロードバランサーの背後で Symfony2 を実行する方法については、「ロードバランサーまたはリバースプロキシの背後で Symfony が動作するように設定する方法」を参照してください。

ローカルコンピュータで PHP 開発環境を設定するには

  1. getcomposer.org から composer をダウンロードしインストールします。詳細については、http://getcomposer.org/download/ を参照してください。

    curl -s https://getcomposer.org/installer | php
  2. Composer を使用して Symfony2 Standard Edition をインストールします。入手可能な最新バージョンについては、http://symfony.com/download を参照してください。次のコマンドを使用すると、composer によりベンダーライブラリがインストールされます。

    php composer.phar create-project symfony/framework-standard-edition symfony2_example/ <version number>
    cd symfony2_example

    注記

    インストールを正しく終了するには、php.ini に date.timezone の設定が必要になることがあります。また、必要に応じて Composer のパラメータも指定します。

  3. Git リポジトリを初期化します。

    git init 
  4. vendor、cache、logs、composer.phar を無視するように .gitignore ファイルを更新します。これらのファイルをリモートサーバーにプッシュする必要はありません。

    cat > .gitignore <<EOT
    app/bootstrap.php.cache
    app/cache/*
    app/logs/*
    vendor
    composer.phar
    EOT
  5. hello バンドルを生成します。

    php app/console generate:bundle --namespace=Acme/HelloBundle --format=yml

    確認を求められたら、すべてのデフォルト値を承認します。詳細については、Symfony2 でのページの作成に関するページを参照してください。

次に Composer を設定します。Composer の依存関係では、HOME または COMPOSER_HOME 環境変数を指定する必要があります。また、Composer を自己更新型として設定し、常に最新のバージョンを使用できるようにします。

Composer を設定するには

  1. 拡張子が [.config](例: composer.config)の設定ファイルを作成し、ソースバンドルの最上位レベルにある .ebextensions ディレクトリに配置します。.ebextensions ディレクトリには複数の設定ファイルを入れることができます。設定ファイルのファイル形式の詳細については、「設定ファイル(.ebextensions)による高度な環境のカスタマイズ」を参照してください。

    注記

    設定ファイルは YAML または JSON 形式の標準。詳細は、それぞれ http://www.yaml.org/start.html または http://www.json.org を参照してください。

  2. .config ファイルでは、次を入力します。

    commands:
      01updateComposer:
        command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update 1.0.0-alpha11
    
    option_settings:
      - namespace: aws:elasticbeanstalk:application:environment
        option_name: COMPOSER_HOME
        value: /root

    1.0.0-alpha11 をコンポーザーの任意のバージョンに置き換えます。使用可能なバージョンのリストについては、getcomposer.org/download をご参照ください。

Elastic Beanstalk の設定

次の手順では、Elastic Beanstalk command line interface(EB CLI)を使用して、ローカルプロジェクトディレクトリに Elastic Beanstalk アプリケーションレポジトリを設定します。

Elastic Beanstalk を設定するには

  1. ローカルリポジトリを作成したディレクトリから、次のコマンドを入力します。

    eb init
  2. Elastic Beanstalk リージョンを要求されたら、リージョンの番号を入力します。この製品のリージョンについては、『Amazon Web Services General Reference』のリージョンとエンドポイントのページを参照してください。この例では、[US West (Oregon)] を使用します。

  3. Elastic Beanstalk アプリケーションの使用を求められたら、オプション [Create new Application] に対応する数値を入力します。アプリケーション名がまだ設定されていない場合、Elastic Beanstalk により現在のディレクトリ名に基づいてアプリケーション名が生成されます。 この例では、symfony2app を使用します。

    Enter an AWS Elastic Beanstalk application name (auto-generated value is "windows"): symfony2app

    注記

    アプリケーション名にスペースが含まれる場合でも、引用符は使用しないでください。

  4. 使用している正しいプラットフォームが Elastic Beanstalk で正常に検知された場合は、「y」と入力します。それ以外の場合は「n」と入力し、正しいプラットフォームを指定します。

  5. プロンプトが表示されたら、インスタンスに接続するように Secure Shell (SSH) を設定する場合は、「y」と入力します。SSH を設定しない場合は、「n」と入力します。この例では、「n」を入力します。

    Do you want to set up SSH for your instances?
    (y/n): n
  6. 実行中の環境を作成します。

    eb create
  7. Elastic Beanstalk の環境名の入力を求められたら、環境の名前を入力してください。Elastic Beanstalk は、アプリケーション名に基づいて環境名を自動的に作成します。デフォルトを使用する場合は、Enter キーを押します。

    Enter Environment Name
    (default is HelloWorld-env):

    注記

    アプリケーション名にスペースが含まれる場合、環境名にはスペースが含まれないようにしてください。

  8. CNAME プレフィックスを指定するように求められたら、使用する CNAME プレフィックスを入力します。Elastic Beanstalk では、環境の名前に基づいて CNAME プレフィックスを自動的に作成します。デフォルトを使用する場合は、Enter キーを押します。

    Enter DNS CNAME prefix
    (default is HelloWorld):

Elastic Beanstalk を設定すると、サンプルアプリケーションをデプロイできるようになります。

Elastic Beanstalk の設定を更新する場合は、もう一度 init コマンドを使用します。プロンプトが表示されたら、設定オプションを更新できます。前の設定を維持する場合は、Enter キーを押します。

サンプルアプリケーションをデプロイするには

  • ローカルリポジトリを作成したディレクトリから、次のコマンドを入力します。

    eb deploy

    このプロセスは完了までに数分かかることがあります。このプロセス中に、Elastic Beanstalk がステータスを更新します。ステータス更新のポーリングは、Ctrl+C キーを押すことでいつでも停止できます。環境のステータスが緑になると、Elastic Beanstalk はアプリケーションの URL を出力します。URL をコピーしてウェブブラウザに貼り付け、アプリケーションを表示できます。

アプリケーションの表示

アプリケーションを表示するには

  • ブラウザウィンドウでアプリケーションを開くには、次を入力します。

    eb open

アプリケーションの更新

サンプルアプリケーションをデプロイした後、独自のアプリケーションで更新できます。このステップでは、サンプルアプリケーションを簡単な "Hello World" Symfony2 アプリケーションで更新します。

サンプルアプリケーションを更新するには

  1. ファイルをローカルの Git リポジトリに追加し、変更をコミットします。

    git add -A && git commit -m "Initial commit"

    注記

    Git コマンドの詳細については、「Git – Fast Version Control System」を参照してください。

  2. ローカルリポジトリに一致するアプリケーションバージョンを作成し、Elastic Beanstalk 環境にデプロイします(指定した場合)。

    eb deploy

    また、特定のブランチから特定の環境にプッシュするよう Git を設定することもできます。詳細については、「EB CLI による Elastic Beanstalk 環境の管理」の「EB CLI での Git の使用」を参照してください。

  3. 環境が緑色で示されていて準備が完了したら、アプリケーションの URL に /web/hello/AWS を追加します。アプリケーションは "Hello AWS!" を書き出します。

アプリケーションを実行している EC2 インスタンスのログにアクセスできます。ログのアクセス手順については、「インスタンスログ」を参照してください。

クリーンアップ

アプリケーションを実行したくない場合は、環境を終了し、アプリケーションを削除してクリーンアップできます。

環境を終了するには terminate コマンドを、アプリケーションを削除するには delete コマンドを使用します。

環境を終了するには、アプリケーションを削除できます。

  • ローカルリポジトリを作成したディレクトリから、eb terminate を実行します。

    $ eb terminate

    このプロセスには数分かかることがあります。環境が正常に終了すると、Elastic Beanstalk にメッセージが表示されます。