📝

今から始める Elastic Beanstalk 入門 #3

2025/03/08に公開

今から始める Elastic Beanstalk 入門シリーズの 3 回目です。
各回については以下のリンクからご覧ください。

  1. 今から始める Elastic Beanstalk 入門 #1
  2. 今から始める Elastic Beanstalk 入門 #2

前回は座学中心に Elastic Beanstalk を紹介しました。
今回は環境作成時の設定について紹介します。

https://youtu.be/fZfxs-C9iUk

アプリケーションについて

Managing Elastic Beanstalk applications - AWS Elastic Beanstalk

In Elastic Beanstalk an application serves as a container for the environments that run your web app and for versions of your web app's source code, saved configurations, logs, and other artifacts that you create while using Elastic Beanstalk.

Elastic Beanstalk で一番大きなリソース単位がアプリケーションです。
アプリケーションの中に複数の環境を作成することが可能です。

また、バージョニング機能もあり、環境作成時やデプロイ時にバージョンが作成されます。
バージョンについてはライフサイクルで管理することも可能です。

Managing application versions - AWS Elastic Beanstalk

Elastic Beanstalk creates an application version whenever you upload source code. This usually occurs when you create an environment or upload and deploy code using the environment management console or EB CLI. Elastic Beanstalk deletes these application versions according to the application's lifecycle policy and when you delete the application.

なお、Elastic Beanstalk のアプリケーションと、Elastic Beanstalk にデプロイするアプリケーションは異なるものなので混同しないようにご注意ください。

  • Elastic Beanstalk のアプリケーション: リソース単位のひとつ
  • デプロイするアプリケーション: プログラミング言語を使用して開発したアプリ

アプリケーションの作成

Elastic Beanstalk コンソールからアプリケーションを作成してみます。

「アプリケーションを作成」をクリックします。

アプリケーション名と説明を入力して「作成」をクリックします。
アプリケーション名は必須ですが、説明の入力とタグの設定は任意です。

test-app というアプリケーションができました。

このアプリケーションの中に環境を作成することができます。

環境について

Managing Elastic Beanstalk environments - AWS Elastic Beanstalk

You can create and manage separate environments for development, testing, and production use, and you can deploy any version of your application to any environment. Environments can be long-running or temporary. When you terminate an environment, you can save its configuration to recreate it later.

開発した製品 (アプリ) は環境にデプロイすることで動作します。
上述の通り Elastic Beanstalk のアプリケーション内に複数の環境を作成できるため、開発環境、本番環境などの開発状況で環境を分割することも可能です。

各環境は独立しているため、ひとつの環境に変更を加えても他の環境には影響がありません。
そのため、開発段階では環境の作成と削除を繰り返すこともできます。

また、一度作成した環境の設定を保存して後から再作成することもできます。

前回紹介したランタイムやプラットフォームなどは環境作成時に設定します。

環境の作成

Creating an Elastic Beanstalk environment - AWS Elastic Beanstalk

Elastic Beanstalk コンソールから環境を作成してみます。
ただし、設定項目が多いため主なパラメータのみ説明します。

詳細については上記ドキュメントをご参照ください。

まずはアプリケーション内で「新しい環境を作成」をクリックします。

環境枠

Elastic Beanstalk concepts - AWS Elastic Beanstalk
環境枠を選択します。
Elastic Beanstalk では以下の 2 つの環境を選択できます。

  • ウェブサーバー環境
    • HTTP リクエストを処理するアプリケーション
  • ワーカー環境
    • SQS と連携してタスクを実行するバックエンドアプリケーション

ワーカー環境は長い時間実行されるタスク向けの環境です。
ウェブサーバー環境では処理しきれないようなタスクを SQS に送信し、非同期で処理することができます。
詳細については以下のドキュメントをご参照ください。
Elastic Beanstalk worker environments - AWS Elastic Beanstalk

今回はウェブサーバー環境を選択します。

環境情報

Your Elastic Beanstalk environment's Domain name - AWS Elastic Beanstalk
環境名、ドメイン、説明を設定できます。
環境名は任意の環境名です。(Dev-env, Prod,env など)

ドメイン名は Elastic Beanstalk で使用されるデフォルトのドメイン名で、以下の形式となります。

<任意のホスト名>.region.elasticbeanstalk.com

Elastic Beanstalk 環境ではカスタムドメインの使用も可能ですが、環境作成時にカスタムドメインを指定することはできないため、いったん上記デフォルトドメインで環境を作成する必要があります。

デフォルトドメインを指定しない場合には自動生成された値が入力されます。

今回はホスト名を指定せずに自動生成された値を使用します。

プラットフォーム

Elastic Beanstalk platforms - AWS Elastic Beanstalk
プラットフォームについては前回説明したとおり、OS、ランタイム、Web サーバー、アプリケーションサーバー、Elastic Beanstalk コンポーネントの組み合わせです。

