aws

【B-13】Elastic Beanstalk

[学習フェーズ]

Elastic Beanstalkとは?

Elastic Beanstalk(EB) は、Webアプリケーションを 数クリックでデプロイできるPaaS型サービス です。インフラの詳細設定はAWS側が管理し、利用者はアプリケーションのコードだけに集中できます。

主な特徴

機能説明
アプリ一括管理EC2、ALB、Auto Scaling、CloudWatch、S3などをまとめて構築・管理
複数言語に対応Node.js / Python / Java / Go / Ruby / .NET / PHP など
環境の切替も簡単本番・開発などの複数環境がGUIで管理可能
テンプレートアプリあり「コードを用意しなくてもすぐ試せる」テンプレート機能付き

Elastic Beanstalk概略図

EBでは、以下のような動作をしています。
EBがCloudFormationを動作させ、VPCやEC2、ALB、AutoScallingなどを自動でデプロイします。
これ以外にも、RDSや冗長構成なども構築可能です。

上記とは別に、「ワーカー環境」も構築可能です。ワーカー環境はバッチアプリケーションを実行するための環境です。

EC2・SQSの構築が可能です。

[実践フェーズ]

Elastic Beanstalkのを使って、テンプレートアプリ(Python)を1クリックでデプロイし、インターネットからアクセスできるようにしてみましょう。

アプリケーションの作成

  1. マネジメントコンソールより、EB >[アプリケーションの作成] をクリック
  2. 各項目を以下のように設定:
項目設定内容
アプリケーション名任意(例:sample-eb-app
プラットフォームPython(例:Python 3.8)
アプリケーションコードサンプルアプリケーション
プリセット単一インスタンス (無料利用枠の対象)

※コードをアップロードする必要はありません。

③ 環境の作成(自動で進行)

  • 「次へ」や「作成」などをクリックすると、Elastic Beanstalkが自動で環境(EC2 + ALB + S3など)を構築します。
    自由に設定してみましょう。
  • 数分ほど待機(5〜10分)

Tips

Elastic Beanstalkは、VPCやEC2といった個別のインフラ設定を行うことなく、短時間で一通りのアプリケーション実行環境を構築できるマネージドサービスです。そのため、アイデアをすぐに形にしたい場合や、動作検証を迅速に行いたいケースに非常に適しています。
また、インフラ構築に不慣れなバックエンドエンジニアや、AWSに関する専門知識を持たない開発者にとっても、アプリケーションのデプロイが容易に行える点が大きな利点です。

ただし、Elastic Beanstalkによって自動的に構成されるリソースは、インフラエンジニアの観点から見ると、セキュリティグループやVPCのIPレンジ設計などが不十分なことが多く、最小限の安全性しか担保されていないケースも見受けられます。
そのため、本番環境での運用には適しておらず、基本的には検証や開発用途に留めるべきサービスといえるでしょう。

なお、実際の現場では「AWSが扱える」と自己申告するバックエンドエンジニアが、実際にはElastic Beanstalkの経験しかない、というケースも少なくありません。

Elastic Beanstalkは確かに便利なサービスですが、VPC設計、セキュリティグループの設定、IAM管理、ログ収集、スケーリングポリシーといったインフラ基盤の理解を必要としないため、AWSの全体像やベストプラクティスを身に付ける前に“できたつもり”になるリスクがあります。

人事担当者や技術リーダーの方は、AWSスキルの評価を行う際、単に「AWSが使える」という言葉にとどまらず、どのサービスをどのレイヤーで扱った経験があるのかを丁寧に確認することをおすすめします。