jaws-ug ecs best practice

28

Upload: yu-sudo

Post on 06-Apr-2017

1.791 views

Category:

Software


0 download

TRANSCRIPT

Page 1: JAWS-UG ECS Best Practice
Page 2: JAWS-UG ECS Best Practice
Page 3: JAWS-UG ECS Best Practice
Page 6: JAWS-UG ECS Best Practice

Container

Container

Container

CentOS 7CentOS 7

Docker Docker

Container Container

JenkinsDocker

Registry

cAdvisor

InfluxDB

Grafana

Container

MySQL

Container

Grails

App

Container

Fess

ポータル/クローラ

Container

Nginx

Tomcat Solr

VMware基盤(自社DC)

RDS

(PostgreSQL)

SpotFleet

ECS

Admin Service

ECS Cluster

Admin

ALB

API

ALB

User

ALB

API Service User Service

Route53

SES

email delivery

Docker Image

CloudWatch

Logs

log

ECR

Page 7: JAWS-UG ECS Best Practice
Page 8: JAWS-UG ECS Best Practice

development test staging production

build

app

app engineer infra engineer

deploy

config

stack

config

stackconfig

stack

BEFORE

Page 9: JAWS-UG ECS Best Practice

development test staging production

build/deploy

image with app

app engineer infra engineer

config

stack

pull/run

AFTER

Page 10: JAWS-UG ECS Best Practice

development test staging production

build/deploy

image with app

app engineer infra engineer

config

stack

on AWS

Page 11: JAWS-UG ECS Best Practice

Service A Service B

ECS Cluster

Service A Service B Service A

Service B

New Service New Service

Service B Service A

Page 12: JAWS-UG ECS Best Practice
Page 13: JAWS-UG ECS Best Practice
Page 14: JAWS-UG ECS Best Practice
Page 15: JAWS-UG ECS Best Practice

ECS Cluster

Service A Service B Service A

Service BService B Service A

container

instance

container

instance

container

instance

Page 16: JAWS-UG ECS Best Practice

ECS Cluster

Service A Service B Service A

Service BService B Service A

container

instance

container

instance

container

instance

CloudWatch Logs

S3 DynamoDB

RDS

Page 17: JAWS-UG ECS Best Practice
Page 18: JAWS-UG ECS Best Practice

パスベースルーティングECS Cluster

Service C

Service B

Service A

/api/*

/sub/* /health

/health

/health

example.com/api/health

example.com/health

example.com/sub/health ALB

Page 19: JAWS-UG ECS Best Practice

ECS Cluster

Service B Service A

_JAVA_OPTIONS :-DdataSource.url='jdbc:postgresql://rds.example.com:5432/database'

Private Hosted Zone

Route53

rds.example.com CNAMEmyrdsinstance.*.*.rds.amazonaws.com

RDS

Task Definition

環境変数

Page 20: JAWS-UG ECS Best Practice
Page 21: JAWS-UG ECS Best Practice
Page 22: JAWS-UG ECS Best Practice

RI

入札アドバイザーや

スポットアドバイザー

も参考に

Page 23: JAWS-UG ECS Best Practice

更新通知は

SNS Topicでも

受け取れるよ

Page 24: JAWS-UG ECS Best Practice

ECS Cluster

Service AService A Service B

ECS Cluster

Service BService B Service AService A

ALB A ALB B ALB A ALB B

Page 25: JAWS-UG ECS Best Practice
Page 26: JAWS-UG ECS Best Practice

user-data で ECS_CLUSTER を指定

インスタンスロール

AmazonEC2ContainerServiceforEC2Role

をアタッチ

動的ポートマッピング利用の場合は

ホストポートを指定しない

ロググループを awslogs-group に指定

Page 27: JAWS-UG ECS Best Practice
Page 28: JAWS-UG ECS Best Practice

ECS

たーのしー!