今から始める Elastic Beanstalk 入門 #1
AWS Elastic Beanstalk(ウェブアプリの実行と管理)| AWS
Elastic Beanstalk の入門シリーズを始めます。
不定期でアップしてきますのでよろしければご覧ください。
事前準備
まずは以下の事前準備が必要です。
- AWS アカウントの作成
- IAM ユーザーの作成
AWS アカウントや IAM ユーザーの作成については AWS Hands-on for Beginners のハンズオンがありますので、まだアカウントがない方などはまずは以下のハンズオンから始めてください。
AWS Hands-on for Beginners ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ | AWS Webinar
なお、本ブログでは基本的に英語版のドキュメントを記載しますので、必要に応じて各自で翻訳をお願いします。
01. とりあえず触ってみましょう
Elastic Beanstalk とは...
などの説明は後回しにして、とりあえずコンソールから Elastic Beanstalk に触ってみるところから始めましょう。
1-1. IAM ユーザーで AWS アカウントにサインインします
1-2. コンソール上部の検索窓に「Elastic Beanstalk」と入力して、Elastic Beanstalk を選択します。
1-3. Elastic Beanstalk コンソール表示後、「アプリケーションを作成」をクリックします。
1-4. 環境を設定します。
設定値は以下の通りです。
- アプリケーション名: test
- 環境名: Test-env-1 (アプリケーション名入力後に自動入力されます)
- プラットフォームタイプ: マネージドプラットフォーム
- プラットフォーム: Node.js
- プラットフォームブランチ: 自動選択されたもので OK
- プラットフォームのバージョン: 自動選択されたもので OK
- アプリケーションコード: サンプルアプリケーション
- プリセット: 単一インスタンス (無料利用枠の対象)
上記以外の設定値はデフォルトのままで OK です。
プリセットまで選択したら「次へ」をクリックします。
1-5. サービスアクセスを設定します。
ここで、既存のサービスロールと EC2 インスタンスプロファイルが自動選択されている場合には「レビューまでスキップ」をクリックしてください。
もし、EC2 インスタンスプロファイルが選択されておらず、選択できる値がない場合には以下のドキュメントの手順に沿って EC2 インスタンスプロファイルを作成してください。
Create an example application with Elastic Beanstalk - AWS Elastic Beanstalk
IAM ロールを作成する簡単な手順なので、冒頭に紹介した IAM のハンズオンを完了していればできると思います。
EC2 インスタンスプロファイルの作成後、再度サービスアクセスの設定画面で EC2 インスタンスプロファイルを選択して「レビューまでスキップ」をクリックしてください。
1-6. レビュー画面の一番下までスクロールし、「送信」をクリックします。
02. 環境を確認してみましょう
2-1. 「送信」をクリック後、環境作成が始まるので数分待ちます。
2-2. コンソール上部に「環境が正常に起動されました」と表示されれば起動完了です。
2-3. ドメインにアクセスしてサンプルアプリケーションが表示されれば OK です。
03. 作成されたリソースを確認してみましょう
3-1. コンソール上部の検索窓に「EC2」と入力して、EC2 を選択します。
3-2. EC2 コンソール表示後、「インスタンス」をクリックします。
3-3. EC2 インスタンスが作成されていることを確認します。
3-4. EC2 インスタンスのタグを確認してみます。
Elastic Beanstalk 環境から作成された EC2 インスタンスには以下のようなタグが付与されます。
- elasticbeanstalk:environment-id
- elasticbeanstalk:environment-name
3-5. EC2 インスタンスの「セキュリティ」タブを開き、セキュリティグループを選択します。
3-6. 「awseb」から始まるセキュリティグループが作成されていることを確認します。
3-7. EC2 インスタンスの画面に戻り、「詳細」タブ内の「Elastic IP アドレス」を選択します。
3-8. EC2 インスタンスと同様のタグが付与された Elastic IP が作成されていることを確認します。
3-9. EC2 インスタンスの画面に戻り、「詳細」タブ内の「Auto Scaling グループ名」を選択します。
3-10. 「awseb」から始まる Auto Scaling グループが作成されていることを確認します。
このように、Elastic Beanstalk 環境を作成しただけで様々なリソースが自動的に作成されていることがわかります。
上記以外にも以下のようなリソースも作成されているので、興味があればご確認ください。
Create an example application with Elastic Beanstalk - AWS Elastic Beanstalk
- S3 バケット
- 「elasticbeanstalk-ap-northeast-1-<アカウント ID>」という名称です
- CloudFormation スタック
- 「awseb」で始まるスタックです
環境作成時の設定によっては以下のようなリソースも作成されます。
- CloudWatch アラーム
- ロードバランサー
- ターゲットグループ
04. 環境を削除してみましょう
リソースの確認が済んだら環境を削除してみましょう。
4-1. Elastic Beanstalk コンソールで環境を選択し、アクションから「環境を終了」をクリックします。
4-2. 環境名を入力して「終了」をクリックします。
4-3. 環境の終了が始まるので数分待ちます。
4-4. コンソール上部に「環境は正常に終了しました。」と表示されれば削除完了です。
4-5. 手順 03 で確認した各リソースが削除されていることを確認します。
-
EC2 インスタンス
-
「awseb」から始まるセキュリティグループ
-
Elastic IP アドレス
-
「awseb」から始まる Auto Scaling グループ
このように、Elastic Beanstalk 環境を削除することで、環境作成時に自動作成された関連リソースも自動的に削除されます。
削除されないリソース
Elastic Beanstalk 環境を削除しても、「elasticbeanstalk-ap-northeast-1-<アカウント ID>」という名称の S3 バケットは削除されませんが、こちらは仕様です。
今回のチュートリアルのみの利用であれば Elastic Beanstalk 用の S3 バケットを削除しても問題ありませんが、アカウント内に他の Elastic Beanstalk 環境がある場合には Elastic Beanstalk 用の S3 バケットを削除しないことが推奨されています。
Elastic Beanstalk 用の S3 バケットには過去に Elastic Beanstalk 環境で使用したアプリケーションコードなどが保存されています。
そのため、Elastic Beanstalk 環境が存在する状況で Elastic Beanstalk 用の S3 バケットを削除した場合、Elastic Beanstalk 環境内のアプリケーションが正常に動作しなくなる可能性があります。
Using Elastic Beanstalk with Amazon S3 - AWS Elastic Beanstalk
We recommend that you delete specific unnecessary objects from your Elastic Beanstalk Amazon S3 bucket, instead of deleting the entire bucket.
本ブログでは今後も Elastic Beanstalk 環境の作成を実施する予定なので、Elastic Beanstalk 用の S3 バケットは削除せずに保持します。
まとめ
今回は今から始める Elastic Beanstalk 入門として、まずは Elastic Beanstalk 環境の作成と削除をやってみました。
次回は「Elastic Beanstalk とは」などの座学も含めて紹介したいと思います。
どなたかの参考になれば幸いです。
参考資料
- AWS Elastic Beanstalk(ウェブアプリの実行と管理)| AWS
- AWS Hands-on for Beginners ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ | AWS Webinar
- Create an example application with Elastic Beanstalk - AWS Elastic Beanstalk
- Create an example application with Elastic Beanstalk - AWS Elastic Beanstalk
- Using Elastic Beanstalk with Amazon S3 - AWS Elastic Beanstalk
Discussion