Elastic Beanstalk

【VPC外リージョンサービス】

Elastic Beanstalk は、PaaS(Platform as a Service) 型のサービスです。

アプリケーションをコードとしてデプロイするだけで、環境(VPC、EC2、ELB、Auto Scaling、RDS など) を自動的に作成・運用します。自動デプロイ機能により、アプリの更新やスケーリングも容易に行えます。

Java / .NET / Python / Node.js / PHP / Ruby / Go / Docker などの対応プラットフォームをサポートしており、柔軟に開発できます。設定は構成テンプレート設定ファイル(.ebextensions)で上書きすることができ、詳細な環境調整も可能です。

さらに、S3 にアプリケーションパッケージを保存し、CloudWatch でログやメトリクスを監視できます。CodePipeline, CodeBuild, CodeDeploy と連携することで、CI/CD パイプラインを構築し、継続的デプロイを実現できます。

重要用語

ユースケース

フルマネージドなWebアプリ環境の構築JavaやPython、.NETなどのアプリケーションをアップロードするだけで、EC2・Auto Scaling・ELBなどを含む環境を自動構築して公開する。
従来型モノリシックアプリのホスティング単一のWebアプリケーションやAPIを1つのパッケージとしてデプロイし、スケーリングやヘルスチェックはプラットフォームに任せる。
ステージング/本番環境の簡単な切り替え別々の環境(dev/stg/prod)をBeanstalk上に作成し、バージョンの切り替えやロールバックをGUIやCLIから簡単に行う。

ベストプラクティス

環境ごとの分離ステージングと本番を別環境に分けて安全にデプロイする。
設定テンプレートの活用環境設定をテンプレートとして保存し、再利用性を高める。
ヘルスモニタリングの確認環境ヘルスダッシュボードを定期的に確認し、異常を早期発見する。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・コントロールプレーン
 ・構成情報ストレージ(設定・メタデータ)
 ・デプロイアーティファクト(アプリケーションバージョン)
 ・ロギングおよび監視情報(CloudWatch, Logs, Health)
 ・Elastic Beanstalkプラットフォームのバイナリ・テンプレート

セキュリティ

関連サービス設定内容
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
環境設定変更履歴(対象に限る)・準拠評価
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
環境設定変更のAPI異常検知

ログ・監視

ログ出力先ログの種類
CloudWatch Logsアプリケーションログ
CloudWatch Logs優先の原則
標準メトリクス
メトリクス名説明

制限値(固定値/ハードリミット/ソフトリミット)

ソフトリミット制限値
アプリケーション数/リージョン75
アプリケーションバージョン数/アプリケーション1,000
環境数/アプリケーション200
設定テンプレート数/アプリケーション2,000

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
Beanstalk自体は無料使用するリソースに課金

公式ページ

AWSドキュメント Elastic Beanstalk