はじめに

試行錯誤で工程を進めているためこの記事で扱った内容が後に不要(無駄)であったことが発覚するケースがあるかもしれません。

作成途中の #3 の記事で次のことが発覚しました。データベースの構築に amazon RDS を用いる場合は問題ありませんが、自前でデータベースエンジン(MySQLなど)のインストールを行う場合は Elastic Beanstalk で作成される EC2 のインスタンにはインストールしない(そもそもインストールできるかわかりませんが)のが通常のようです。

前回はサーバーインスタンスを作成しました。
今回はWEBサーバーとして動く様にしたいと思います。

WEBサーバーを稼働させるための選択肢

  • Amazon Elastic Beanstalk を利用する(課金は EC2 で行われるので Elastic Beanstalk自体の利用は無料)
  • EC2のインスタンスに自分で apache をインストールする
  • Amazon Lightsail(必要なものが全て用意されている) を利用する(無料で利用できるのは1ヶ月だけ)
  • Amazon Marketplace から持ってくる(費用は不明)

今回は無料で利用できるし王道っぽい Amazon Elastic Beanstalk を利用してみます。

Amazon Elastic Beanstalk

正直ピンと来ていませんが Elastic Beanstalk に WEBアプリケーションをアップロードすることでWEBサーバー(apache など)をインストールしなくても WEBアプリケーション が動くと言うことです。

環境の作成時にプラットフォーム(Python, PHP など)を選択する形式です。

早速アプリケーションを配置してみる

最終目的であるWordPressはDBも用意しないと動かないため、今回は予習として「LEGO 75040」と表示するだけのPHPアプリケーションを配置してみます。

Elastic Beanstalk コンソールを開きます

AWSマネジメントコンソールの検索ボックスでElastic Beanstalk を検索して表示されたリンクを選択すると「Elastic Beanstalkコンソール」が開きます。

アプリケーション(環境)を作成(アップロード)します

Elastic Beanstalk でアプリケーションを稼働させる手順は下記になります。

  • 環境を作成する
  • アプリケーションを作成(配置)する

見た感じだと環境とアプリケーションは常に1:1のようで1つの環境に複数のアプリケーションを配置することは出来ない様子です。

環境を作成する場合はアプリケーションも同時に作成(アップロード)することになりますが、先にアプリケーションだけを作成して、後に環境を作成することも可能です。

Elastic Beanstalkの初期状態では「Create Application」から環境とアプリケーションを一緒に作成することになります。

アプリケーション名

ここでは”legowishlist”にします。
初期状態ではこの名称に「-env」が付加された文字列が環境名としてテキストボックスに自動で入力されますが変更可能です(環境作成後は変更できません)。また、後ほど自動で生成されるアプリケーションのURLは、この環境名から始まるものが生成されます。

プラットフォーム

Python, PHP, Node.js…など(後の写真を参照)から選択可能です。
ここで選択したプラットフォームはこのコンソールからは変更出来ない(バージョンなどのアップグレードは可能)様ですが aws CLI(ターミナルやコマンドラインから操作)からであれば可能な様子です。

アプリケーションコード

zipか warで一塊にしたファイルをアップロードします。
S3のファイルを参照することも可能です。
またはサンプルアプリケーションを利用することも出来るので「とりあえず何か動かしてみたい」時にすぐに環境を作成することが可能です。

以上を設定して「環境の作成」ボタンを選択すると環境(アプリケーション)の作成が開始され3から4分待つことでアプリケーションの作成が完了します。

作成が完了すると自動で環境画面へ遷移されます。

この画面から新たなアプリケーションをアップロード(アプリケーションの更新)したり、アプリケーションの状態の確認や再起動、そして終了などの操作を行うことができます。

アプリケーションを確認してみましょう

環境名の下のリンクを選択すると作成したサイトが開きます。

環境画面。更新したアプリケーションの配置や状態の確認や再起動、終了などの操作が可能
今回作成したサイト

最後に

今回 Elastic Beanstalk でアプリケーションを作成してみて分かったことは、前回作成した EC2 でのインスタンスの作成は不要であったことです。Elastic Beanstalk でアプリケーションを作成すると自動で EC2 のインスタンスも作成されていました。

後で確認したところElastic Beanstalk の作成時でも作成後でもインスタンスタイプは変更可能であることがわかりました。

しかし、既存の EC2 のインスタンスを”指定する”と言うことはできない模様です。

次回はDBの用意をしたいと思っています。

一番上のインスタンスが Elastic Beanstalk 経由で自動で作成されたインスタンスです
シリーズのリンク

#1 サーバー構築編
#2 WEBサーバー構築編
#3 DB構築編
#4 ドメインの設定とWrodPress稼働編

編集履歴
  • 2020.8.27 「はじめに」を追加して後の記事で今回の記事の内容が不要(無駄^^;)になる可能性がある旨を追記しました
  • 2020.8.27 Elastic Beanstalk に作成された EC2のインスタンスには自分でDBをインストールしないのが「普通っぽい(そもそもできないかもしれない)」と追記しました
  • 2020.8.27 Elastic Benastalk の作成時(後)にEC2インスタンスタイプを選択できることを追記しました