CLF / ドメイン3 クラウドテクノロジーとサービス
AWS Elastic Beanstalk
は、アプリケーションのコードをアップロードするだけで、実行に必要なインフラを AWS が自動的に構築・管理してくれるサービスです。 インスタンス、、 などを自分で1つずつ設定しなくても、Web アプリケーションをすばやくデプロイできます。
CLF では、「開発者がインフラ管理から解放され、コードに集中できるサービスはどれか」という問いで Elastic Beanstalk を選べることが重要です。
Point
- Beanstalk(ビーンストーク) は「豆の木」という意味です。童話「ジャックと豆の木」のように、コードという種をまくと環境が自動で育つイメージで覚えます。
- Elastic Beanstalk は PaaS(Platform as a Service) に分類されるサービスです。
- IaaS(Infrastructure as a Service) = サーバーなどのインフラを借りて自分で構築する(例: EC2)
- PaaS(Platform as a Service) = アプリケーションの実行環境ごと借りる(例: Elastic Beanstalk)
- 和訳
- Beanstalk: 豆の茎、豆の木
- Weblio英和辞書「beanstalk」
概要
Web アプリケーションを で公開しようとすると、本来はインスタンスの作成、の設定、負荷に応じたスケーリングの設計など、多くのインフラ作業が必要です。 を使うと、開発者はコード(アプリケーションのソースバンドル)をアップロードするだけで、これらの環境構築を AWS に任せられます。
代表的な使い道は、Web アプリケーションや の迅速なデプロイ、開発・検証環境の素早い立ち上げです。 Java、Python、Node.js など複数の言語やプラットフォームに対応しています。
試験では、「コードのアップロードだけでデプロイしたい」「インフラ管理の負担を減らしたい」というキーワードから Elastic Beanstalk を選び、EC2 手動構築、、 との違いを判断します。
主要技術
①コードをアップロードするだけの自動プロビジョニング ⚠️ 頻出
の中心となる機能は、アプリケーションの実行に必要な AWS リソースの自動(自動での準備・構築)です。 開発者がコードをアップロードすると、Elastic Beanstalk が次の作業を自動で行います。
| 自動化される作業 | 内容 | 判断ポイント |
|---|---|---|
| キャパシティのプロビジョニング | インスタンスなどの実行環境を用意します。 | サーバーの構築作業が不要になります。 |
| ロードバランサー()を設定します。 | 複数インスタンスへのアクセス振り分けを自動化します。 | |
| 負荷に応じてインスタンス数を増減します。 | スケーリングの設計・設定を任せられます。 | |
| ヘルス | アプリケーションの状態を監視します。 | 環境の健全性をコンソールで確認できます。 |
Point
- プロビジョニング(Provisioning) は「必要なリソースを準備して使える状態にすること」です。
- Provision は「供給する、準備する」という意味です。
- 「コードを渡すと、動かすための環境一式を provision(準備)してくれる」と覚えます。
- 和訳
- Provision: 供給、準備
- Weblio英和辞書「provision」
⚠️ 頻出: 「開発者はコードをアップロードするだけで、キャパシティのプロビジョニング、負荷分散、Auto Scaling、ヘルスモニタリングを自動化したい」という問題文は、Elastic Beanstalk がそのまま答えになります。
②対応プラットフォームと環境の種類
は、Go、Java、.NET、Node.js、PHP、Python、Ruby で開発されたアプリケーションに対応しています。 また、Docker にも対応しているため、対応一覧にない言語やライブラリ構成でも Docker を使ってデプロイできます。
環境には2つの種類(ティア)があります。
| 環境の種類 | 用途 | 判断ポイント |
|---|---|---|
| ウェブサーバー環境 | Web サイトや など、 リクエストを処理するアプリケーション | 一般的な Web アプリケーションはこちらを選びます。 |
| ワーカー環境 | キューのメッセージを処理するバックグラウンド処理 | 時間のかかる非同期タスクの処理に使います。 |
CLF では環境の種類の細かい構成までは問われにくいですが、「Web アプリケーションのデプロイに使うサービス」であることと、主要な言語に幅広く対応していることを押さえておきます。
③インフラの管理とカスタマイズの位置づけ
を使うと、開発者はインフラ管理の作業から解放され、アプリケーションのコードに集中できます。 やミドルウェアを含むプラットフォームのバージョン更新も、マネージドプラットフォーム更新の仕組みで自動化できます。
一方で、Elastic Beanstalk は「中身が見えないブラックボックス」ではありません。 作成されたリソースは利用者の AWS アカウント内にあり、利用者は AWS リソースの完全なコントロールを維持できます。
- のや購入オプション(、スポットなど)を選択できます。
- 必要に応じて EC2 インスタンスへ直接アクセスし、トラブルシューティングできます。
- 設定ファイルを使って環境の詳細をカスタマイズできます。
⚠️ 頻出: 「インフラ管理を任せたいが、リソースのコントロールは失いたくない」という要件でも Elastic Beanstalk を選べます。「自動管理」と「カスタマイズ可能」は両立します。
④料金の考え方 ⚠️ 頻出
自体には追加料金がありません。 支払うのは、アプリケーションのために作成された インスタンス、、、 などの基盤リソースの利用料金だけです。
| 項目 | 料金 | 判断ポイント |
|---|---|---|
| Elastic Beanstalk の利用 | 追加料金なし | サービス自体は無料で使えます。 |
| 作成された AWS リソース | 通常の | EC2 や など、実際に使ったリソース分を支払います。 |
⚠️ 頻出: 「Elastic Beanstalk の料金はどうなるか」という問題では、「サービス自体は無料で、作成されたリソースの分だけ支払う」が正解です。同じ料金モデルのサービスに があります。
⑤他のデプロイ・構築方法との使い分け ⚠️ 頻出
CLF では、 と他のコンピューティング・構築サービスの使い分けが頻出です。 「何を自分で管理し、何を AWS に任せるか」という軸で整理します。
| サービス | 特徴 | 判断ポイント |
|---|---|---|
| 手動構築 | インスタンス、、 をすべて自分で構築します。 | インフラを細かく制御したい場合に選びます。構築・運用の負担は最も大きくなります。 |
| AWS Elastic Beanstalk | コードをアップロードすると Web アプリケーション環境を自動構築します。 | 「コードに集中したい」「インフラ管理を任せたい」場合に選びます。 |
| サーバーを一切管理せず、コードをイベント発生時に実行します。 | で短時間の処理を実行する場合に選びます。常時稼働するサーバーは作成されません。 | |
| テンプレートを書いて任意の AWS リソースを自動構築します()。 | Web アプリケーションに限らず、インフラ全体をコードで定義・再現したい場合に選びます。 |
Point
- IaC = Infrastructure as Code(コードとしてのインフラ) の略です。
- Elastic Beanstalk と CloudFormation の違いは次のように覚えます。
- Elastic Beanstalk = 「アプリのコード」をアップロード → Web アプリ環境が自動でできる
- CloudFormation = 「インフラのテンプレート」を書く → 任意のリソース構成が自動でできる
- Elastic Beanstalk は内部で CloudFormation を利用してリソースを作成しています。
試験対策
CLF の問題では、まず「開発者が何をしたいのか」を確認します。 「コードをアップロードするだけでデプロイしたい」「インフラ管理から解放されたい」という表現があれば、 が有力です。
| 問題文のキーワード | 優先して考えるサービス | 理由 |
|---|---|---|
| コードをアップロードするだけでデプロイ | AWS Elastic Beanstalk | 実行環境を自動でします。 |
| キャパシティ、、、ヘルスを自動化 | AWS Elastic Beanstalk | これらの管理をまとめて任せられます。 |
| 開発者がインフラではなくコードに集中 | AWS Elastic Beanstalk | としてインフラ管理を引き受けます。 |
| Web アプリを素早くデプロイ(Java、Python、Node.js など) | AWS Elastic Beanstalk | 主要な言語プラットフォームに対応しています。 |
| サーバーを管理せずイベント発生時にコードを実行 | の実行の要件です。 | |
| テンプレートで任意の AWS リソースを構築() | Web アプリに限らずインフラ全体を定義できます。 | |
| インフラのすべてを自分で細かく制御 | (手動構築) | 制御性を最優先する要件です。 |
よくある誤答パターンは次のとおりです。
- Elastic Beanstalk と CloudFormation の混同です。「アプリのコードをアップロードして Web 環境を作る」なら Elastic Beanstalk、「テンプレートで任意のリソースを構築する」なら CloudFormation を選びます。
- Elastic Beanstalk と Lambda の混同です。Elastic Beanstalk は EC2 などのサーバーが作成される PaaS であり、Lambda はサーバーが見えないサーバーレスのイベント駆動実行です。
- 「Elastic Beanstalk は追加料金がかかる」という選択肢です。サービス自体は無料で、作成されたリソース分だけ支払います。
- 「Elastic Beanstalk ではリソースを制御できない」という選択肢です。利用者はの選択などのコントロールを維持できます。