amazon ecs事始め

27
Amazon ECS事始め - Amazon EC2 Container Service - — Author: Junya Nakazato © CA Advance, Inc. All Rights Reserved 1

Upload: -

Post on 10-Jan-2017

566 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Amazon ECS事始め

Amazon ECS事始め- Amazon EC2 Container Service -

— Author: Junya Nakazato© CA Advance, Inc. All Rights Reserved 1

Page 2: Amazon ECS事始め

自己紹介• 株式会社シーエーアドバンス• 仲里 淳矢

業務内容• アメーバサービスの監視システム構築• 監視対象・オペレータの分析レポート© CA Advance, Inc. All Rights Reserved 2

Page 3: Amazon ECS事始め

目次• Amazon ECSとは• ECS構成要素• 事例紹介(成果物)

• Blue-Greenデプロイ• 苦労した点・まとめ

© CA Advance, Inc. All Rights Reserved 3

Page 4: Amazon ECS事始め

Amazon ECSとは• Aamazon EC2 Container Serviceの略• Dockerのコンテナを管理サービス• ECSに登録したEC2上でコンテナを起動してくれる• リソーススケジューラー機能搭載• docker-compose+docker-swarmっぽい• ELB, AutoScaling, RDS, IAM等と連携すると素敵© CA Advance, Inc. All Rights Reserved 4

Page 5: Amazon ECS事始め

ECS構成要素• Container Instance(EC2)

• Cluster

• Task/Task Definitions

• Container: Dockerコンテナ

© CA Advance, Inc. All Rights Reserved 5

Page 6: Amazon ECS事始め

Container Instancedockerが動くサーバ• EC2(VPC)

• Docker

• ECS Agent(dockerコンテナ)

© CA Advance, Inc. All Rights Reserved 6

Page 7: Amazon ECS事始め

ClusterContainer Instance群• ECSのリソース源• リージョンに閉じてる• Container Instanceの集合体

© CA Advance, Inc. All Rights Reserved 7

Page 8: Amazon ECS事始め

Cluster設定EC2のユーザーデータにコマンドを設定/etc/ecs/ecs.configに変数を叩きこめばOK

© CA Advance, Inc. All Rights Reserved 8

Page 9: Amazon ECS事始め

© CA Advance, Inc. All Rights Reserved 9

Page 10: Amazon ECS事始め

© CA Advance, Inc. All Rights Reserved 10

Page 11: Amazon ECS事始め

© CA Advance, Inc. All Rights Reserved 11

Page 12: Amazon ECS事始め

Taskアプリで利用するコンテナの集合• 1Task=1App

• Task Definition

• docker-composeみたいなやつ• json

© CA Advance, Inc. All Rights Reserved 12

Page 13: Amazon ECS事始め

Task Definitions設定• イメージ(ubuntu, ruby, nginx等)指定

• Docker Hub, docker-registryから選択• 環境変数, ボリューム, ネットワーク• コンテナに割り当てるリソース(memory, CPU)

© CA Advance, Inc. All Rights Reserved 13

Page 14: Amazon ECS事始め

© CA Advance, Inc. All Rights Reserved 14

Page 15: Amazon ECS事始め

© CA Advance, Inc. All Rights Reserved 15

Page 16: Amazon ECS事始め

事例紹介(成果物)• ECSで管理されたrailsアプリの構築• Jenkins• railsアプリのデプロイ

© CA Advance, Inc. All Rights Reserved 16

Page 17: Amazon ECS事始め

© CA Advance, Inc. All Rights Reserved 17

Page 18: Amazon ECS事始め

Webアプリをデプロイする流れ• アプリ(Service)の設定をTask Definitionsに定義• Clusterを作成• ClusterにEC2を登録(CloudFormation/手作業)

• ClusterにServiceを登録• ELBにTaskを紐付け

© CA Advance, Inc. All Rights Reserved 18

Page 19: Amazon ECS事始め

やったこと(AWS)

• Cloudformationリソース自動生成• AutoScaleGroup(ASG), EC2, ELB, SecurityGroup

• AZ別でサーバーを構築し、冗長性担保• EC2 AutoScaling対応• S3に画像などのリソースをバックアップ• CloudFrontでassetsを配信© CA Advance, Inc. All Rights Reserved 19

Page 20: Amazon ECS事始め

やったこと(Jenkins)

• CI環境• masterへのpushをフックし、dockerイメージビルド• 環境ごと差し替えるBlue-Green Deployを採用

• バックアップ体制• Jenkins_homeをS3へバックアップ• アプリ側のリソースをS3へ

© CA Advance, Inc. All Rights Reserved 20

Page 21: Amazon ECS事始め

Blue-Green Deploy

© CA Advance, Inc. All Rights Reserved 21

Page 22: Amazon ECS事始め

Phase1:通常構成

© CA Advance, Inc. All Rights Reserved 22

Page 23: Amazon ECS事始め

Phase2:デプロイ検知ASG+ECSで新環境を構築新環境もELBに接続

© CA Advance, Inc. All Rights Reserved 23

Page 24: Amazon ECS事始め

Phase3:通常構成へ移行

旧環境を破棄

© CA Advance, Inc. All Rights Reserved 24

Page 25: Amazon ECS事始め

苦労した点• 自分がAWS初心者だった• 手作業排除方法の調査(Cloudformation, ECS, ASG)

• 閉じた環境によるDockerデプロイ環境の構築• Blue-Green Deployの概念・実装方法の理解• Jenkinsもdockerで用意したところ、job実行者がdocker上の

Jenkinsユーザーなので権限周りで激ハマり© CA Advance, Inc. All Rights Reserved 25

Page 26: Amazon ECS事始め

所感・まとめ• 念願のAWS入門ができた• Cloudformation, ECS, ASGを利用したWebAppの構築• dockerによるJenkinsセットアップ• JenkinsでECS, ASGを利用し、Blue-Greenデプロイ• バックアップ体制: Jenkinsデータ, Appのリソース系, RDS

© CA Advance, Inc. All Rights Reserved 26

Page 27: Amazon ECS事始め

docker ❤

ENJOY!© CA Advance, Inc. All Rights Reserved 27