Webアプリケーションのデプロイなどの作業を簡単にしてくれるAWS Elastic Beanstalkの機能のまとめです。
ロードバランサ、EC2インスタンスの作成、デプロイなどを行う事が簡単にできますが、次のような特徴があります。
- ロードバランサ:新しくアプリケーションを作成する際に自動的に作成されます。
- EC2インスタンス:これも新しくアプリケーションを作成する際に作成されます。Beanstalk用のAMIを基本に作られます。
- デプロイ:コマンドラインのツールからもできるようですが、Webブラウザを通してアップロードできます。(アップロードするファイル(php等)はzipで圧縮する必要があります。index.phpのようなファイルがない場合、上手くデプロイできません。)
- オートスケーリング:自動的に設定してくれています。
DynamoDBやElastiCacheを利用する場合には、あらかじめPHPのSDKを組み込んだAMIを用意しておくのが良さそうです。
- "EC2 Dashboard"の"Launch Instance"を開く
- "Classic Wizard"を選択
- タブの"Community AMIs"を選択
- Searchのところに"Beanstalk"と入力する
- "amazon/.../Beanstalk..."を選択(PHPの場合は、"amazon/PHPBeanstalk64..."など)
- 残りは、そのまま進める
- 作成したインスタンスにSSHでログインしてセットアップ
- "EC2 Dashboard"の"Instances"を選び、先ほど作成したインスタンスを選び、"Actions"から"Create Image(EBS AMI)"を選ぶ
の手順で進めます。作成したインスタンスをBeanstalkで利用しているEC2インスタンスにするには、次の手順になります。
- "Elastic Beanstalk Management Console"をブラウザから開く
- アプリケーションを選ぶ
- "Environment Details"を選択して開く
- "Edit Configuration"を選ぶ
- "Severタブ"の"Custom AMI ID"に先ほど作成した"AMI ID"を入力(EC2 Management ConsoleのImagesにあるAMIsから確認できます)
- "Apply Changes"を押す
他の方法としては、設定ファイルを使用するというのもあるようです。yumからのパッケージのインストール等も設定できるとの事です。この方法は、また調べてみようかと思っています。
- http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html
- http://www.infoq.com/jp/news/2012/11/elastic-beanstalk-config-files
また、独自のドメインを利用する際にはDNSのCNAMEにロードバランサのアドレス(...elb.amazonaws.com)を設定するなどでするとの事でした(関連するページのドメイン名の記事)。
関連するページ:
- http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/using-features.managing.ec2.html
- http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/using-domain-names-with-elb.html (ドメイン名)
- http://blog.jetztgrad.net/2011/02/how-to-customize-an-amazon-elastic-beanstalk-instance/