こんにちは。トリドリといいます。
新卒で入社した会社でJavaを数年やった後、1年ほど前に転職してからはRailsを中心に使用してアプリケーションの開発をしているしがないエンジニアです。
今回、AWSの勉強をするために公式の10分間チュートリアルをやってみることにしたので、備忘のために記事に残していこうと思います。
AWSに関しては、1年ほど前転職活動をしていた時期にEC2とRDSを少し触っていた以外ほとんど触ったことが無い初心者です。
(ただし、このときにアカウントを作ったので、12ヶ月の無料枠は切れていました)
前回は、EB CLIを使用してデプロイ・モニタリングなどを行う、「Deploy and Monitor an Application from the Command Line」」というチュートリアルをやりました。
今回は、「Docker コンテナのデプロイ」をやっていきます。
Docker コンテナのデプロイ
(https://aws.amazon.com/jp/getting-started/tutorials/deploy-docker-containers/)
ステップ 1: Amazon ECS の初回実行を設定する
a.
チュートリアルのリンクから初回実行ウィザードを開きます。
AWSコンソールのサービスから、[ECS]を開き[今すぐ始める]でも可能です。
b.
ウィザードを開くと次のような画面が表示されます。
Amazon ECR オプションの設定については表示されませんでしたが、これがウィザードの変更によりなくなったのか、チュートリアルに記載の通りリージョンによって表示されないのかは不明です。
一応、私のコンソールで表示されているリージョンはすべて切り替えてみましたが、どのリージョンでも表示されませんでした。
ステップ 2: タスク定義を作成する
上記ステップ1のb.の通り、チュートリアルの画面から[コンテナの定義]と[タスク定義]に分かれた画面に変更になっています。
チュートリアル同様、デフォルト設定から変更せず[次]をクリックします。
ステップ 3: サービスを設定する
a.
サービス名・タスク数は自動的にデフォルト値が設定されているので、そのままにしておきます。
b.
ロードバランサーの種類で[Application Load Balancer]を選択します。
選択すると、[リスナープロトコル]はHTTP
、[リスナーポート]は80
が設定されているのでここもそのままにしておきます。
c.
IAMロールの設定はなくなっているようです。
他の変更点としては、チュートリアルでは次のクラスターの設定にあったセキュリティグループの作成の設定がここに移動しています。
デフォルトは[自動的に新規作成]になっているので、ここもそのままにしておきます。
d.
[次]を押して次の設定に進みます。
ステップ 4: クラスターを設定する
クラスターの設定画面も変更されており、項目数がかなり少なくなっています。
a./b./c./d.
設定項目が変更され、クラスター名とVPCとサブネットの設定のみ表示されています。
VPCとサブネットについては変更はできず、クラスター名のみが変更できるようになっています。
クラスター名も変更する必要はないので、そのまま[次]を押します。
ステップ 5: リソースの起動と表示
確認画面が表示されるので確認の上、リソースを起動します。
a.
確認画面を確認し[作成]を押します。
b.
すべてのサービスのステータスが完了になると、[サービスの表示]ボタンが押せるようになるので、押下します。
ステップ 6: サンプルアプリケーションを開く
このステップでは、起動したアプリケーションを開いて確認していきます。
a.
[ロードバランシング]の[ターゲットグループ名]のリンクをクリックすると、[EC2]の[ロードバランシング]の[ターゲットグループ]が開きます。
ターゲットグループの[基本的な設定]に表示されているロードバランサーをクリックし、[ロードバランサー]のメニューを開きます。
チュートリアルに従って[DNS名]をコピーします。
b.
チュートリアルに従って、コピーしたDNS名をブラウザで開き、サンプルアプリケーションが開くことを確認します。
ステップ 7: リソースを削除する
最後に起動したアプリケーションを終了し、作成したリソースを削除します。
a.
チュートリアルに従ってECSコンソールからクラスターの詳細を開きます。
b.
ここもチュートリアルに従って、リソースの更新画面を開きます。
c.
チュートリアルの通りタスクを[0]に更新した上で、サービスの詳細画面から[削除]ボタンを押します。
削除する際は次のようなダイアログが表示され、delete me
と入力した上で[削除]ボタンを押す必要があります。
d.
EC2インスタンスはサービスの削除時に一緒に削除されるようになっているようで、インスタンスは表示されませんでした。
e.
ロードバランサーは残っているので、チュートリアルに従って削除します。
これで、リソースの削除は完了です。
まとめ
今回はチュートリアルに従ってDockerコンテナのデプロイから削除までを行いました。
正直に言うとDockerのこと、ロードバランサーのことなどまだわからない部分がたくさんあるので、サンプルではない自分のコンテナはデプロイできないと思います。
今後Dockerのことも勉強していきたいと思っているので、その後にまた振り返りたいです。
次回は「Deploy and host a ReactJS app」をやっていきます