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)
  • 和訳

概要

Web アプリケーションを で公開しようとすると、本来はインスタンスの作成、の設定、負荷に応じたスケーリングの設計など、多くのインフラ作業が必要です。 を使うと、開発者はコード(アプリケーションのソースバンドル)をアップロードするだけで、これらの環境構築を AWS に任せられます。

概要の図 コードをアップロード 自動プロビジョニング 自動プロビジョニング 自動プロビジョニング 自動設定 開発者 Elastic Beanstalk EC2 インスタンス ロードバランサー Auto Scaling ヘルスモニタリング

代表的な使い道は、Web アプリケーションや の迅速なデプロイ、開発・検証環境の素早い立ち上げです。 Java、Python、Node.js など複数の言語やプラットフォームに対応しています。

試験では、「コードのアップロードだけでデプロイしたい」「インフラ管理の負担を減らしたい」というキーワードから Elastic Beanstalk を選び、EC2 手動構築、、 との違いを判断します。


主要技術

①コードをアップロードするだけの自動プロビジョニング ⚠️ 頻出

の中心となる機能は、アプリケーションの実行に必要な AWS リソースの自動(自動での準備・構築)です。 開発者がコードをアップロードすると、Elastic Beanstalk が次の作業を自動で行います。

自動化される作業内容判断ポイント
キャパシティのプロビジョニング インスタンスなどの実行環境を用意します。サーバーの構築作業が不要になります。
ロードバランサー()を設定します。複数インスタンスへのアクセス振り分けを自動化します。
負荷に応じてインスタンス数を増減します。スケーリングの設計・設定を任せられます。
ヘルスアプリケーションの状態を監視します。環境の健全性をコンソールで確認できます。
Point
  • プロビジョニング(Provisioning) は「必要なリソースを準備して使える状態にすること」です。
  • Provision は「供給する、準備する」という意味です。
  • 「コードを渡すと、動かすための環境一式を 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 を選べます。「自動管理」と「カスタマイズ可能」は両立します。


④料金の考え方 ⚠️ 頻出

自体には追加料金がありません。 支払うのは、アプリケーションのために作成された インスタンス、、、 などの基盤リソースの利用料金だけです。

項目料金判断ポイント
Elastic Beanstalk の利用追加料金なしサービス自体は無料で使えます。
作成された AWS リソース通常のEC2 や など、実際に使ったリソース分を支払います。

⚠️ 頻出: 「Elastic Beanstalk の料金はどうなるか」という問題では、「サービス自体は無料で、作成されたリソースの分だけ支払う」が正解です。同じ料金モデルのサービスに があります。


⑤他のデプロイ・構築方法との使い分け ⚠️ 頻出

CLF では、 と他のコンピューティング・構築サービスの使い分けが頻出です。 「何を自分で管理し、何を AWS に任せるか」という軸で整理します。

サービス特徴判断ポイント
手動構築インスタンス、、 をすべて自分で構築します。インフラを細かく制御したい場合に選びます。構築・運用の負担は最も大きくなります。
AWS Elastic Beanstalkコードをアップロードすると Web アプリケーション環境を自動構築します。「コードに集中したい」「インフラ管理を任せたい」場合に選びます。
サーバーを一切管理せず、コードをイベント発生時に実行します。で短時間の処理を実行する場合に選びます。常時稼働するサーバーは作成されません。
テンプレートを書いて任意の AWS リソースを自動構築します()。Web アプリケーションに限らず、インフラ全体をコードで定義・再現したい場合に選びます。
⑤他のデプロイ・構築方法との使い分け ⚠️ 頻出の図 はい はい・コードに集中したい いいえ・細かく制御したい イベント駆動の処理だけ実行したい 任意のリソースをテンプレートで構築したい Webアプリをデプロイしたい? インフラ管理を任せたい? Elastic Beanstalk EC2 手動構築 AWS Lambda AWS CloudFormation
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 ではリソースを制御できない」という選択肢です。利用者はの選択などのコントロールを維持できます。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください