AWS Elastic Beanstalk についてよく分からなかったので理解を深めるためにまとめます。
#Elastic Beanstalkとは
Amazon Web Services (AWS) はめっちゃたくさんの機能があって逆に使いこなせんという初心者の方がすごい多いと思います。実際僕もそうです。
公式のドキュメントによると、、、よくわからん。。笑
要するにAWSにはインフラ系のたくさんの機能があるけど(容量のプロビジョニング、負荷分散、拡張、およびアプリケーションの状態のモニタリング等、、、)こういうのってせっかく早くアプリをリリースしたいのに、ここらへんで問題起きちゃうと大変だし、インフラの深い知識も必要になるからまるっと管理できる機能がほしいよ−って事ででてきたのがElastic Beanstalkという訳だと思います。
また、一連の Amazon EC2 インスタンスのサイズの変更、アプリケーションのモニタリングなど、ほとんどのデプロイタスクを Elastic Beanstalk ウェブインターフェイス (コンソール) から直接実行できるみたい。。すごいですね。
Elastic Beanstalk を使用するには、アプリケーションを作成し、アプリケーションソースバンドル (Java .war ファイルなど) の形式でアプリケーションバージョンを Elastic Beanstalk にアップロードした後、アプリケーションに関する情報を提供します。Elastic Beanstalk によって自動的に環境が起動され、コードの実行に必要な AWS リソースが作成および構成されます。環境が起動した後は、環境を管理し、新しいアプリケーションバージョンをデプロイできます。
##Elastic Beanstalk のワークフロー
##どうやって利用するのか、、、。
アプリケーションを作成してデプロイした後、アプリケーションに関する情報をElastic Beanstalk コンソール、API、コマンドラインインターフェイス(統合された AWS CLI など)を介して利用できるみたい。
###しかもElastic Beanstalk使用量自体は無料!!アプリケーションが使用する基になる AWS リソースに対してのみ支払うだけらしい。
#概念
AWS Elastic Beanstalk では、アプリケーションを環境として実行するリソースをすべて管理できますとのこと。Elastic Beanstalk の主要な概念はこれらです。
##アプリケーション
Elastic Beanstalk アプリケーションは概念的にはフォルダと似ています。この中に環境、バージョン、環境設定等の部品が入っているということですね。
##アプリケーションバージョン
アプリケーションバージョンとは要するに、設計・開発・テスト・改善の一連の工程を短期間で繰り返す、イテレーションというアジャイルの開発サイクルの中で、デプロイ可能のコードをS3データとしてまとめたもの。アプリケーションバージョンはアプリケーションの一部であり、多数のバージョンを持つことができる、また各アプリケーションバージョンは一意です。
実行中の環境では、アプリケーションに既にアップロードしてあるアプリケーションバージョンをデプロイしたり、新しいアプリケーションバージョンをアップロードしてすぐにデプロイしたりできます。複数のアプリケーションバージョンをアップロードして、ウェブアプリケーションのバージョン間の違いをテストすることもできます。
##環境
環境は、アプリケーションバージョンを実行する AWS リソースのコレクションです。各環境が実行するのは一度に 1 つのアプリケーションバージョンだけですが、同じアプリケーションバージョンや複数の異なるアプリケーションバージョンを多数の環境で同時に実行できます。環境を作成するときは、指定したアプリケーションバージョンを実行するために必要なリソースを Elastic Beanstalk がプロビジョニングします。これはすごい。。
##環境枠
Elastic Beanstalk 環境を起動したら、まず環境枠を選択します。環境枠は環境で実行するアプリケーションのタイプを指定し、それをサポートするために Elastic Beanstalk でプロビジョニングするリソースを決定します。HTTP リクエストを処理するアプリケーションは、ウェブサーバー環境枠で実行されます。Amazon Simple Queue Service (Amazon SQS) キューからタスクを引き出す環境は、ワーカー環境枠で実行されます。
##環境設定
環境設定は、環境とその環境に関連付けられているリソースの動作を定義するパラメータと設定のコレクションを識別します。環境の設定を更新すると、変更の種類に応じて、Elastic Beanstalk は自動的に既存のリソースに変更を適用するか、既存のリソースを削除して新しいリソースをデプロイします。
##保存された設定
保存された設定 は、一意の環境設定を作成するための開始点として使用できるテンプレートです。設定を作成するか、保存された設定を変更し、Elastic Beanstalk コンソール、EB CLI、AWS CLI、または API を使用して環境に適用できます。API および AWS CLIは、保存された設定を 設定テンプレートとして参照します。
##プラットフォーム
プラットフォームは、オペレーティングシステム、プログラミング言語ランタイム、ウェブサーバー、アプリケーションサーバー、および Elastic Beanstalk コンポーネントの組み合わせです。ウェブアプリケーションはプラットフォームを対象にして設計します。Elastic Beanstalk には、アプリケーションを構築できるさまざまなプラットフォームが用意されています。