matsushinecs-deployでECSにアプリをCIからデプロイする〜その2〜ツイートシェアはてブLINEPocketこんにちわ、まつしん(@matsushin11)です。前回の記事では、サンプル用のGoアプリの実装とDocker化まで行いました。ecs-deployでECSにアプリをCIからデプロイする〜その1〜2019年5月10日この記事では前回の続きとしてECS環境を構築してアプリが動くようになるところまで行いたいと思います。Service)環境の構築を行います。次の記事で最後の仕上げとしてCircleCIからECSにデプロイするようにしていきます。ECRにリポジトリ作成ECRとはDockerのイメージを管理することができるサービスになります。それでは早速ECR上にリポジトリを作成していきましょう。AWSマネジメントコンソールにログインしてサービスでECRを選択。リージョンは東京(ap-northeast-1)を選択しておきましょう。ECRのトップ画面にアクセスできたらリポジトリを作成します。今回はgo-ecs-deploy-appとしました。リポジトリが作成できたらDockerのイメージをプッシュしていきます。ECRに初回プッシュ以下は、すべてリポジトリの画面にて「プッシュコマンドの表示」した際に表示されるコマンド通りです。ECRにログインします。Succeeded次にプッシュしたいDockerイメージを作成します。go-ecs-deploy-app:latestECRにプッシュするために作成したDockerイメージにタグ付けをします。123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/go-ecs-deploy-app:latest最後に作成したECRリポジトリにイメージをプッシュします。次にECSの設定を行います。タスクやクラスター、サービスの概念や詳細を知りたければこちらがとても参考になるかと思います。タスクの作成タスクの登録ではどのDockerイメージを使うのかやメモリやCPUなどのハードウェア要件などを定義できます。それではタスクの作成をするためにAWSマネジメントコンソールのサービスでECSを選択してECSの画面へ。次にサイドメニューのタスク定義を選択してから新しいタスク定義の作成へ。起動タイプの互換性は今回はEC2を選択。(FARGATEの利用方法はただいま学習中)タスク定義名を入力。URI)、メモリ制限、ポートマッピング(8080)を入力していきます。コンテナが追加されたらタスクの作成を実行してください。次にクラスターの作成です。クラスターではタスクを実行するためのEC2のインスタンスやネットワークの環境の定義を行います。ネットワーキングを選択。次にクラスター名とEC2インスタンスタイプを選択します。次に、利用できるVPCとサブネットを1つ選択してポート範囲を8080としておきます。そのまま進んで作成へ。待って以上のようにすべて緑になればクラスタの作成は完了です。次にサービスを作成します。Scalingの定義などができます。それではまずはクラスターの画面からサービス作成画面へ。起動タイプはEC2を選択、サービス名を入力して、サービスタイプはDAEMONを選択します。そのまま進んでいき作成実行へ。待って以上のようにすべて緑になればサービスの作成は完了です。最後に動作確認を行います。サービスの画面からタスクのステータスがRUNNINGとなっていることを確認します。サービス作成後はRUNNINGとなるのに少し時間がかかります。次に稼働しているEC2のエンドポイントを確認します。EC2のダッシュボードから稼働しているインスタンスのパブリックDNSを確認。エンドポイントを用いてコマンドを実行して下記のようになればOK。World!!これでECSを利用してアプリが動くところまではできました!記事ではここまでで次が最後です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。新しい投稿をメールで受け取るecs-deployでECSにアプリをCIからデプロイする〜その3〜ecs-deployでECSにアプリをCIからデプロイする〜その1〜RECOMMENDこちらの記事も人気です。Libraryを利用して送金するプロフィールまつしん(matsushin)プログラミング・仮想通貨・スポーツが好き。教師を目指していたが、IT業界は伸び続けると思いその道へ。新卒でSIer→Webプログラマ→リモートワーク普段はRailsでお仕事してます。