クラウドの上まで伸びる豆の木、Elastic Beanstalk
皆さんは、ジャックと豆の木という話をご存じでしょうか。ジャックという少年が母親の使いで牡牛を売りにいった途中で豆と牛を交換してしまい、家に帰って怒った母親に、その豆を捨てられてしまいます。ところが、その豆は、雲まで届く巨木へと成長するといったお話です。Beanstalkは、「豆の木」という意味ですが、「Elasitic Beanstalk」は、「ジャックと豆の木」の話に出てきる豆の木のように雲に届くもの、という意味から名付けられたAWS(Amazon Web Service)のPaaSです。
Beanstalkを用いると、作成したJavaアプリケーションをクラウドにデプロイするだけで、Webアプリケーションとして利用できます。また、Webサーバのオートスケーリングにも対応しており、ロードバランサやスケールするためのインフラを設計することなく、簡単にスケールするWebアプリケーションを稼働できます。スケールアウトには、AWSの提供する負荷分散のサービスである「Elastic Load Balancing」を利用しています。
Elastic Beanstalkは、AWSをWebブラウザから利用する「Amazon Management Console」とEclipseからAWSを利用するプラグインである「AWS Toolkit for Eclispe」(以下、AWS Toolkit)から利用できます。本稿では、Amazon Management ConsoleとAWS Toolkitでの利用について紹介します。
なお、Elastic Beanstalkは執筆時現在β版であり、将来仕様が変わる可能性があることを、あらかじめご了承ください。Elastic Beanstalkは現在はJavaアプリケーションのみに対応していますが、将来的にはRuby on Railsにも対応するようです。
また、Elastic Benastalkの機能は、本連載第12回「AWS ToolkitでTomcatクラウドをAmazon EC2上に楽々構築」で紹介したアプリケーションのデプロイ機能の発展形でもあります。こちらの記事では、デプロイ以外のAWS Toolkit for Eclipseの機能を紹介しているので、併せてご覧いただければと思います。
Elastic Beanstalkの5つの主な特徴
Elastic Beanstalk自身は、次のような特徴があります。
【1】デプロイ即アプリ起動
開発したJavaアプリケーションをEclipseもしくはWebブラウザからアプリケーションをデプロイするだけでアプリケーションが起動します。世の中にあるPaaSと同様に簡単にアプリケーションを動作できます。
【2】モニタリング機能
CPU使用率、リクエスト数、さらにはTomcatサーバのログなどを画面から簡単に確認できます。
また、アプリケーションサーバの追加、削除などの状態変化のタイミングでメールで通知することも可能です。
【3】データベースが選択可能
利用するデータベースサーバとして、「Amazon RDS」「Amazon SimpleDB」「Microsoft SQL Server」「Oracle」から選択可能です。用途に応じてDBを選択できます。
【4】緩い制限
Elastic Beanstalk上の実体はAmazon EC2上で動作する仮想マシンです。Amazon EC2上でできることはElastic Beanstalk上でも可能です。サイトアクセス、マルチスレッド、プロセス呼び出しなどの制限を受けることはありません。
【5】基本的に、無料
Elastic Beanstalk自身の機能は無料で利用できますが、インスタンス、ストレージ、ネットワークトラフィックについては、通常のAWSと同じように課金されます。Elastic Beanstalkの追加分は無料なので、使わない手はありません。
Elastic Beanstalkで豆の木を育てる準備
Elastic Beanstalkを利用するには、事前に以下の2つを行う必要があります。
- AWSのサービスに申し込み
- Elastic Beanstalk利用の申し込み
AWSサービスの申し込みについては、@IT記事「Amazon EC2/S3で作るWindows公開サーバ」などをご覧ください。Elastic Beanstalk利用の申し込みは、「AWS Elastic Beanstalk」ページの「AWS Elastic Beanstalkの利用を申し込む」からたどって行ってください。
さて、準備ができたら、早速Elastic Beanstalkを使ってみましょう。
Elastic BeanstalkをWebブラウザから使ってみよう
まず、Webブラウザから利用できるAWS Management ConsoleからElastic Beanstalkを使ってみます。ここでは、下記の作業を行ってみましょう。
- サンプルアプリケーションの作成
- サンプルアプリケーションのカスタマイズ
- Elastic Loadbalancerによるスケールアウトの設定
【1】アプリケーションの作成
ElasticBeanstalkのWebページにアクセスします。AWS Management Consoleにログインしていなければ、AWSアカウントのIDをパスワードを入力しログインします。上記のWebサイトにアクセスすると、図1が表示されます。
何もアプリケーションを作成していない状態でElastic Beanstalkの画面を表示すると、サンプルアプリケーションの起動[Launch a sample application]とアプリケーションのアップロード[Upload your own appplication]の選択画面が表示されます(アプリケーションが作成済みの場合、アプリケーション情報が表示されます)。
ここでは、サンプルアプリケーションの起動を選択してみましょう。しばらく、処理中のマークが回った後、「My First Elastic Beanstalk Application Environments」という名前で、新しいアプリケーションが作成され、図2のような画面に変わります。
図2の画面上部([Application Details]以下)には、アプリケーション情報が、画面下部[Environment Details]には、環境情報(アプリケーション実行環境の情報)が表示されます。
環境の詳細[Environment Details]を開くと、概要[Overview]、アプリケーションのログ[Logs]、監視情報[Monitoring]、イベント[Events]情報をそれぞれタブを切り替えて表示できます。[View Running Version]をクリックすると、サンプルアプリケーションの画面が表示されます(図3)。
【2】アプリケーションのカスタマイズ
さて、作成されたサンプルアプリケーションをカスタマイズしてみましょう。[Versions]タブを選択すると、デプロイされたアプリケーションのバージョン一覧が表示され(図4)、アプリケーションをダウンロードできます。
この画面から現在デプロイされているアプリケーション「resources-elasticbeanstalk-sampleapp.war」をダウンロードします。ダウンロードしたアプリケーションを解凍し、アプリケーションを書き換え、再びwarファイルに固め直します。AWS Management Console(図5)から[Upload New Version]をクリックし、変更したwarファイルをアップロードするとアプリケーションの更新は完了です。
アプリケーションの扱い方が分かったら、次ページでは、Elastic Beanstalkの目玉であるオートスケーリングの設定を見てみましょう。EclipseからElastic Beanstalkを使う方法も紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.