
【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 | アプリケーションログ |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
制限値(固定値/ハードリミット/ソフトリミット)
| ソフトリミット | 制限値 |
|---|---|
| アプリケーション数/リージョン | 75 |
| アプリケーションバージョン数/アプリケーション | 1,000 |
| 環境数/アプリケーション | 200 |
| 設定テンプレート数/アプリケーション | 2,000 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| Beanstalk自体は無料 | 使用するリソースに課金 |