AWSの10分間チュートリアルをやってみる 8.Deploy and Monitor an Application from the Command Line


こんにちは。トリドリといいます。
新卒で入社した会社でJavaを数年やった後、1年ほど前に転職してからはRailsを中心に使用してアプリケーションの開発をしているしがないエンジニアです。

今回、AWSの勉強をするために公式の10分間チュートリアルをやってみることにしたので、備忘のために記事に残していこうと思います。
AWSに関しては、1年ほど前転職活動をしていた時期にEC2とRDSを少し触っていた以外ほとんど触ったことが無い初心者です。
(ただし、このときにアカウントを作ったので、12ヶ月の無料枠は切れていました)

前回は、Elastic BeanstalkをCLIで使用するためのユーザーの作成やCLIのインストールを行う、「Set up the Elastic Beanstalk Command Line Interface」というチュートリアルをやりました
今回は、その続きで実際にElastic Beanstalkを操作する、「Deploy and Monitor an Application from the Command Line」をやっていきます。

Deploy and Monitor an Application from the Command Line

(https://aws.amazon.com/jp/getting-started/tutorials/deploy-app-command-line-elastic-beanstalk/)

このチュートリアルでは、サンプルアプリケーションを作成した上でEB CLIを使用してデプロイ・モニタリング・終了を行います。

Step 1. Setup your application

まずはサンプルアプリケーションを作成します。

a.

sample-appというディレクトリを作成し、作成したディレクトリに移動します。

b.

新しいElastic Beanstalkのアプリケーションを作成するため、ターミナルに

eb init

と入力します。

c.

リージョンの選択肢が表示されるので、近いリージョンの数字を入力します。

d.

リージョンを選択すると、資格情報の入力を求められます。
前回のチュートリアルで作成したアクセスIDとシークレットキーを入力します。

e.

チュートリアルでは次の手順でプラットフォームの選択をしていますが、その前に次のようにアプリケーション名の入力を求められました。


Enter Application Name
(default is "sample-app"): 

デフォルトはsample-appということなのでそのままEnterを押します。


Application sample-app has been created.

と表示されます。
その後にチュートリアルの通りプラットフォームの選択に移ります。
チュートリアルではNode.js1でしたが、現在はPython(BETA)1になっているなど選択肢が増えていました。
今回はチュートリアルと同じくNode.jsを選択します。

f.

インスタンスにSSHのセットアップをするか聞かれます。
今回はチュートリアルに従ってSSHのセットアップをしないで、アプリケーションのセットアップを終了します。

Step 2. Deploy your application

続いて、アプリケーションを作成しデプロイしていきます。
今回はAuto Scalingグループ内のインスタンスにデプロイし、Elastic Load Balancingのロードバランサーを使用します。

a.


eb create

でAWSリソースの作成を開始します。

b.

環境名を入力します。
ステップ1のe.のアプリケーション名同様、デフォルトでsample-app-devとなっているので、そのままEnterを押します。

c.

次にDNS名を入力します。
チュートリアルでは一意にする必要があるとなっていますが、デフォルトのsample-app-devでも大丈夫でした。

d.

ロードバランサーの種類を選択します。
チュートリアルではデフォルトがclassicなのですが、現在はapplicationになっています。
classicは以前のチュートリアルでもでてきたEC2-Classicネットワークで推奨されていた設定です。
現在はこのネットワークを使用することは無いので、デフォルトのapplicationを選択します。

e.

1回目の起動でしたが、この手順でチュートリアルに記載されているElastic Beanstalk service roleについての確認は表示されませんでした。

代わりに、次のようにスポットフリートリクエストを使用するかどうかが表示されました。

Would you like to enable Spot Fleet requests for this environment?
(y/N):

今回はスポットインスタンスを使用しないので、Nを入力します。

f.

NOTE: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead.
Do you want to download the sample application into the current directory?
(Y/n): Y

このステップのメッセージはWARNINGではなくNOTEに変わっています。
また、サンプルアプリケーションをダウンロードするかどうか確認されるようになっているので、Yを入力します。

g.

ダウンロードが完了すると自動的にデプロイが開始されます。
チュートリアルに記載の通りSuccessfully launched environmentと表示されればデプロイは完了です。

Step 3. Monitor your application

このステップではデプロイされたアプリケーションの確認とアプリケーションの状態のモニタリングを行います。

a.

eb open

を実行すると、ブラウザでアプリケーションのURLが開きます。
チュートリアルの通りCongratulationsの画面が開けばOKです。

b.

アプリケーションの状態を確認するには、

eb status

を実行します。
実行するとチュートリアルの画像の通り、アプリケーション名やリージョンの情報やアップデート日時・ステータスなどの状態が表示されます。
多くの情報はAWSコンソールのElastic Beanstalkダッシュボードでも確認することができるものです。

c.

アプリケーションのヘルス状態を詳細に確認するには、

eb health

を実行します。

こちらはAWSコンソールでは、Elastic Beanstalkダッシュボードからアプリケーションの詳細を開き、ヘルスメニューで見ることができます。

Step 4. Terminate your application

最後にアプリケーションを終了します。

a.

アプリケーションの終了をするためには

eb terminate --all

を実行します。

実行すると次のようなメッセージが表示され、AWSコンソールから終了するとき同様にアプリケーション名を入力する必要があるようになっています。

To confirm, type the application name: 

チュートリアルの通り、The application has been deleted successfully.が表示されれば終了は完了です。

まとめ

今回はEB CLIを使用してアプリケーションのデプロイ・モニタリング・終了を実行しました。
第5回第6回でAWSコンソールから実施したもののうち更新のみ今回のチュートリアルには含まれていなかったので、また別途調べてみようと思います。

次はRecommended Nextから「Docker コンテナのデプロイ」に進む予定です