この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
先日まで福岡に帰省しながら仕事しておりました。森永です。
先日待望のApplication Load Balancer(ALB)が公開されたのはご存知のとおりです。
- 【新発表】AWS アプリケーションロードバランサー | Amazon Web Services ブログ
- 【新機能】新しいロードバランサー Application Load Balancer(ALB)が発表されました
そのALBをElastic Beanstalk(EB)がサポートしました!
Elastic Beanstalkとは
簡単に言うと、Webアプリケーションのインフラ部分をそのミドルウェアならこれ、とオススメのテンプレートで作成するサービスです。
それに合わせてアプリを作れるのであればインフラ構築コストが少なくてすみます。
詳しくは以下を見て頂くのが早いです。
読みはビーンスターク(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
でもう少し細かい設定を出来るようなので次のブログでまとめてみます。