ecs-deployでECSにアプリをCIからデプロイする〜その①〜

こんにちわ、まつしん(@matsushin11)です。

最近Goの学習を始め、その集大成としてAPIアプリを作ったまでは良いですがせっかくなので誰でもアクセスできるように環境を準備したい。

と思いGWではECSを色々触っていました。

結果サンプルアプリをecs-deployを用いてCircleCIからAmazon ECSに自動でデプロイするところまではできたのでその手順を備忘録も兼ねてまとめることにしました。

手順として量が多くなったので記事は3回に分けます。本記事はその最初の記事になります。

環境としてECSやecs-deployを選んだ理由としては仕事として関わっている案件で実際に利用されているからです。また開発言語としてはGoに限らなくても何でもDockerのイメージさえ作ることができればデプロイすることが可能です。

最終的に完成したリポジトリはこちらです。ecs-deployの利用にあたってはこちらの記事をとても参考にさせて頂きました。

Go学習自体のまとめは以下の記事になります。

【振り返り】Go学習を始めてやったことまとめ

2019年4月21日

 

第2回の記事はこちらです。

ecs-deployでECSにアプリをCIからデプロイする〜その②〜

2019年5月15日

本記事の対象者

Amazon ECSを気になってはいるが使ったことがない。CIからのデプロイを試してみたい。という方になります。また多少GoやDockerの知識が必要になってきます。

本記事でやること

この記事単体ではサンプル用のGoアプリの実装とDocker化まで行います。

次の記事でECSを使ってアプリが動く環境を構築して、最後の記事でCIからECSにデプロイするための構築の手順を記載する予定です。

ECSとは

Amazon Elastic Container Serviceを略してECSと呼ばれています。

Amazon EC2インスタンスを用いてDocker環境としてクラスタ構成の構築ができます。またインフラ構築の実行や停止を簡単にしてくれる管理サービスになります。

ECSを使うと、GUIの操作だけでコンテナーの実行環境が素早く出来上がります。

動作環境

  • Mac OS Mojave v10.14.4
  • Go v1.11.2
  • Docker v18.09.2
  • Docker-compose v1.23.2
  • AWS CLI v1.16.60

前提条件

  • Goがインストールされている
  • Dockerがインストールされている
  • docker-composeがインストールされている
  • AWS CLI がインストールされている

Goでサンプルアプリ実装

まずはとりあえず動くだけのアプリとしてmain.goを実装します。

前提としてはすでにGoが動く状態になっていることとします。

動作確認してみます。

別タブにて下記のコマンドを実行して「Hello, World!!」と表示されればOK。

次にテストを実装しておきます。下記のようにmain_test.goを作成してください。

テストを実行してみます。下記のようにokと表示されれば完了です。

アプリのDocker化

次にECSではDocker環境を構築するためまずはローカル環境のDocker化をしていきます。

Dockerfileを作成して以下のようにしました。Dockerそこまで詳しくないので必要な箇所は適宜変更してもらえればと思います。おそらくそのままでも動きはするはずです。

次にdocker-compose.ymlを作成しましょう。

2つファイルができたら動作確認していきます。

まずはDockerのイメージをビルド。

「Successfully」と表示されればOK。次にコンテナの作成と開始を。

別タブにて下記のコマンドを実行して最初の実行同様に「Hello, World!!」と表示されればOK!!

この記事ではここまでです。次の記事ではECSを利用してアプリが動く環境を構築していきたいと思います!

ecs-deployでECSにアプリをCIからデプロイする〜その②〜

2019年5月15日

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です