jaws-ug ecs best practice
TRANSCRIPT
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
development test staging production
build
app
app engineer infra engineer
deploy
config
stack
config
stackconfig
stack
BEFORE
development test staging production
build/deploy
image with app
app engineer infra engineer
config
stack
pull/run
AFTER
development test staging production
build/deploy
image with app
app engineer infra engineer
config
stack
on AWS
Service A Service B
ECS Cluster
Service A Service B Service A
Service B
New Service New Service
Service B Service A
ECS Cluster
Service A Service B Service A
Service BService B Service A
container
instance
container
instance
container
instance
ECS Cluster
Service A Service B Service A
Service BService B Service A
container
instance
container
instance
container
instance
CloudWatch Logs
S3 DynamoDB
RDS
パスベースルーティング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
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
環境変数
RI
入札アドバイザーや
スポットアドバイザー
も参考に
更新通知は
SNS Topicでも
受け取れるよ
ECS Cluster
Service AService A Service B
ECS Cluster
Service BService B Service AService A
ALB A ALB B ALB A ALB B
user-data で ECS_CLUSTER を指定
インスタンスロール
AmazonEC2ContainerServiceforEC2Role
をアタッチ
動的ポートマッピング利用の場合は
ホストポートを指定しない
ロググループを awslogs-group に指定
ECS
たーのしー!