プラットフォームでは以下を選択できます。

  • プラットフォームタイプ
    前回説明したとおり、カスタムプラットフォームは廃止されているためマネージドプラットフォームのみ選択可能です。
    Elastic Beanstalk custom platforms (retired) - AWS Elastic Beanstalk

  • プラットフォーム
    使用言語やランタイムを選択します。
    今回は Node.js を選択しました。

  • プラットフォームブランチ
    OS の種類と言語のバージョンを選択します。
    今回は Node.js 22 running on 64bit Amazon Linux 2023 を選択しました。

  • プラットフォームのバージョン
    Elastic Beanstalk から提供されているバージョンを選択します。
    今回は 6.4.2 を選択しました。

アプリケーションコード

Elastic Beanstalk 環境で動作させるアプリのコードを選択します。

  • サンプルアプリケーション: Elastic Beanstalk のデフォルトアプリ
  • 既存のバージョン: 過去にデプロイしたアプリのバージョン
  • コードをアップロード: 開発したアプリ

開発したアプリをアップロードする場合、指定の要件を満たしたソースバンドルを作成する必要があります。
Create an Elastic Beanstalk application source bundle - AWS Elastic Beanstalk

今回はサンプルアプリケーションをデプロイします。
ちなみにサンプルアプリケーションのコードも公開されており、以下のドキュメントからダウンロード可能です。
Tutorials and samples - AWS Elastic Beanstalk

プリセット

The create new environment wizard - AWS Elastic Beanstalk

ユースケースに合わせて提供されている設定です。

  • 単一インスタンス (無料利用枠の対象): 開発向け
  • 単一インスタンス (スポットインスタンスを使用): 単一インスタンスでスポットインスタンス使用
  • 高可用性: 本番環境向け、ロードバランサーあり
  • 高可用性 (スポットインスタンスとオンデマンドインスタンスを使用) : 高可用性 でスポットインスタンス使用
  • カスタム設定: 好みの設定にカスタマイズ可能

今回は環境作成時の設定を確認していくので、カスタム設定を選択します。

サービスアクセスの設定

Your AWS Elastic Beanstalk environment security - AWS Elastic Beanstalk

以下を設定します。

  • サービスロール
    Elastic Beanstalk が他のサービスを代理で呼び出すときに使用する IAM ロールです。
    ELB や Auto Scaling との連携などで使用されます。
    Elastic Beanstalk service role - AWS Elastic Beanstalk

  • EC2 キーペア
    一般的な EC2 のキーペアで、EC2 インスタンスへのログインに使用します。

  • EC2 インスタンスプロファイル
    EC2 インスタンスにアタッチされる IAM ロールです。
    Elastic Beanstalk 内のアプリから明示的に AWS のサービスと連携する際に使用します。

例. S3 バケットへオブジェクトをアップロードする処理など

今回はデフォルト設定で作成します。

ネットワーキング、データベース、タグの設定

Configuring Amazon Virtual Private Cloud (Amazon VPC) with Elastic Beanstalk - AWS Elastic Beanstalk

Elastic Beanstalk 環境のネットワーク設定です。

  • 使用する VPC
  • EC2 インスタンスへのパブリック IP アドレスの付与
  • 使用するサブネット
  • データベースの設定

データベース以外は EC2 インスタンスを作成するときと同じような設定です。
今回はデフォルト VPC およびデフォルトサブネットを選択します。

データベースの設定は行わずに進めます。

インスタンスのトラフィックとスケーリング

Auto Scaling your Elastic Beanstalk environment instances - AWS Elastic Beanstalk

EC2 インスタンスに関する設定です。
こちらも単体の EC2 インスタンスを作成するときと同じような設定です。

  • EBS の設定
  • CloudWatch モニタリングの設定
  • インスタンスメタデータの設定
  • セキュリティグループの設定
  • Auto Scaling グループの設定

今回はすべてデフォルト値で進めます。




更新、モニタリング、ログ記録

Elastic Beanstalk environment monitoring - AWS Elastic Beanstalk

Elastic Beanstalk 環境のモニタリングや更新の設定です。

  • ヘルスレポート
    • 拡張を選択することで詳細なモニタリングが可能
  • マネージドプラットフォームの更新
    • 自動更新するかどうかや自動更新日時を指定可能
  • E メール通知
    • Elastic Beanstalk 環境からのイベントを受信するかどうかを選択可能
  • ローリング更新とデプロイ
    • デプロイの動作を選択可能
  • プラットフォームのソフトウェア
    • プロキシサーバーやログの設定

今回はすべてデフォルト値で進めます。




最後にレビュー画面が表示されるので、問題なければ環境を作成します。

まとめ

今回は今から始める Elastic Beanstalk 入門シリーズの 2 回目として、Elastic Beanstalk 環境作成時の設定について紹介しました。
次回は EB CLI について紹介したいと思います。

参考資料

Discussion