LoginSignup
4
4

More than 5 years have passed since last update.

JAWS-UG コンテナ支部 #6 デモ

Last updated at Posted at 2016-09-21

デモ

概要

ECS / CodeDeploy を使い、2 つのサービスを自動デプロイしてみます。

Web サービスは ECS を使ったローリングアップデート、
API サービスは CodeDeploy を使った停止時間ありのアップデート。

デプロイの流れ

  1. アプリケーションソースコードを修正
  2. GitHub へ
  3. リリースしたいタイミングで タグを打つ
  4. CircleCI で Docker イメージ生成
  5. テストが通ったら ECR へイメージをプッシュ
  6. ECS / CodeDeploy によるサービス自動更新

デモアプリ接続先(v1.0)

まずはいずれも、ハローワールドが返ってきます。

アプリバージョンアップ

  1. 今回は単に Dockerfile を書き換えてみます。
    (本来ここでソースコードをガリガリ書く)
  2. git で api-v0.1 などとタグを打ちます。

以上

デモアプリ接続先(v2.0)

Web は v2.0 に、API は画像の推論サービスになりました。
(結局サービス間が繋がってないのはご容赦ください・・)

補足

今日のコンテンツは公開しています

このリポジトリ何?

demo.png

こんな構成となる

  • CloudFormation テンプレート
  • ECS / CodeDeploy への命令を記載した circle.yml
  • CodeDeploy の appspec.yml とデプロイ用スクリプト
  • Dockerfile や docker-compose.yml

試してみるには

  1. GitHub と CircleCI にアカウント登録します
  2. 上記リポジトリを fork し、CircleCI にプロジェクト登録
  3. CloudFormation でスタック生成
    • VPC、SG、ECR => /common/provision/cfn-common.yml
    • CodeDeploy、ASG、S3、AS => /app-api/provision/cfn-codedeploy.yml
    • ECS、ASG、ALB、CF => /app-web/provision/cfn-ecs.yml
  4. Outputs 欄を見ながら CircleCI に環境変数設定
  5. git push & git tag

テンプレートだけではできていないこと

デモのために、一部マネコンなどで作業しました。

  • API サービスの初期デプロイ(タグ打ち)
  • CloudFront ディストリビューションへ、API サービスを追加

破棄するには

CloudFormation スタックを削除してください。

画像推論サーバについて

NVIDIA 社の GPU REST Engine を使っています。
各クラウドのコグニティブ API などとは違い、DL による学習ができ
そのモデルに基づいた推論 を HTTP プロトコルで自前提供できます。

(g2.2xlarge をスポット MAX $0.5/hour で起動設定しているので
 試す際にはお気をつけください。高いかも、起動しないかも)

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4