AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト-プロフェッショナル
AWSサービスの一つであるAWS Elastic Beanstalkはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-プロフェッショナル(SAP)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS Elastic Beanstalk は、WebアプリケーションをAWSにデプロイ・管理するためのPaaS(Platform as a Service)サービスです。 アプリケーションコードをアップロードするだけで、EC2・ALB・Auto Scaling・RDS・CloudWatch などのインフラを自動プロビジョニングします。 インフラの構築・管理はAWSが行い、開発者はアプリケーション開発に集中できます。
内部的にはCloudFormationをバックエンドとして使用しており、スタックとして環境を管理します。 対応プラットフォーム: Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker(単一/マルチコンテナ)。
Elastic Beanstalk自体は無料。プロビジョニングされるEC2・ALB・RDS等のリソース料金のみ発生します。
2. 主な特徴と機能
2.1 環境タイプ
- Webサーバー環境: ALB + EC2(Auto Scaling)構成でHTTPリクエストを処理。通常のWebアプリ・APIに使用。
- Workerキュー環境: SQSキューからメッセージを受け取り非同期処理を実行。長時間処理・バックグラウンドジョブに使用。
- WebサーバーとWorkerを組み合わせた分離アーキテクチャが試験頻出パターン。
2.2 デプロイポリシー(最重要・試験最頻出)
- All at Once: 全インスタンスを一斉更新。最速だがデプロイ中はダウンタイムが発生。開発環境向け。
- Rolling: インスタンスをバッチ単位で順次更新。デプロイ中は旧バージョンと新バージョンが混在。追加コストなし。
- Rolling with Additional Batch: 追加インスタンスを起動してから順次更新。デプロイ中も満容量を維持。追加コストあり(一時的)。
- Immutable: 新ASGに新バージョンを全台起動し、ヘルスチェック後に切り替え。最も安全。切り戻しが容易。コスト2倍(一時的)。
- Blue/Green(Traffic Splitting): 別環境(グリーン)を作成しDNS切り替え(Route 53)。完全な本番同等テストが可能。Immutableより切り戻しが速い。
2.3 .ebextensions による設定カスタマイズ
- アプリバンドルの
.ebextensions/ディレクトリに YAML/JSON ファイルを配置。 - 追加パッケージのインストール、環境変数設定、EC2設定変更、RDSプロビジョニングなどが可能。
- 例:
.ebextensions/nginx.configでNginxをカスタマイズ。
2.4 Managed Platform Updates(マネージド更新)
- プラットフォーム(OS・ランタイム・Webサーバー)の自動更新機能。
- メンテナンスウィンドウを設定して無停止更新を実施。Immutableデプロイで安全に適用。
2.5 設定の保存と再利用
- 環境設定を保存済み設定(Saved Configuration)としてS3にエクスポート可能。
- 新環境作成時に適用して一貫した設定を再現。
3. アーキテクチャおよび技術要素
- 開発者がアプリケーションコードを ZIP / WAR / Docker イメージとしてアップロードする。
- Elastic Beanstalk が CloudFormation スタックを自動作成・更新し、EC2・ALB・ASG・RDS などをプロビジョニング。
- 選択したデプロイポリシーに従いインスタンスを更新。
- ALBがトラフィックをEC2インスタンスに分散。Auto ScalingでCPU/リクエスト数に応じてスケール。
- CloudWatchでメトリクス・ログを収集し、SNSでアラート通知。
Worker環境はSQSキューをポーリングし、メッセージをローカルHTTP(http://localhost/)に転送。
Webサーバー環境との組み合わせで非同期処理パターンを実現。
4. セキュリティと認証・認可
- サービスロール: Elastic BeanstalkがEC2・CloudFormationなどを操作するためのIAMロール。
- インスタンスプロファイル: EC2インスタンスがS3・DynamoDB等にアクセスするためのIAMロール。アプリがAWSリソースに接触する場合に必要。
- VPC内デプロイ: プライベートサブネットにEC2を配置し、ALBのみパブリック公開するパターンが推奨。
- セキュリティグループ: ALB・EC2・RDSそれぞれに独立したSGを設定。
- HTTPS: ALBリスナーにSSL証明書(ACM)を設定してHTTPS終端。
- .ebextensions で環境変数を設定: 機密情報はSystems Manager Parameter Store / Secrets Managerを参照するのが推奨。
5. 料金形態
- Elastic Beanstalk自体: 無料。
- EC2インスタンス: 実行中のインスタンス料金。リザーブドインスタンス・Spotも活用可能。
- ALB: ロードバランサー時間料金 + LCU料金。
- RDS(オプション): 選択したDBインスタンスの料金。
- S3: アプリバンドル・ログのストレージ料金。
- Elastic BeanstalkのManaged Updatesはコスト増なし(Immutableデプロイを伴う場合は一時的に増加)。
6. よくあるアーキテクチャ・設計パターン
- WebアプリPaaS: コードをアップロードするだけでスケーラブルなWebアプリを公開。インフラ管理ゼロ。
- 非同期処理(Web + Worker): WebサーバーがSQSにメッセージ投入 → Worker環境が処理。重い処理をバックグラウンド化。
- Blue/Greenデプロイ: グリーン環境に新バージョンをデプロイ → Route 53 CNAMEスワップで切り替え。切り戻しは再スワップで即時。
- Docker環境: 単一コンテナDockerfileまたはECR参照でコンテナアプリをBeanstalkで管理。ECSほどの複雑な設定不要。
- CI/CD統合: CodePipeline → CodeBuild(ビルド)→ Elastic Beanstalkデプロイ。
7. 設定・デプロイ手順(ハンズオン例)
- コンソールまたは
eb initでアプリケーションを作成し、プラットフォームを選択する。 eb createで環境を作成(環境タイプ・インスタンスタイプ・ロードバランサーを指定)。.ebextensions/ディレクトリに設定ファイルを追加する。eb deployでアプリをデプロイする(デプロイポリシーを指定可能)。- Managed Platform Updates を有効化してプラットフォームを自動更新する。
- Blue/Greenデプロイを実施する場合:
eb cloneでグリーン環境を作成 → デプロイ →eb swapでURLを切り替える。
8. 試験で問われやすいポイント
8.1 デプロイポリシーの選択(最頻出)
Q: 「ダウンタイムなし」「デプロイ中も満容量を維持」「最も安全」な条件ではどのポリシーか?
A: Immutable。新ASGに全台起動してからヘルスチェック後に切り替え。コストは一時的に2倍。
Q: 「ダウンタイムは許容」「最速でデプロイ」の場合は?
A: All at Once。全インスタンスを一斉更新するため一時的なダウンタイムが発生する。
Q: Blue/GreenデプロイをElastic Beanstalkで実現する方法は?
A: 別環境(グリーン)を作成してデプロイ後、eb swap(CNAME入れ替え)またはRoute 53でトラフィックを切り替える。
8.2 Webサーバー環境 vs Worker環境
Q: 長時間かかるバックグラウンド処理(動画変換等)をElastic Beanstalkで非同期実行するには?
A: Worker環境。SQSキューにメッセージを投入し、Worker環境が処理する。Webサーバー環境はリクエスト受付のみ。
8.3 .ebextensions と設定のカスタマイズ
Q: Elastic Beanstalkでサーバー設定や追加パッケージをカスタマイズするには?
A: アプリバンドルの .ebextensions/ ディレクトリに YAML ファイルを配置する。
8.4 Elastic Beanstalk vs ECS vs CloudFormation
- Elastic Beanstalk: PaaS。コードをアップロードするだけ。インフラ自動構築。素早くデプロイしたい場合。
- ECS: コンテナオーケストレーション。Dockerコンテナを細かく制御したい場合。
- CloudFormation: IaC。インフラをコードで完全定義・管理したい場合。Beanstalkのバックエンドでもある。
8.5 Elastic Beanstalkの料金
Q: Elastic Beanstalk自体の使用料はいくらか?
A: 無料。プロビジョニングされるEC2・ALB・RDS等のリソース料金のみ発生する。