« 【AWS発表】Amazon S3 がウェブサイトのリダイレクト機能をサポート | メイン | 【AWS発表】Mailbox Simulator - Amazon Simple Email Serviceにメール送信テスト用機能が追加! »

【AWS発表】コンフィグファイルを使ってさらに柔軟にElastic Beanstalkをカスタマイズ可能に

数週間前、宣言型の設定ファイルを使ってPython環境をカスタマイズできる機能やAmazon RDS DBインスタンスとの統合を含む、AWS Elastic BeanstalkがPythonをサポートしたことをお知らせいたしました。

今回、設定ファイルを通して、さらにカスタマイズができるようになったことをお知らせいたします。設定ファイルを通して、パッケージやライブラリをインストールしたり、ソフトウェアコンポーネント(Apache TomcatやApache Webサーバなど)を設定したり、Elastic Beanstalk 環境で起動したAmazon EC2インスタンス上でコマンドを実行したりできます。さらに、複数のEC2インスタンス群に対して環境変数をセットしたり、ユーザーやグループを作成したり、デーモンを起動、終了することもできます。

この機能が追加されて何がうれしいのでしょうか? 以前はElastic Beanstalk環境に対して変更を加えようとした場合、その度にカスタムAMI(Amazon Machine Images)を作成し、メンテナンスしなければなりませんでした。しかし、今回の機能が追加されたことで、フォントのライブラリを追加するくらい小さなもので、エージェントをインストールしたり設定したりするような複雑なものでも、数行のYAMLを書くだけで変更することが可能になります。

例: Tomcat 7 の設定のカスタマイズ
スレッド数を増やすために、Tomcatのserver.xmlをカスタマイズする例を見てみましょう。

  1. AWS Toolkit for Eclipseを使って、AWS Web プロジェクトを作成します。

  2. アプリケーションのWebContentディレクトリの下に新しく“.ebextensions”ディレクトリを作成します。 これにより、“.ebextensions”ディレクトリが .war ファイルのルートに置かれることが保証されます。
    Tips: デフォルトでは、Eclipse Project Explorer viewでは、‘.’で始まるファイルは表示されません。表示されるようにするには、Project Explorerの上部にあるメニューの、Customize View…をクリックし、Filtersタブの.* resources boxのチェックをはずしてください。
  3. “.ebextensions”ディレクトリ内に“server-update.config”という名前のファイルを作成します。 ファイルの内容は以下のようにします。

     
    container_commands:
      replace-config:
        command: cp .ebextensions/server.xml /etc/tomcat7/server.xml
     
  4. プロジェクトを右クリックし、Amazon Web Servicesをクリック、その後Deploy to Elastic Beanstalkをクリックします。

Eclipseからアプリケーションをデプロイする方法に関するさらに詳しい情報については、AWS Elastic Beanstalk Developer Guideをご覧ください。 コンフィグシステムに関するさらに詳しい情報については、Customizing and Configuring Elastic Beanstalk Containersドキュメントをご覧ください。

一度環境が立ちあがり、走りはじめたら、EC2インスタンス上のTomcatのインストールの際に、更新されたserver.xmlが使われるようになります。環境内で起動した任意の新しいインスタンスに同様のカスタマイズが適用されます。

Note: コンフィグファイルは新しく作成されたPythonとJavaの環境内でのみ使用されます。既存の環境に適用するには、here’s how you can migrate themをご覧ください。

“.ebextensions”ディレクトリ内に複数の .configファイルを含めることも可能です。これを使えば、異なるファイルにカスタマイズの設定を分け、共同開発者と好きなカスタマイズを共有することができます。

さらにAmazon CloudWatch custom metrics exampleを使えば、CloudWatchを通した監視機能を簡単にセットアップできます。

Amazon RDS Database Instanceの追加
Elastic BeanstalkのTomcat環境で新しいAmazon Relational Database Service (RDS) データベース インスタンスをを簡単に作成することができます。 Elastic Beanstalk consoleにログインし、アプリケーションを選択後、環境のActionsメニュー上のEdit/Load Configurationをクリックします。Databese タブからAmazon RDS DBインスタンスを追加できます。

一度データベースが作成されると、DBに接続するための情報を取得でき、Javaのシステムプロパティを使って接続するための文字列を作成できます。


String
dbName = System.getProperty("RDS_DB_NAME");
String userName = System.getProperty("RDS_USER");
String password = System.getProperty("RDS_PASSWORD");
String hostname = System.getProperty("RDS_HOSTNAME");
String port = System.getProperty("RDS_PORT");

Elastic Beanstalk環境でRDSデータベースインスタンスを設定する方法についてのさらに詳しい情報は、AWS Elastic Beanstalk Developer Guideをご覧ください。

堀内康弘 (Facebook, Twitter)

 

コメント

トラックバック

この記事のトラックバックURL:
http://www.typepad.com/services/trackback/6a00d8341c534853ef017d3c92ea60970c

【AWS発表】コンフィグファイルを使ってさらに柔軟にElastic Beanstalkをカスタマイズ可能にを参照しているブログ:

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31