【アップデート】Elastic BeanstalkがApplication Load Balancer(ALB)をサポートしました!

2016.08.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

先日まで福岡に帰省しながら仕事しておりました。森永です。

先日待望のApplication Load Balancer(ALB)が公開されたのはご存知のとおりです。

そのALBをElastic Beanstalk(EB)がサポートしました!

Elastic Beanstalkとは

簡単に言うと、Webアプリケーションのインフラ部分をそのミドルウェアならこれ、とオススメのテンプレートで作成するサービスです。
それに合わせてアプリを作れるのであればインフラ構築コストが少なくてすみます。

詳しくは以下を見て頂くのが早いです。

AWS再入門 AWS Elastic Beanstalk編

読みはビーンスターク(not ビーンズトーク)なので注意して下さい。刺されます。

ALBサポート試してみた

2016/8/24現在、EB CLI(AWS CLIではありません)でしかALBの設定は出来ないようです。また、環境作成時にしか設定できません。

EB CLIインストール

まだインストールしていない方は以下

$ sudo pip install awsebcli

OS Xでsix関連のエラーが発生する場合は以下

$ sudo pip install awsebcli --ignore-installed six

既に古いバージョンをインストールしている方は以下

$ sudo pip install --upgrade awsebcli
もしくは
$ sudo pip install --upgrade awsebcli --ignore-installed six

インストール後、AWS CLIのクレデンシャル設定を行って下さい。

アプリケーション作成

ebコマンドでアプリケーションの設定を行います。

まず、プロジェクトフォルダを作成します。

$ mkdir eb-alb
$ cd eb-alb/

eb initコマンドでアプリケーションを作成します。
作成するリージョンや使用するミドルウェアなどを指定します。

$ eb init

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
(default is 3): 9

Enter Application Name
(default is "eb-alb"): eb-alb
Application eb-alb has been created.

Select a platform.
1) Node.js
2) PHP
3) Python
4) Ruby
5) Tomcat
6) IIS
7) Docker
8) Multi-container Docker
9) GlassFish
10) Go
11) Java
(default is 1): 2

Select a platform version.
1) PHP 5.4
2) PHP 5.5
3) PHP 5.6
4) PHP 7.0
5) PHP 5.3
(default is 1): 3
Do you want to set up SSH for your instances?
(y/n): y

Select a keypair.
1) hogehoge
2) [ Create new KeyPair ]
(default is 2): 1

次に環境を作成します。
ここでALBの指定を行います。

「Select a load balancer type」と出たら、2の「application」を入力して下さい。

$ eb create
Enter Environment Name
(default is eb-alb-dev): eb-alb-test
Enter DNS CNAME prefix
(default is eb-alb-test): eb-alb-test

Select a load balancer type
1) classic
2) application
(default is 1): 2

上記コマンドは対話型ですが、非対話側のコマンドも用意されております。

$ eb create eb-alb-test --elb-type application

以上で、ALBを使った環境を作成することが出来ます!

最後に

ALBを使用してパスベースのルーティングが出来るのは勿論ですが、HTTP/2対応のためクライアントのパフォーマンスが何もしなくても向上するというのは嬉しいですね。
.ebextensionでもう少し細かい設定を出来るようなので次のブログでまとめてみます。