1
1

More than 1 year has passed since last update.

AWS Elastic Beanstalkを試してみる

Last updated at Posted at 2023-02-20

はじめに

AWSのElastic Beanstalkを試してみたいと思います。
特徴はChatGPTに聞いたらこう教えてくれました。

Beanstalkは、AWSでウェブアプリケーションを立ち上げて稼働させるのに最も速い方法です。以下のような特徴があります。
多彩なアプリケーションプラットフォーム(Java、.NET、PHP、Node.jsなど)

  • アプリケーションデプロイの多様な選択肢(ZIPファイル、Git、Dockerなど)
  • モニタリング(AWS Management ConsoleやAmazon CloudWatchでアプリケーションの状態やメトリクスを確認できる)
  • 管理と更新(AWS CLIやSDKを使ってアプリケーションや環境の設定を変更できる)
  • スケーリング(オートスケーリンググループやロードバランサーを使ってトラフィックに応じてインスタンス数を調整できる)
  • カスタマイズ(設定ファイルや拡張機能を使ってインフラストラクチャの詳細を変更できる)
  • コンプライアンス(PCI DSS、HIPAA、ISO 27001などの規制に準拠している)

サンプルアプリのダウンロード

まずは使用するサンプルアプリをこちらからダウンロードします。

今回はNode.jsを使ってみたいと思います。

Zipファイルを解凍すると、こうなっています。

% ls nodejs
EBSampleApp-Nodejs.iml	cron.yaml		package.json
app.js			index.html

Beanstalkの設定

アプリケーションを作成して、そのアプリを動かす環境を作成します。

アプリケーションの作成

AWSのコンソールからCreate Applicationをクリック

スクリーンショット 2023-02-19 9.52.41.png

ここではこのように設定してより多くのオプションの設定をクリック
スクリーンショット 2023-02-20 15.39.38.png

ここでアプリケーションの作成をクリックすると、アプリケーションと環境が同時に作成されてしまうようです。
この時点でアプリケーションのみ作成されます。

環境の作成

環境を作っていきます。

左メニューのアプリケーションをクリック
スクリーンショット 2023-02-20 14.29.06.png

作成したnodejsAppをクリック
スクリーンショット 2023-02-20 15.43.09.png

新しい環境の作成をクリック
スクリーンショット 2023-02-20 15.44.17.png

選択をクリック
スクリーンショット 2023-02-20 15.45.03.png

このように設定してより多くのオプションの設定をクリック
ソースコードはサンプルコードそのままをZip形式でアップロードします。

スクリーンショット 2023-02-20 15.46.39.png

ここでは開発環境を想定しているので、単一インスタンスにチェックが入っていることを確認して、一番下の環境の作成をクリック
スクリーンショット 2023-02-20 15.48.41.png

スクリーンショット 2023-02-20 15.50.12.png

しばらく待ちます。
スクリーンショット 2023-02-20 15.50.45.png

構築が環境するとこうなります。
スクリーンショット 2023-02-20 15.58.38.png

左上のURLをクリックすると、画面を確認できます。
スクリーンショット 2023-02-19 10.52.57.png

設定内容の確認

作成された構成の設定内容を確認してみます。左メニューの設定をクリックします。

スクリーンショット 2023-02-20 16.02.00.png

EC2のコンソールでも確認できます。
スクリーンショット 2023-02-20 16.05.49.png

新環境の作成

開発が終わったと想定して、本番環境を作っていきます。

新しい環境の作成をクリック
スクリーンショット 2023-02-20 16.09.41.png

選択をクリック
スクリーンショット 2023-02-20 16.11.04.png

このように設定して、より多くのオプションの設定をクリック
スクリーンショット 2023-02-20 16.12.24.png

今回は本番環境を想定しているので、高可用性を選択して環境の作成をクリック
スクリーンショット 2023-02-20 16.13.55.png

しばらく待つとこのように環境作成が完了します。
スクリーンショット 2023-02-20 16.23.29.png

同様にURLをクリックすると、変更したソースコードで画面が表示されます。
スクリーンショット 2023-02-20 15.06.21.png

設定内容の確認

設定内容を確認します。
ロードバランサーがプロビジョニングされていて、オートスケールも設定されていますね。
スクリーンショット 2023-02-20 16.25.54.png

EC2はDev環境と同様に1インスタンスプロビジョニングされています。
スクリーンショット 2023-02-20 16.27.55.png

Prd環境の方はLBもありますね。
スクリーンショット 2023-02-20 16.28.31.png

(参考)

本番用のソースコードはサンプルの色をいじっただけですが、圧縮する際にこのようにソースの親ディレクトリで圧縮すると、Beanstalkの環境作成時にエラーとなりました。相対パスが入ってるのがダメみたいです。

% zip nodejs-prod.zip nodejs-prod/*
  adding: nodejs-prod/EBSampleApp-Nodejs.iml (deflated 47%)
  adding: nodejs-prod/app.js (deflated 52%)
  adding: nodejs-prod/cron.yaml (deflated 24%)
  adding: nodejs-prod/index.html (deflated 72%)
  adding: nodejs-prod/package.json (deflated 23%)

このようにコードと同じディレクトリで圧縮することによって成功しました。

% zip ../nodejs-prod.zip -r .
  adding: EBSampleApp-Nodejs.iml (deflated 47%)
  adding: cron.yaml (deflated 24%)
  adding: index.html (deflated 72%)
  adding: package.json (deflated 23%)
  adding: .ebextensions/ (stored 0%)
  adding: .ebextensions/logging.config (deflated 53%)
  adding: app.js (deflated 52%)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1