公開日:2024年3月28日最終更新日:
Webアプリケーションを開発する際は、サーバーやデータベースはもちろん、ネットワークやロードバランサーなど幅広いインフラが必要です。専門のエンジニアが居ない場合、これらの準備に時間を要してしまい、アプリケーションの開発に注力できない可能性があります。
この問題を解決するために、AWSにはWebアプリケーションの開発を支援する「Elastic Beanstalk」が存在します。今回は、こちらについて理解を深めていきましょう。
目次 <Contents>
Elastic Beanstalkとは
Elastic Beanstalkは、WebアプリケーションやWebサービスの実行環境を自動的に構築するためのサービスです。本来は、デプロイメントに向けて自分自身で準備する必要がありますが、Elastic Beanstalkならば多くの作業を自動化できます。ルールに従ってプログラムなどを「zipファイル」「warファイル」で準備しておくと、コンソール上の簡単な設定だけで実行環境が完成するのです。なお、以下のプラットフォームを構築できます。
- .NET Core on Linux
- .NET on Windows Server
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
- Tomcat
これらのプラットフォームしか利用できませんが、主要なプログラミング言語については、カバーしていると理解して良いでしょう。
Elastic Beanstalkのセットアップ方法
続いて、Elastic BeanstalkでWebアプリケーションを構築するために、セットアップ方法を簡単に紹介します。
アプリケーションの作成
Elastic Beanstalkでは「アプリケーション」という単位で環境を構築するため、最初にこれを作成します。Elastic Beanstalkの画面から「アプリケーションの作成」をクリックしましょう。
まず、アプリケーションの名称を設定する必要があります。ここではテストであることが分かるような名称としました。また、同時に環境の名称も設定する必要がありますが、自動的に設定されるため、今回はデフォルトを採用しています。
続いて、プラットフォームを設定しなければなりません。上記で示した選択肢があるため、それらの中から今回はPHPを選択しました。問題なければ「次へ」をクリックします。
続いて、サービスアクセスを指定します。例えば、AWSのロールやEC2へのアクセスに利用するキーペアなどです。今回は新しいものを作成するとして、以下のとおりにしました。なお、細かな設定も可能ですが、ここではアプリケーションのみを作成するため「レビューまでスキップ」をクリックします。
設定値が表示されるため、ページ下部まで進み「送信」をクリックします。
このような画面が表示されれば、アプリケーションの作成は完了です。
Webアプリケーションのデプロイ
アプリケーションの作成が完了すれば、続いては実際にWebアプリケーションをデプロイします。先程、作成した環境から「アップロードとデプロイ」をクリックして、用意しておいたプログラムファイルを指定しましょう。
ファイルを指定したならば、デプロイのために「デプロイ」をクリックします。
ファイルをデプロイすると、画像の通りアプリケーションバージョンにその内容が追加され、デプロイが開始される仕組みです。
デプロイに成功すると、画像の赤枠部分に、ドメインが表示されます。
ドメインをクリックし、想定していたWebアプリケーションのトップ画面が表示されれば成功です。今回の場合、データベースは利用せずにPHPサーバーだけで起動するファイルをアップロードしました。そのため、画像のとおり一般的なWebサイトのような情報が表示されています。
なお、今回のzipファイルの詳細はこのようになっていて、「index.php」を中心に構成されています。そのため、Elastic BeanstalkでWebアプリケーションをデプロイした場合は、自動的にこのファイルが開かれる仕組みです。同様に、皆さんがWebアプリケーションをデプロイする際は、index.phpを初回に開くものとしてzipファイルを準備するようにしてください。
Elastic Beanstalkのより高度なおすすめの活用方法
上記ではElastic Beanstalkの基本的な利用方法について解説しました。ただ、Elastic Beanstalkには、より高度なおすすめの使い方があるため、それらについても解説します。
複数の環境を構築
アプリケーション開発や運用の現場では、複数の環境を構築したいケースが多いでしょう。例えば、開発環境と本番環境を別々に準備したいことがあるはずです。Elastic Beanstalkでは、1つのアプリケーションに対して複数の環境構築が可能となっているため、このような要望を叶えられます。
複数の環境を構築したい場合は、最初に作成した「アプリケーション」から赤枠のボタンをクリックして、追加しなければなりません。
こちらのボタンをクリックすると、最初にアプリケーションと環境を作成したのと同様に「環境を設定」の画面に遷移します。同様の画面であるため操作方法は割愛しますが、こちらで「環境名」に区別できる名称を設定し、それ以外の情報は同じものとすることで、同じ内容の別環境を構築できるのです。同じアプリケーションの配下に、複数の環境を作成しておくことによって、同じアプリケーションであると理解しやすくなります。
なお、同じ環境でバージョン違いのアプリケーションをビルド・デプロイしたい場合はあるでしょう。例えば、開発環境で1つ前のバージョンをビルドしたいことがあるはずです。この場合は、新しく環境を作成することも手段ではありますが「アプリケーションバージョン」からデプロイし直すこともできます。
同じアプリケーションを何度もアップロードすると無駄が生じるため、状況に応じてバージョン管理機能を利用すると良いでしょう。ただ、デプロイし直してしまうと既存の環境は廃棄され上書きされてしまいます。そのため「最新の開発環境と1つ前の開発環境を同時に利用して比較したい」との要望がある場合は、上記で触れたように新しく環境を準備しなければなりません。
設定ファイル(.ebextensions)の活用
ソースコードを含んだ圧縮ファイルの中には「.ebextensions」と呼ばれるものが含まれています。上記で示した画像の中にも、該当のフォルダーが含まれていることが見て取れるでしょう。こちらは、簡単に述べるとYAMLもしくはJSON形式で準備した設定ファイルを格納するフォルダです。デプロイにあたって定義したいことがあれば、こちらに含めておくことで自動的にロードしてもらえます。
なお、設定できるオプション値については、複雑であるためここで全ては解説できません。AWSの公式サイトに、概要が解説されているため、それを参照して活用するようにしてください。
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/ebextensions.html
まとめ
Elastic Beanstalkは、AWSにWebアプリケーションの環境を簡単にデプロイするものです。今回はサーバー構築のみを解説しましたが、事前に設定しておけばデータベースの活用もできます。本来は、ネットワークの設定やセキュリティグループの修正など、多くの事前準備が必要ですが、これらを自動的に処理してくれるのです。開発効率を大きく高められるものであるため、是非とも活用してみてください。