maemaewaterの日記

エンジニア兼ゲーマーの人の日記です。PHP/Python/JavaScript/C#/C++などによるプログラムに関することを主に書いています。

AWS Elastic Beanstalkのまとめ

Webアプリケーションのデプロイなどの作業を簡単にしてくれるAWS Elastic Beanstalkの機能のまとめです。

ロードバランサ、EC2インスタンスの作成、デプロイなどを行う事が簡単にできますが、次のような特徴があります。

  • ロードバランサ:新しくアプリケーションを作成する際に自動的に作成されます。
  • EC2インスタンス:これも新しくアプリケーションを作成する際に作成されます。Beanstalk用のAMIを基本に作られます。
  • デプロイ:コマンドラインのツールからもできるようですが、Webブラウザを通してアップロードできます。(アップロードするファイル(php等)はzipで圧縮する必要があります。index.phpのようなファイルがない場合、上手くデプロイできません。)
  • オートスケーリング:自動的に設定してくれています。

DynamoDBやElastiCacheを利用する場合には、あらかじめPHPSDKを組み込んだAMIを用意しておくのが良さそうです。

SDKを組み込んだEC2のインスタンスを作成するには、

  1. "EC2 Dashboard"の"Launch Instance"を開く
  2. "Classic Wizard"を選択
  3. タブの"Community AMIs"を選択
  4. Searchのところに"Beanstalk"と入力する
  5. "amazon/.../Beanstalk..."を選択(PHPの場合は、"amazon/PHPBeanstalk64..."など)
  6. 残りは、そのまま進める
  7. 作成したインスタンスSSHでログインしてセットアップ
  8. "EC2 Dashboard"の"Instances"を選び、先ほど作成したインスタンスを選び、"Actions"から"Create Image(EBS AMI)"を選ぶ

の手順で進めます。作成したインスタンスをBeanstalkで利用しているEC2インスタンスにするには、次の手順になります。

  1. "Elastic Beanstalk Management Console"をブラウザから開く
  2. アプリケーションを選ぶ
  3. "Environment Details"を選択して開く
  4. "Edit Configuration"を選ぶ
  5. "Severタブ"の"Custom AMI ID"に先ほど作成した"AMI ID"を入力(EC2 Management ConsoleのImagesにあるAMIsから確認できます)
  6. "Apply Changes"を押す

他の方法としては、設定ファイルを使用するというのもあるようです。yumからのパッケージのインストール等も設定できるとの事です。この方法は、また調べてみようかと思っています。

また、独自のドメインを利用する際にはDNSのCNAMEにロードバランサのアドレス(...elb.amazonaws.com)を設定するなどでするとの事でした(関連するページのドメイン名の記事)。

関連するページ: