SlideShare a Scribd company logo
1 of 29
Download to read offline
AWS DevDay Seoul Container hands on lab workshop
Page 1 of 29
Amazon EC2 Container
Service Lab Guide
AWS DevDay Seoul Container hands on lab workshop
Page 2 of 29
Table of Contents
Lab 개요 ................................................................................................................................................................. 3
준비 조건................................................................................................................................................................ 4
Lab 1. VPC 생성 .................................................................................................................................................. 4
1. VPC 생성........................................................................................................................................................................4
Lab 2. IAM Roles 과 Security Group 설정............................................................................................... 6
1. Role 생성.......................................................................................................................................................................6
2. Security Group 생성.................................................................................................................................................7
Lab 3. ECS Cluster 설정.................................................................................................................................... 7
1. ECS Cluster 생성..........................................................................................................................................................8
Lab 4. Workstation (Bastion)생성............................................................................................................... 9
1. Workstaion(Bastion) 생성.......................................................................................................................................9
Lab 5. Docker Image 준비............................................................................................................................11
1. image Source 생성.................................................................................................................................................. 11
2. web, api microservice 로컬 테스트 .................................................................................................................. 11
Lab 6. ECR 을 이용한 container registries 생성 ..................................................................................14
Lab 7. AWS CLI 설정.......................................................................................................................................15
Lab 8. 테스트 이미지를 ECR 에 Push ........................................................................................................17
Lab 9. ALB 생성...............................................................................................................................................18
Lab 10. Task Definitions 생성.....................................................................................................................21
Lab 11. Services 생성......................................................................................................................................24
Lab 12. Consol 과 ALB 를 통한 서비스 배포 테스트............................................................................27
Lab 13. Cloudwatch 를 통한 ECS 로깅 확인...........................................................................................28
Lab 14. 실습 종료후 삭제할 내용................................................................................................................28
AWS DevDay Seoul Container hands on lab workshop
Page 3 of 29
Lab 개요
Amazon EC2 Container Service 는 기존의 Docker Container 를 클라우드 환경에서 쉽고, 유연하게 사용할
수 있도록 도와줍니다. 클러스터 관리, 설정, 서버의 확장을 손쉽게 지원하며, 다양한 클라우드
서비스(Amazon EBS, Auto Scaling, IAM, Security Group, Elastic Load Balancing 등)와의 조합을 통하여
견고한 시스템으로 통합됩니다
EC2 Container Registry 는 완전관리형 고가용의 도커 이미지 리포지토리로 도커 컨테이너 이미지
관리방안에 대하여 알아봅니다.
Amazon CloudWatch 를 사용하여 지표를 수집 및 추적하고 로그 파일을 수집 및 모니터링하고 경보를
설정할 수 있으며, 이를 기반으로 Auto Scale 을 사용할 수 있습니다.
이 Workshop 에서는 마이크로 서비스 및 ECS 작업의 기본 사항을 소개합니다. 여기에는 두 개의 마이크로
서비스 컨테이너 이미지 준비, 초기 ECS 클러스터 설정 및 ALB 를 통해 라우팅되는 트래픽이있는 컨테이너
배포가 포함됩니다.
이 Workshop 은 US East (N.Virginia) 리전에서 진행합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 4 of 29
준비 조건
Amazon ECS ( EC2 Container Service ) Workshop 을 진행을 위해서는 다음의 준비사항이 필요합니다.
Microsoft Windows, Mac OS X 또는 Linux(Ubuntu, SuSE 또는 Red Hat)를 실행하며 인터넷 연결 필요
인터넷 브라우저: Chrome, Firefox 또는 IE9(이전 버전의 Internet Explorer 는 지원되지 않음)
PuTTY, Secureshell 등의 SSH 클라이언트 사용
AWS 계정 및 기본적인 AWS 사용 방법 숙지
Lab 1. VPC 생성
1. VPC 생성
1) AWS Console 로그인 하여 VPC 을 선택합니다. 리전은 반드시 N.Virgina(us-east-1)임을 확인합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 5 of 29
2) 전체 인프라에 대한 새로운 VPC 를 만듭니다. Workstaion Bastion Host, ECS 클러스터 및 ALB 에 대해
2 개의 퍼블릭 서브넷이 필요합니다. 다음 요구 사항으로 VPC 를 구성하십시오.
Field value
Name tag ECS Lab VPC
IPv4 CIDR 10.0.0.0/16
Subnet a
Name tag Public subnet a
CIDR 10.0.0.0/24
AZ us-east-1a
Subnet b
Name tag Public subnet b
CIDR 10.0.1.0/24
AZ us-east-1b
( Route Table 과 Internet Gateway 설정을 하셔야 합니다. )
Note : 실제 운영 환경에서는 개인 서브넷에 ECS 클러스터가 있을 가능성이 큽니다. 이 경우 각 ECS
컨테이너 에이전트가 레지스트리에서 컨테이너 이미지를 업데이트하고 검색 할 수 있도록 서브넷에 NAT
게이트웨이를 연결해야합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 6 of 29
Lab 2. IAM Roles 과 Security Group 설정
워크 스테이션에서 ECS 로 접속해서 작업 하려면, 워크스테이션 EC2 인스턴스에 해당 권한이 필요합니다.
IAM 의 Roles> Create New Role 을 통해서 Role 과 EC2 의 Security Group 에, 추후 EC2 워크스테이션
호스트에 할당합니다.
1. Role 생성
1) IAM 에 다음과 같이 Role(ecslabworkstationprofile)을 생성합니다
field value
Select Amazon EC2
Attach Policy: AmazonEC2ContainerRegistryFullAccess
Role Name: ecslabworkstationprofile
2) IAM 에 다음과 같이 Role(ecslabinstanceprofile)을 생성합니다.
ECS 클러스터의 EC2 인스턴스가 컨테이너 레지스트리에 액세스하고, 자동 확장 등을 수행 할 수있는
적절한 권한을 갖고 있는지 확인해야합니다. 나중에 이 역할을 ECS 클러스터의 EC2 인스턴스에
할당합니다.
field value
select Amazon EC2
Attach Policy:
AmazonEC2ContainerServiceforEC2Role, AmazonEC2ContainerService
AutoscaleRole
Role Name: ecslabinstanceprofile
Note : ECS 를 Wizard 를 통해 만들때, 자동으로 ecsInstanceRole 이 생성됩니다. 그러나, 필요할 때 더 많은
정책을 추가 할 수 있도록 항상 특정 역할을 만드는 것이 좋습니다. (이번 랩에서는 지금 생성된 Role 을
사용합니다. )
AWS DevDay Seoul Container hands on lab workshop
Page 7 of 29
2. Security Group 생성
1) EC2 에 Security Group 에 새로운 Security Group(sgecslabpublic)을 생성합니다.
Type Protocol Port Range Source
HTTP TCP 80 0.0.0.0/0
2) EC2 에 Security Group 에 새로운 Security Group(sgecslabworkstation)을 생성합니다.
Type Protocol Port Range Source
SSH TCP 22 My IP
3) EC2 에 Security Group 에 새로운 Security Group(sgecslabpubliccluster)을 생성합니다.
Type Protocol Port Range Source
HTTP TCP 80 0.0.0.0/0
ALL TCP TCP 0 – 65535 sgecslabpublic
(Securtity Group ID)
Lab 3. ECS Cluster 설정
컨테이너 인스턴스를 호스팅 할 ECS 클러스터를 만들것이며, 퍼블릭 서브넷에 인스턴스를 생성 할
것입니다.
AWS DevDay Seoul Container hands on lab workshop
Page 8 of 29
1. ECS Cluster 생성
1) EC2 Container Services 콘솔의 Create Cluster 를 선택합니다.
기본적으로 지원하는 Wizard 에서는 Cancel 을 클릭하고, 직접 아래의 정보를 이용해서 생성합니다.
Field Name Value
Cluster Name EcsLabPublicCluster
EC2 instance type t2.micro
Number of instances 2
EBS storage 22
Keypair none
VPC ECS Lab VPC
Subnets pick the 2 public subnets
Security Group sgecslabpubliccluster
IAM Role ecslabinstanceprofile
AWS DevDay Seoul Container hands on lab workshop
Page 9 of 29
Lab 4. Workstation (Bastion)생성
Workstation 은 Docker 를 실행하고 Git 저장소에 액세스 할 수있는 개발자 머신이라고 가정합니다.
1. Workstaion(Bastion) 생성
1) EC2 콘솔의 Launch instance 를 통하여, 아래의 정보를 이용해서 생성합니다.
Field Name Value
AMI: Amazon Linux AMI 2017.03.1
Instance type: t2.micro
Network: ECS Lab VPC
subnet: one of the public subnet
Auto-assign Public IP: enable
IAM Role: ecslabworkstationprofile
next Storage Default 그대로 둠
next tags
name: ecs-lab-workstation
next security group
Select an existing security group
(sgecslabworkstation)
Review and launch
기존에 있는 Key 가 있다면, existing keypair 를 아니면
generate a new one 을 선택
2) 인스턴스가 실행될 때 까지 기다리고, 실행되면 다음과 같이 public DNS 을 통하여 접속합니다
AWS DevDay Seoul Container hands on lab workshop
Page 10 of 29
$ ssh -i <사용하는 키> ec2-user@[public DNS 주소]
3) 접속 후, 업데이트와 Docker 설치, 그리고 docker 그룹에 ec2-user 를 추가합니다.
$ sudo yum update -y
$ sudo yum install -y docker
$ sudo service docker start
$ sudo usermod -a -G docker ec2-user
Docker 명령을 sudo 를 사용하지 않고, 실행하기 위해서 Docker 그룹에 ec2-user 를 추가한 것이고,
사용자를 추가한 이후에는 인스턴스에 재접속을 통하여, 새로운 권한으로 실행될 수 있도록 합니다.
지금까지 설정된 것이 정상적으로 되었는지 다음과 같이 확인합니다. ( 아직은 container 가 하나도 올라가
있지 않아서, Containers 는 0 입니다. 추후 web, api 를 배포한 이후에 다시 확인하면 containers 및
Running 이 2 로 보여 질 것입니다. )
[ec2-user@ip-10-0-1-153 ~]$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
…
Kernel Version: 4.9.32-15.41.amzn1.x86_64
Operating System: Amazon Linux AMI 2017.03
OSType: linux
..
Live Restore Enabled: false
AWS DevDay Seoul Container hands on lab workshop
Page 11 of 29
Lab 5. Docker Image 준비
web 과 api Microservice 를 개발했고, 최신 소스를 소스 리포지토리에서 가져온다고 가정합니다. 실습을
위해서, 여기서는 curl 로 가져오지만, git 을 이용한다고 가정합니다.
1. image Source 생성
1) 다음과 같이 이미지를 다운 받고 압축을 풉니다.
$ curl -O https://s3-us-west-2.amazonaws.com/apn-
bootcamps/microservice-ecs-2017/ecs-lab-code-20170524.tar.gz
$ tar -xvf ecs-lab-code-20170524.tar.gz
2. web, api microservice 로컬 테스트
container 를 내부적으로 빌드하고 실행하도록 하겠습니다. 이번 실습에서 사용하는 몇가지 기본적인
명령어을 사용하고 있습니다. 만약, Docker 를 사용해 본 적이 없으시고, 좀더 자세한 자료를 원하시면 다음
링크를 통하여 알 수 있습니다 (https://docs.docker.com/engine/getstarted/).
1) 첫 번째 컨테이너인 ‘web’을 빌드하기 위해서, 다음과 같이 압축이 풀린 ‘web’폴더로 이동합니다.
해당 폴더에는 ‘web’ Python Flask microservice 가 포함되어 있습니다.
$ cd <path/to/project>/aws-microservices-ecs-
bootcamp/web
2) 해당 container 를 빌드 합니다.
$ docker build -t ecs-lab/web .
위의 명령을 실행하면 다음과 비슷한 화면이 나타나게 됩니다.
AWS DevDay Seoul Container hands on lab workshop
Page 12 of 29
Sending build context to Docker daemon 8.704 kB
Step 1/11 : FROM ubuntu:latest
latest: Pulling from library/ubuntu
75c416ea735c: Pull complete
c6ff40b6d658: Pull complete
…
Digest:
sha256:a0ee7647e24c8494f1cf6b94f1a3cd127f423268293c25d924fbe18fd82db5a4
Status: Downloaded newer image for ubuntu:latest
성공적으로 해당 단계를 수행하면 다음과 같은 화면이 출력됩니다.
Removing intermediate container b45fd50e5862
Step 11/11 : CMD app.py
---> Running in 4fff4fca5827
---> bae0690c1186
Removing intermediate container 4fff4fca5827
Successfully built bae0690c1186
다음 명령어를 통하여 container 를 실행합니다.
$ docker run -d -p 3000:3000 ecs-lab/web
위의 명령어는 해당 이미지를 데몬 모드에서 실행시키고, docker container 의 3000 포트와
호스트( 현재 실행중인 workstation EC2 )의 3000 포트를 매핑하는 것입니다. 이를 통해, 하나의 호스트에
두개의 microservices 를 port 의 충돌없이 실행시킬수 있습니다.
다음 명령어를 통하여 container 의 실행 상태를 체크합니다.
$ docker ps
AWS DevDay Seoul Container hands on lab workshop
Page 13 of 29
위의 명령어를 통하여, 현재 실행중인 container 들의 리스트를 조회할 수 있습니다. 정상적이라면,
다음과 같이 하나의 container 가 방금 실행된 것을 나타낼 것입니다. ( 약간 상이할 수 있으나, CREATED
결과가 나타나면 됩니다. )
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
902d8f6bf766 ecs-lab/web "python app.py" About an minute ago Up
About an minute 0.0.0.0:3000->3000/tcp cocky_lumiere
해당 컨테이너는 다음 명령어을 통하여 확인할 수 있습니다.
$ curl localhost:3000/web
결과는 다음과 같이 나타날 것입니다.
<html><head>...</head><body>hi! i'm served via Python +
Flask. i'm a web endpoint. ...</body></html>
“api” microservice 를 위하여, 위에서 했던 다음과 같은 과정[ 1] api 폴더로 이동 ~ [2] api 컨테이너
빌드 및 확인 ]을 반복합니다. 디렉토리는 /api 로 변경하신 후 다음과 같이 하시면 됩니다.
$ cd <path/to/project>/aws-microservices-ecs-
bootcamp/api
$ docker build -t ecs-lab/api .
$ docker run -d -p 8000:8000 ecs-lab/api
$ curl localhost:8000/api
“api” 컨테이너를 curl 로 실행하면 다음과 같은 결과가 나타나게 됩니다.
{ "response": "hi! i'm ALSO served via Python + Flask.
i'm an API."}
이제 ‘web’과 ‘api’ 두개의 microservice container 들이 실행된 상태입니다.
AWS DevDay Seoul Container hands on lab workshop
Page 14 of 29
Lab 6. ECR 을 이용한 container registries 생성
Docker image 들을 build 하고 push 하기 전에, 리포지토리를 먼저 생성 해야 합니다. 이번 랩에서는
Amazon ECR 에 두개의 리포지토리(web, api)를 만들도록 하겠습니다.
리포지토리를 만들기 위해서는 ECS 콘솔로 이동하고, Repositories 를 선택합니다. 이후 Get started 를
선택합니다. 첫번째 리포지토리의 이름은 ecs-lab/web 으로 입력합니다.
리포지토리를 생성하면, 다음과 같이 push 명령어들을 참고 할 수 있는 화면이 나타나게 됩니다. 이것들은
다음 과정에서 사용하게 되기에, 미리 해당 명령어들을 저장해 놓으시기 바랍니다. ( 명령어의 차이는 있을
수 있습니다. )
AWS DevDay Seoul Container hands on lab workshop
Page 15 of 29
ecs-lab-web 을 만들었다면, api 를 위해서, 동일한 과정을 반복합니다. 다만, 리포지토리 이름은 ecs-
lab/api 으로 입력하시면 됩니다. 리포지토리 생성 후 참고할 push 명령어들은 리포지토리 별로 다르기
때문에, 해당 명령어 또한 미리 저장해 놓으시기 바랍니다.
Lab 7. AWS CLI 설정
workstation EC2 로 돌아가서, 만약 AWS CLI 를 설정한 적이 없다면, 다음과 같이 간단히 설정 할 수
있습니다.
$ aws configure
위의 명령어를 통해서, 설정을 마법사 형식으로 편하게 할 수 있습니다. Workstation EC2 인스턴스는
생성시 미리 IAM 역할에 정의되어 있어서, access key ID 를 넣지 않아도 됩니다. 다음과 같이 몇 가지
항목은 default 로 두면 됩니다.
AWS DevDay Seoul Container hands on lab workshop
Page 16 of 29
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: us-
east-1
Default output format [None]:
json
IAM 사용자가 올바른 권한을 가지고, ECR 인증 토큰을 얻기 하여 다음 명령을 통하여 CLI 가 AWS 계정에
연결되도록 설정되어 있는지 테스트 할 수 있습니다.
$ aws ecr get-login --region us-east-1
명령 실행결과는 다음과 비슷할 것입니다.
docker login -u AWS –p
AQECAHhwm0YaISJeRtJm5n1G6uqeekXuoXXPe5UFce9Rq8/14wAAAy0wggMpBgkqhkiG9w0BBwaggg
MaMIIDFgIBADCCAw8GCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM+76slnFaYrrZwLJyAgEQgIIC
4LJKIDmvEDtJyr7jO661//6sX6cb2jeD/RP0IA03wh62YxFKqwRMk8gjOAc89ICxlNxQ6+cvwjewi+
8/W+9xbv5+PPWfwGSAXQJSHx3IWfrbca4WSLXQf2BDq0CTtDc0+payiDdsXdR8gzvyM7YWIcKzgcRV
jOjjoLJpXemQ9liPWe4HKp+D57zCcBvgUk131xCiwPzbmGTZ+xtE1GPK0tgNH3t9N5+XA2BYYhXQzk
TGISVGGL6Wo1tiERz+WA2aRKE+Sb+FQ7YDDRDtOGj4MwZ3/uMnOZDcwu3uUfrURXdJVddTEdS3jfo3
d7yVWhmXPet+3qwkISstIxG+V6IIzQyhtq3BXW/I7pwZB9ln/mDNlJVRh9Ps2jqoXUXg/j/shZxBPm
33LV+MvUqiEBhkXa9cz3AaqIpc2gXyXYN3xgJUV7OupLVq2wrGQZWPVoBvHPwrt/DKsNs28oJ67L4k
TiRoufye1KjZQAi3FIPtMLcUGjFf+ytxzEPuTvUk4Xfoc4A29qp9v2j98090Qx0CHD4ZKyj7bIL53j
SpeeFDh9EXubeqp6idIwG9SpIL9AJfKxY7essZdk/0i/e4C+481XIM/IjiVkh/ZsJzuAPDIpa8fPRa
5Gc8i9h0bioSHgYIpMlRkVmaAqH/Fmk+K00yG8USOAYtP6BmsFUvkBqmRtCJ/Sj+MHs+BrSP7VqPbO
1ppTWZ6avl43DM0blG6W9uIxKC9SKBAqvPwr/CKz2LrOhyqn1WgtTXzaLFEd3ybilqhrcNtS16I5SF
VI2ihmNbP3RRjmBeA6/QbreQsewQOfSk1u35YmwFxloqH3w/lPQrY1OD+kySrlGvXA3wupq6qlphGL
EWeMC6CEQQKSiWbbQnLdFJazuwRUjSQlRvHDbe7XQTXdMzBZoBcC1Y99Kk4/nKprty2IeBvxPg+NRz
g+1e0lkkqUu31oZ/AgdUcD8Db3qFjhXz4QhIZMGFogiJcmo= -e none
https://<account_id>.dkr.ecr.us-east-1.amazonaws.com
ECR 에 접속하기 위해서, 위의 실행 결과를 copy & paste 하시면, 다음과 같은 실행결과가 나타납니다.
Login succeeded
만약, ECR 에 접속을 할 수 없다면, IAM 권한을 확인하시기 바랍니다.
AWS DevDay Seoul Container hands on lab workshop
Page 17 of 29
Lab 8. 테스트 이미지를 ECR 에 Push
이미지들은(web, api)이전 과정에서 테스트 했고, 이 이미지들에 대하여, tag 를 달고, ECR 에 push 해야
합니다. 이 과정은 추후, ECS 클러스터에 배포 할 수있는 Task Definitions 를 사용합니다.
Registry 를 생성 과정을 보기 위해서는 push 명령어들이 필요합니다 (이전에 ECR 생성 시 해당 명령어
확인). 만약, push 명령어를 기존에 저장해 놓지 않았다면, 다음 리포지토리 위치에서 확인 가능합니다.
(ECS Console > Repositories > 생성한 repository 명> View Push Commands )
다음의 명령어를 통해서 Tag 를 생성하고, web 리포지토리에 push 합니다.
$ docker tag ecs-lab/web:latest <account_id>.dkr.ecr. us-east-
1.amazonaws.com/ecs-lab/web:latest
$ docker push <account_id>.dkr.ecr. us-east-1.amazonaws.com/ecs-
lab/web:latest
실행 결과는 다음과 같이 나타납니다.
The push refers to a repository [<account_id>.dkr.ecr.us-east-
1.amazonaws.com/ecs-lab/web]
4acc70385e61: Pushed
….
cb11ba605400: Pushed
latest: digest:
sha256:8cb6d69b1935cffb429ac847897346ff0312ddc514fa81db8394c474a89bb9bf
size: 2200
‘api'또한 다음 명령어를 통하여 Tag 를 생성하고, push 합니다. (이전에 Repository 등록시 Command)
$ docker tag ecs-lab/api:latest <account_id>.dkr.ecr.us-east-
1.amazonaws.com/ecs-lab/api:latest
$ docker push <account_id>.dkr.ecr.us-east-1.amazonaws.com/ecs-lab/api:latest
(참고: 왜 :l astest 를 사용할까요? 대부분의 실제 운영 환경에서는 다른 스키마 이미지에 태그를
지정합니다. 예를 들어 최신 이미지와 같은 컨테이너의 다른 모든 버전에 CI 작업의 커밋 SHA 를 사용하여
태그 할 수 있습니다. 특정 태그없이 이미지를 푸시하면 기본적으로 : latest 로 설정되고 해당 태그로 이전
이미지의 태그를 해제 할 수 있습니다. Docker 태그에 대한 자세한 내용은 Docker 설명서
(https://docs.docker.com/engine/getstarted/step_six/) 를 참고하십시오.
AWS Console 에서 push 된 이미지를 볼수 있고, CLI 를 통해서도, 리포지토리에 push 된 이미지를 알 수
있습니다.
AWS DevDay Seoul Container hands on lab workshop
Page 18 of 29
$ aws ecr list-images --repository-name=ecs-lab/api
{ "imageIds": [{
"imageTag": "latest",
"imageDigest":
"sha256:f0819d27f73c7fa6329644efe8110644e23c248f2f3a9445cbbb6c84a01e108f" }]}
Lab 9. ALB 생성
이제 사용할 이미지를 push 했고, 사용할 endpoint 들에 트래픽을 분산하기 위해서, Application Load
Balancer (ALB)가 필요합니다. 기존에 classic load balacer 와 비교하면, ALB 는 각각의 endpoint 들로 바로
트래픽을 보낼 수 있습니다. 이번 실습에서는 /web 과 /api 두 가지 다른 endpoint 들을 사용합니다.
ALB 를 만들기 위해서는, EC2 Console 에서 왼쪽 메뉴에 Load Balancers 를 선택하고, Create Load
Balancer 를 선택합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 19 of 29
ALB 의 이름은 EcsLabAlb 로 하고, HTTP Listener 에 80 포트를 설정합니다.
참고 : 실제 운영 환경에서는 보안 리스너인 443 포트를 사용해야 합니다. 443 포트를 사용하기 위해서는
SSL 인증서가 필요하며, AWS Certificate Manager 또는 Certificate Authority(CA)에서 발급받은 인증서를
사용할 수 있습니다. 이번 실습에서는 안전하지 않은 HTTP 리스너만 사용합니다. 절대 실제 운영환경에
사용하지 마십시요.
HA (High Availability)를 위해서는 적어도 2 개의 서브넷이 필요로 합니다. 이전에 생성했던 VPC 를
선택하고, Configure Security Settings 를 선택합니다.
Select an existing security group 을 선택하고, sgecslabpublic 을 선택합니다.
“Configure routing” 을 선택합니다. 기본적인 설정을 위해서, 다음과 같이 더미로 healthcheck 를 설정하고
path 에 /를 넣습니다. ALB 에 등록 할 때 서비스 엔드 포인트에 대한 특정 상태 확인을 추가 할 것입니다.
AWS DevDay Seoul Container hands on lab workshop
Page 20 of 29
위와 같이 설정 후 “Register targets”를 클릭하고, 해당 내용(Register target)은 그대로 두고, “Review” 를
클릭합니다. 지금까지의 모든 설정을 확인하고, “Create”를 클릭합니다.
이제 다음과 같은 security group 이 할당 되었습니다.
AWS DevDay Seoul Container hands on lab workshop
Page 21 of 29
Lab 10. Task Definitions 생성
Task Definitions 의 Log 를 남기기 위해서, CloudWatch > Logs > Actions > Create Log Group 을 통하여,
‘ecs-lab’ 이라는 새로운 Log Group 을 생성합니다.
Container 에 서비스를 등록하기 전에, Task Definition 이 필요 합니다. Task Definitions 은 환경 변수들과
같은 것을 정의하고, container 이미지를 사용하고, 서비스의 필요한 리소스(port, memory, CPU)를
할당합니다. Task Definition 을 만들기 위해서, ECS console 메뉴에서 Task Definitions 를 선택하고, Create
a Task Definition 을 클릭합니다.
위와 같이 설정하고, Add Container 를 클릭합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 22 of 29
위와 같이 Container Name 과 image ( 이전에 Repository 로 Push 한 이미지 ), Memory Limits, Port
mappings 를 입력합니다.
포트 매핑에서 컨테이너 포트는 3000 으로 지정했지만 호스트 포트는 0 으로 했습니다. 이것은 동적 포트
할당을 용이하게하기 위해 사용되었으며, 컨테이너 포트를 컨테이너 정의의 특정 호스트 포트에 매핑할
필요 없습니다. 대신, ALB 가 작업 배치 중에 포트를 할당하도록 할 수 있습니다. 포트 할당에 대한 자세한
내용은 ECS 설명서(http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PortMapping.html)
를 확인하십시오.
포트 매핑까지 완료했다면, 스크롤을 내려서, log driver 를 설정하십시요. 몇 가지 옵션이 있지만, 이번
실습에서는 다음과 같이 awslogs 를 선택합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 23 of 29
‘web’ container 를 위해서는, 위와 같이 aws-stream-prefix 의 Value 값에 web 을 넣습니다. Log driver 까지
설정이 완료되었으면, Container Definition 을 Save 하고, Create 버튼을 클릭해서 Task Definition 을
생성합니다.
위의 전 과정( Task Definition 등록 )을 한번 더 해서 ‘api’ container 를 등록합니다. 모든 과정은 거의
동일하지만, 다음과 같은 부분은 수정되어야 합니다. 이름은 ‘ecs-lab-api’로 하고, image 경로는
“<account_id>.dkr.ecr.us-east-1.amazonaws.com/ecs-lab/api:latest”, Container port options 은 Host
port 는 0, Container Port 는 8000 으로 설정하며 awslogs 의 aws-stream-prefix 의 Value 값에 api 를
넣습니다.
AWS DevDay Seoul Container hands on lab workshop
Page 24 of 29
Lab 11. Services 생성
이제, Services 를 생성해야 합니다. Services 란 Task(containers)의 그룹이며, 동시에 실행할 Task 의 수와
해당 수명주기에 대한 몇 가지 구성을 할 수 있습니다.
먼저, 이 Service 를 위하여, IAM 롤을 생성해야 합니다. IAM > Create Role 로 가서 Amazon EC2
Container Service Role 을 선택하고 attach 한 뒤 EcsLabServiceRole 이란 이름으로 생성합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 25 of 29
ECS 콘솔로 돌아가서, 이전에 생성된 cluster(EcsLabPublicCluster)를 선택합니다. 이제 웹 서비스를
생성해야 합니다. Cluster detail page 에서 Services > Create 를 선택합니다.
위와 같이 Task Definition 을 이전에 생성한 ecs-lab-web:1 을 선택합니다. 이번 실습의 데모를 위해서, 각
Task 는 한 카피만 실행합니다. 실제 운영환경에서는 안정성과 가용성을 위해서, 각 Task 는 항상 한 카피
이상이여야 합니다.
Placement templates 는 디폴트 그대로 AZ Balanced Spread 로 둡니다. Task Placement 정책에 대하여 더
많은 정보를 알 고 싶다면, http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-
placement-strategies.html 또는 https://aws.amazon.com/blogs/compute/introducing-amazon-ecs-task-
placement-policies/ 를 보시면 됩니다.
Optional Configuraions 에 Configure ELB 를 선택합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 26 of 29
위와 같이 Default 로 두고, Add to ELB 를 클릭합니다.
마지막으로, container 와 ALB 관련된 설정을 하면됩니다. ALB 를 생성했을 때, 리스너는 HTTP:80 만
추가했습니다. 위의 그림과 같이 Listener port, Target group name, Path pattern, Health check path 들을
설정하고, Save 를 클릭한후 Create Service 를 통하여 Service 를 생성합니다.
AWS DevDay Seoul Container hands on lab workshop
Page 27 of 29
api service 또한 추가를 하기 위하여 위의 설정을 다시 한번 진행합니다.
( Service Name : EcsLabApi, Taget Group name:EcsLabApi, Path pattern: /api*, evalution order : 2 ,
Health check: /api )
Lab 12. Consol 과 ALB 를 통한 서비스 배포 테스트
ECS 콘솔을 통하여, service level events 정보를 볼 수 있습니다. 이것은 배포 이벤트도 포함하고 있으며,
web, api 서비스들이 배포되었고, ALB 에 등록되었는지를 다음과 같이 Services 의 Events 탭에서 확인할
수 있습니다.
또한, ALB 를 직접이용해서도 테스트 할 수 있습니다. ALB 의 DNS A 레코드를 찾아서 (EC2 콘솔에 Load
Balancers > 생성한 Load Balancer 선택, Description 에 DNS Name 이 나와있습니다.) 웹 브라우저에서,
서비스의 endpoint 를 뒤에 /web 입력한 후 엔터키를 누르면 다음과 같이 ALB 와 ECS Cluster 실행된
화면을 볼 수 있습니다. ( Let’s Call API 또한 눌러서 확인 합니다 )
AWS DevDay Seoul Container hands on lab workshop
Page 28 of 29
ALB 는 컨테이너를 등록 할 때 지정한 경로를 기반으로 트래픽을 적절히 라우팅합니다. / web * 요청은 웹
서비스로 이동하고 / api * 요청은 API 서비스로 이동합니다.
Lab 13. Cloudwatch 를 통한 ECS 로깅 확인
Container Definition 을 만들었을 때, Cloudwatch 에 로그를 보내는 awslogs 드라이버를 추가했습니다
Cloudwatch 콘솔로 이동해서 ecs-lab 그룹을 선택한 다음 개별 스트림을 선택하여 서비스에 대한 자세한
로그를 볼 수 있습니다.
.
Lab 14. 실습 종료후 삭제할 내용
실습을 종료한 뒤에는 다음과 같은 리소스들을 삭제해서, 비용이 추가적으로 발생하지 않도록 합니다.
1) Cloudformaion 콘솔에 가서 EC2ContainerService-EcsLabPubliCluster 스택 삭제
2) Cloudwatch Console > Logs 에 ecs-lab 로그 그룹 삭제
AWS DevDay Seoul Container hands on lab workshop
Page 29 of 29
3) ECS Console> Repotitories 에서 2 개의 생성된 repotitory 삭제
4) ECS Console> Task Definition 에서 2 개의 task definition 삭제 (Update Service 를 통하여, Number
of tasks 를 0 으로 수정 이후 Deregister)
5) ECS Console > Cluster 에서 EcsLabPublicCluster 삭제
6) EC2 Conodle 에서 ecs-lab-workstation EC2 인스턴스 삭제
7) Load Balancer (EcsLabAlb) 와 Target Groups (Dummy, EcsLabApi, EcsLabWeb)삭제
8) Security Group (sgecslabpublic, sgecslabworkstation,sgecslabpubliccluster)삭제
9) VPC 삭제 (ECS Lab VPC)
10) IAM Console 에서 Role 삭제 (ecslabworkstationprofile, ecslabinstanceprofile, EcsLabServiceRole)

More Related Content

What's hot

게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...Amazon Web Services Korea
 
AWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAmazon Web Services
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunnerhmfive
 
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017AWSKRUG - AWS한국사용자모임
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)NodeXperts
 
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...Amazon Web Services Korea
 
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAmazon Web Services
 
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic BeanstalkAmazon Web Services
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018Amazon Web Services Korea
 
AWS CloudFormation Session
AWS CloudFormation SessionAWS CloudFormation Session
AWS CloudFormation SessionKamal Maiti
 
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...Amazon Web Services Korea
 
Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Amazon Web Services
 
성능 최대화를 위한 CloudFront 설정 Best Practice
성능 최대화를 위한 CloudFront 설정 Best Practice성능 최대화를 위한 CloudFront 설정 Best Practice
성능 최대화를 위한 CloudFront 설정 Best PracticeGS Neotek
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...Amazon Web Services Korea
 
AWS Cloud Formation
AWS Cloud Formation AWS Cloud Formation
AWS Cloud Formation Adam Book
 
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅Amazon Web Services Korea
 
Cost Savings at High Performance with Redis Labs and AWS
Cost Savings at High Performance with Redis Labs and AWSCost Savings at High Performance with Redis Labs and AWS
Cost Savings at High Performance with Redis Labs and AWSAmazon Web Services
 

What's hot (20)

게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
 
AWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAWS CloudFormation Best Practices
AWS CloudFormation Best Practices
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunner
 
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)
 
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
 
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
 
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
 
AWS CloudFormation Session
AWS CloudFormation SessionAWS CloudFormation Session
AWS CloudFormation Session
 
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
 
OpenStack Glance
OpenStack GlanceOpenStack Glance
OpenStack Glance
 
Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...
 
성능 최대화를 위한 CloudFront 설정 Best Practice
성능 최대화를 위한 CloudFront 설정 Best Practice성능 최대화를 위한 CloudFront 설정 Best Practice
성능 최대화를 위한 CloudFront 설정 Best Practice
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
 
AWS Cloud Formation
AWS Cloud Formation AWS Cloud Formation
AWS Cloud Formation
 
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
 
Cost Savings at High Performance with Redis Labs and AWS
Cost Savings at High Performance with Redis Labs and AWSCost Savings at High Performance with Redis Labs and AWS
Cost Savings at High Performance with Redis Labs and AWS
 

Viewers also liked

Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석Amazon Web Services Korea
 
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)Suwon Chae
 
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기Amazon Web Services Korea
 
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)Amazon Web Services Korea
 
[2017 Gaming on AWS] Gaming Data Lake on AWS
[2017 Gaming on AWS] Gaming Data Lake on AWS[2017 Gaming on AWS] Gaming Data Lake on AWS
[2017 Gaming on AWS] Gaming Data Lake on AWSAmazon Web Services Korea
 
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇Amazon Web Services Korea
 
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)Amazon Web Services Korea
 
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐Amazon Web Services Korea
 
[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량
[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량
[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량Amazon Web Services Korea
 

Viewers also liked (11)

Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
 
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
 
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
 
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
 
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
 
[2017 Gaming on AWS] Gaming Data Lake on AWS
[2017 Gaming on AWS] Gaming Data Lake on AWS[2017 Gaming on AWS] Gaming Data Lake on AWS
[2017 Gaming on AWS] Gaming Data Lake on AWS
 
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
 
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
 
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
 
[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량
[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량
[2017 AWS Startup Day] VC가 바라보는 스타트업의 기술과 개발역량
 
2017 스타트업을 위한 AWS 브로셔
2017 스타트업을 위한 AWS 브로셔2017 스타트업을 위한 AWS 브로셔
2017 스타트업을 위한 AWS 브로셔
 

Similar to AWS DevDay 실습 가이드 - 콘테이너

도커 초보의 Elastic Container Service 실습
도커 초보의 Elastic Container Service 실습도커 초보의 Elastic Container Service 실습
도커 초보의 Elastic Container Service 실습Yeomyeong Woo
 
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfAmazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfByungho Lee
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon Web Services Korea
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...Amazon Web Services Korea
 
AWS re:Invent 2017
AWS re:Invent 2017AWS re:Invent 2017
AWS re:Invent 2017Jang Hoon
 
Ecs 파헤치기
Ecs 파헤치기Ecs 파헤치기
Ecs 파헤치기hanwool kim
 
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트Amazon Web Services Korea
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container DayAmazon Web Services Korea
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestrationNAVER D2
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호용호 최
 
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...Amazon Web Services Korea
 
AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...
AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...
AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...JooHyung Kim
 
Aws발표자료 final
Aws발표자료 finalAws발표자료 final
Aws발표자료 finalGi Bong Kim
 
Aws개념 EC2로 API서버 구축
Aws개념 EC2로 API서버 구축Aws개념 EC2로 API서버 구축
Aws개념 EC2로 API서버 구축Gi Bong Kim
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)Amazon Web Services Korea
 
AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축
AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축
AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축Amazon Web Services Korea
 
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceCloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceDennis Hong
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인Amazon Web Services Korea
 

Similar to AWS DevDay 실습 가이드 - 콘테이너 (20)

도커 초보의 Elastic Container Service 실습
도커 초보의 Elastic Container Service 실습도커 초보의 Elastic Container Service 실습
도커 초보의 Elastic Container Service 실습
 
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdfAmazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
Amazon EKS로 웹 애플리케이션 구축하기-awskrug.pdf
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 
AWS re:Invent 2017
AWS re:Invent 2017AWS re:Invent 2017
AWS re:Invent 2017
 
Ecs 파헤치기
Ecs 파헤치기Ecs 파헤치기
Ecs 파헤치기
 
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
 
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트::  AWS S...
AWS 관리형 서비스를 활용하여 Kubernetes 를 위한 Devops 환경 구축하기 - 김광영, AWS솔루션즈 아키텍트:: AWS S...
 
AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...
AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...
AWS Community Day 2022 - Nitro Enclave를 이용하여 안전하게 고객 정보 다...
 
Aws발표자료 final
Aws발표자료 finalAws발표자료 final
Aws발표자료 final
 
Aws개념 EC2로 API서버 구축
Aws개념 EC2로 API서버 구축Aws개념 EC2로 API서버 구축
Aws개념 EC2로 API서버 구축
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
 
AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축
AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축
AWS Elastic Beanstalk기반 Docker 콘테이너 배포를 통한 마이크로서비스 구축
 
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceCloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
 

More from Amazon Web Services Korea

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2Amazon Web Services Korea
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1Amazon Web Services Korea
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon Web Services Korea
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Web Services Korea
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...Amazon Web Services Korea
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...Amazon Web Services Korea
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon Web Services Korea
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...Amazon Web Services Korea
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...Amazon Web Services Korea
 

More from Amazon Web Services Korea (20)

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
 

AWS DevDay 실습 가이드 - 콘테이너

  • 1. AWS DevDay Seoul Container hands on lab workshop Page 1 of 29 Amazon EC2 Container Service Lab Guide
  • 2. AWS DevDay Seoul Container hands on lab workshop Page 2 of 29 Table of Contents Lab 개요 ................................................................................................................................................................. 3 준비 조건................................................................................................................................................................ 4 Lab 1. VPC 생성 .................................................................................................................................................. 4 1. VPC 생성........................................................................................................................................................................4 Lab 2. IAM Roles 과 Security Group 설정............................................................................................... 6 1. Role 생성.......................................................................................................................................................................6 2. Security Group 생성.................................................................................................................................................7 Lab 3. ECS Cluster 설정.................................................................................................................................... 7 1. ECS Cluster 생성..........................................................................................................................................................8 Lab 4. Workstation (Bastion)생성............................................................................................................... 9 1. Workstaion(Bastion) 생성.......................................................................................................................................9 Lab 5. Docker Image 준비............................................................................................................................11 1. image Source 생성.................................................................................................................................................. 11 2. web, api microservice 로컬 테스트 .................................................................................................................. 11 Lab 6. ECR 을 이용한 container registries 생성 ..................................................................................14 Lab 7. AWS CLI 설정.......................................................................................................................................15 Lab 8. 테스트 이미지를 ECR 에 Push ........................................................................................................17 Lab 9. ALB 생성...............................................................................................................................................18 Lab 10. Task Definitions 생성.....................................................................................................................21 Lab 11. Services 생성......................................................................................................................................24 Lab 12. Consol 과 ALB 를 통한 서비스 배포 테스트............................................................................27 Lab 13. Cloudwatch 를 통한 ECS 로깅 확인...........................................................................................28 Lab 14. 실습 종료후 삭제할 내용................................................................................................................28
  • 3. AWS DevDay Seoul Container hands on lab workshop Page 3 of 29 Lab 개요 Amazon EC2 Container Service 는 기존의 Docker Container 를 클라우드 환경에서 쉽고, 유연하게 사용할 수 있도록 도와줍니다. 클러스터 관리, 설정, 서버의 확장을 손쉽게 지원하며, 다양한 클라우드 서비스(Amazon EBS, Auto Scaling, IAM, Security Group, Elastic Load Balancing 등)와의 조합을 통하여 견고한 시스템으로 통합됩니다 EC2 Container Registry 는 완전관리형 고가용의 도커 이미지 리포지토리로 도커 컨테이너 이미지 관리방안에 대하여 알아봅니다. Amazon CloudWatch 를 사용하여 지표를 수집 및 추적하고 로그 파일을 수집 및 모니터링하고 경보를 설정할 수 있으며, 이를 기반으로 Auto Scale 을 사용할 수 있습니다. 이 Workshop 에서는 마이크로 서비스 및 ECS 작업의 기본 사항을 소개합니다. 여기에는 두 개의 마이크로 서비스 컨테이너 이미지 준비, 초기 ECS 클러스터 설정 및 ALB 를 통해 라우팅되는 트래픽이있는 컨테이너 배포가 포함됩니다. 이 Workshop 은 US East (N.Virginia) 리전에서 진행합니다.
  • 4. AWS DevDay Seoul Container hands on lab workshop Page 4 of 29 준비 조건 Amazon ECS ( EC2 Container Service ) Workshop 을 진행을 위해서는 다음의 준비사항이 필요합니다. Microsoft Windows, Mac OS X 또는 Linux(Ubuntu, SuSE 또는 Red Hat)를 실행하며 인터넷 연결 필요 인터넷 브라우저: Chrome, Firefox 또는 IE9(이전 버전의 Internet Explorer 는 지원되지 않음) PuTTY, Secureshell 등의 SSH 클라이언트 사용 AWS 계정 및 기본적인 AWS 사용 방법 숙지 Lab 1. VPC 생성 1. VPC 생성 1) AWS Console 로그인 하여 VPC 을 선택합니다. 리전은 반드시 N.Virgina(us-east-1)임을 확인합니다.
  • 5. AWS DevDay Seoul Container hands on lab workshop Page 5 of 29 2) 전체 인프라에 대한 새로운 VPC 를 만듭니다. Workstaion Bastion Host, ECS 클러스터 및 ALB 에 대해 2 개의 퍼블릭 서브넷이 필요합니다. 다음 요구 사항으로 VPC 를 구성하십시오. Field value Name tag ECS Lab VPC IPv4 CIDR 10.0.0.0/16 Subnet a Name tag Public subnet a CIDR 10.0.0.0/24 AZ us-east-1a Subnet b Name tag Public subnet b CIDR 10.0.1.0/24 AZ us-east-1b ( Route Table 과 Internet Gateway 설정을 하셔야 합니다. ) Note : 실제 운영 환경에서는 개인 서브넷에 ECS 클러스터가 있을 가능성이 큽니다. 이 경우 각 ECS 컨테이너 에이전트가 레지스트리에서 컨테이너 이미지를 업데이트하고 검색 할 수 있도록 서브넷에 NAT 게이트웨이를 연결해야합니다.
  • 6. AWS DevDay Seoul Container hands on lab workshop Page 6 of 29 Lab 2. IAM Roles 과 Security Group 설정 워크 스테이션에서 ECS 로 접속해서 작업 하려면, 워크스테이션 EC2 인스턴스에 해당 권한이 필요합니다. IAM 의 Roles> Create New Role 을 통해서 Role 과 EC2 의 Security Group 에, 추후 EC2 워크스테이션 호스트에 할당합니다. 1. Role 생성 1) IAM 에 다음과 같이 Role(ecslabworkstationprofile)을 생성합니다 field value Select Amazon EC2 Attach Policy: AmazonEC2ContainerRegistryFullAccess Role Name: ecslabworkstationprofile 2) IAM 에 다음과 같이 Role(ecslabinstanceprofile)을 생성합니다. ECS 클러스터의 EC2 인스턴스가 컨테이너 레지스트리에 액세스하고, 자동 확장 등을 수행 할 수있는 적절한 권한을 갖고 있는지 확인해야합니다. 나중에 이 역할을 ECS 클러스터의 EC2 인스턴스에 할당합니다. field value select Amazon EC2 Attach Policy: AmazonEC2ContainerServiceforEC2Role, AmazonEC2ContainerService AutoscaleRole Role Name: ecslabinstanceprofile Note : ECS 를 Wizard 를 통해 만들때, 자동으로 ecsInstanceRole 이 생성됩니다. 그러나, 필요할 때 더 많은 정책을 추가 할 수 있도록 항상 특정 역할을 만드는 것이 좋습니다. (이번 랩에서는 지금 생성된 Role 을 사용합니다. )
  • 7. AWS DevDay Seoul Container hands on lab workshop Page 7 of 29 2. Security Group 생성 1) EC2 에 Security Group 에 새로운 Security Group(sgecslabpublic)을 생성합니다. Type Protocol Port Range Source HTTP TCP 80 0.0.0.0/0 2) EC2 에 Security Group 에 새로운 Security Group(sgecslabworkstation)을 생성합니다. Type Protocol Port Range Source SSH TCP 22 My IP 3) EC2 에 Security Group 에 새로운 Security Group(sgecslabpubliccluster)을 생성합니다. Type Protocol Port Range Source HTTP TCP 80 0.0.0.0/0 ALL TCP TCP 0 – 65535 sgecslabpublic (Securtity Group ID) Lab 3. ECS Cluster 설정 컨테이너 인스턴스를 호스팅 할 ECS 클러스터를 만들것이며, 퍼블릭 서브넷에 인스턴스를 생성 할 것입니다.
  • 8. AWS DevDay Seoul Container hands on lab workshop Page 8 of 29 1. ECS Cluster 생성 1) EC2 Container Services 콘솔의 Create Cluster 를 선택합니다. 기본적으로 지원하는 Wizard 에서는 Cancel 을 클릭하고, 직접 아래의 정보를 이용해서 생성합니다. Field Name Value Cluster Name EcsLabPublicCluster EC2 instance type t2.micro Number of instances 2 EBS storage 22 Keypair none VPC ECS Lab VPC Subnets pick the 2 public subnets Security Group sgecslabpubliccluster IAM Role ecslabinstanceprofile
  • 9. AWS DevDay Seoul Container hands on lab workshop Page 9 of 29 Lab 4. Workstation (Bastion)생성 Workstation 은 Docker 를 실행하고 Git 저장소에 액세스 할 수있는 개발자 머신이라고 가정합니다. 1. Workstaion(Bastion) 생성 1) EC2 콘솔의 Launch instance 를 통하여, 아래의 정보를 이용해서 생성합니다. Field Name Value AMI: Amazon Linux AMI 2017.03.1 Instance type: t2.micro Network: ECS Lab VPC subnet: one of the public subnet Auto-assign Public IP: enable IAM Role: ecslabworkstationprofile next Storage Default 그대로 둠 next tags name: ecs-lab-workstation next security group Select an existing security group (sgecslabworkstation) Review and launch 기존에 있는 Key 가 있다면, existing keypair 를 아니면 generate a new one 을 선택 2) 인스턴스가 실행될 때 까지 기다리고, 실행되면 다음과 같이 public DNS 을 통하여 접속합니다
  • 10. AWS DevDay Seoul Container hands on lab workshop Page 10 of 29 $ ssh -i <사용하는 키> ec2-user@[public DNS 주소] 3) 접속 후, 업데이트와 Docker 설치, 그리고 docker 그룹에 ec2-user 를 추가합니다. $ sudo yum update -y $ sudo yum install -y docker $ sudo service docker start $ sudo usermod -a -G docker ec2-user Docker 명령을 sudo 를 사용하지 않고, 실행하기 위해서 Docker 그룹에 ec2-user 를 추가한 것이고, 사용자를 추가한 이후에는 인스턴스에 재접속을 통하여, 새로운 권한으로 실행될 수 있도록 합니다. 지금까지 설정된 것이 정상적으로 되었는지 다음과 같이 확인합니다. ( 아직은 container 가 하나도 올라가 있지 않아서, Containers 는 0 입니다. 추후 web, api 를 배포한 이후에 다시 확인하면 containers 및 Running 이 2 로 보여 질 것입니다. ) [ec2-user@ip-10-0-1-153 ~]$ docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 … Kernel Version: 4.9.32-15.41.amzn1.x86_64 Operating System: Amazon Linux AMI 2017.03 OSType: linux .. Live Restore Enabled: false
  • 11. AWS DevDay Seoul Container hands on lab workshop Page 11 of 29 Lab 5. Docker Image 준비 web 과 api Microservice 를 개발했고, 최신 소스를 소스 리포지토리에서 가져온다고 가정합니다. 실습을 위해서, 여기서는 curl 로 가져오지만, git 을 이용한다고 가정합니다. 1. image Source 생성 1) 다음과 같이 이미지를 다운 받고 압축을 풉니다. $ curl -O https://s3-us-west-2.amazonaws.com/apn- bootcamps/microservice-ecs-2017/ecs-lab-code-20170524.tar.gz $ tar -xvf ecs-lab-code-20170524.tar.gz 2. web, api microservice 로컬 테스트 container 를 내부적으로 빌드하고 실행하도록 하겠습니다. 이번 실습에서 사용하는 몇가지 기본적인 명령어을 사용하고 있습니다. 만약, Docker 를 사용해 본 적이 없으시고, 좀더 자세한 자료를 원하시면 다음 링크를 통하여 알 수 있습니다 (https://docs.docker.com/engine/getstarted/). 1) 첫 번째 컨테이너인 ‘web’을 빌드하기 위해서, 다음과 같이 압축이 풀린 ‘web’폴더로 이동합니다. 해당 폴더에는 ‘web’ Python Flask microservice 가 포함되어 있습니다. $ cd <path/to/project>/aws-microservices-ecs- bootcamp/web 2) 해당 container 를 빌드 합니다. $ docker build -t ecs-lab/web . 위의 명령을 실행하면 다음과 비슷한 화면이 나타나게 됩니다.
  • 12. AWS DevDay Seoul Container hands on lab workshop Page 12 of 29 Sending build context to Docker daemon 8.704 kB Step 1/11 : FROM ubuntu:latest latest: Pulling from library/ubuntu 75c416ea735c: Pull complete c6ff40b6d658: Pull complete … Digest: sha256:a0ee7647e24c8494f1cf6b94f1a3cd127f423268293c25d924fbe18fd82db5a4 Status: Downloaded newer image for ubuntu:latest 성공적으로 해당 단계를 수행하면 다음과 같은 화면이 출력됩니다. Removing intermediate container b45fd50e5862 Step 11/11 : CMD app.py ---> Running in 4fff4fca5827 ---> bae0690c1186 Removing intermediate container 4fff4fca5827 Successfully built bae0690c1186 다음 명령어를 통하여 container 를 실행합니다. $ docker run -d -p 3000:3000 ecs-lab/web 위의 명령어는 해당 이미지를 데몬 모드에서 실행시키고, docker container 의 3000 포트와 호스트( 현재 실행중인 workstation EC2 )의 3000 포트를 매핑하는 것입니다. 이를 통해, 하나의 호스트에 두개의 microservices 를 port 의 충돌없이 실행시킬수 있습니다. 다음 명령어를 통하여 container 의 실행 상태를 체크합니다. $ docker ps
  • 13. AWS DevDay Seoul Container hands on lab workshop Page 13 of 29 위의 명령어를 통하여, 현재 실행중인 container 들의 리스트를 조회할 수 있습니다. 정상적이라면, 다음과 같이 하나의 container 가 방금 실행된 것을 나타낼 것입니다. ( 약간 상이할 수 있으나, CREATED 결과가 나타나면 됩니다. ) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 902d8f6bf766 ecs-lab/web "python app.py" About an minute ago Up About an minute 0.0.0.0:3000->3000/tcp cocky_lumiere 해당 컨테이너는 다음 명령어을 통하여 확인할 수 있습니다. $ curl localhost:3000/web 결과는 다음과 같이 나타날 것입니다. <html><head>...</head><body>hi! i'm served via Python + Flask. i'm a web endpoint. ...</body></html> “api” microservice 를 위하여, 위에서 했던 다음과 같은 과정[ 1] api 폴더로 이동 ~ [2] api 컨테이너 빌드 및 확인 ]을 반복합니다. 디렉토리는 /api 로 변경하신 후 다음과 같이 하시면 됩니다. $ cd <path/to/project>/aws-microservices-ecs- bootcamp/api $ docker build -t ecs-lab/api . $ docker run -d -p 8000:8000 ecs-lab/api $ curl localhost:8000/api “api” 컨테이너를 curl 로 실행하면 다음과 같은 결과가 나타나게 됩니다. { "response": "hi! i'm ALSO served via Python + Flask. i'm an API."} 이제 ‘web’과 ‘api’ 두개의 microservice container 들이 실행된 상태입니다.
  • 14. AWS DevDay Seoul Container hands on lab workshop Page 14 of 29 Lab 6. ECR 을 이용한 container registries 생성 Docker image 들을 build 하고 push 하기 전에, 리포지토리를 먼저 생성 해야 합니다. 이번 랩에서는 Amazon ECR 에 두개의 리포지토리(web, api)를 만들도록 하겠습니다. 리포지토리를 만들기 위해서는 ECS 콘솔로 이동하고, Repositories 를 선택합니다. 이후 Get started 를 선택합니다. 첫번째 리포지토리의 이름은 ecs-lab/web 으로 입력합니다. 리포지토리를 생성하면, 다음과 같이 push 명령어들을 참고 할 수 있는 화면이 나타나게 됩니다. 이것들은 다음 과정에서 사용하게 되기에, 미리 해당 명령어들을 저장해 놓으시기 바랍니다. ( 명령어의 차이는 있을 수 있습니다. )
  • 15. AWS DevDay Seoul Container hands on lab workshop Page 15 of 29 ecs-lab-web 을 만들었다면, api 를 위해서, 동일한 과정을 반복합니다. 다만, 리포지토리 이름은 ecs- lab/api 으로 입력하시면 됩니다. 리포지토리 생성 후 참고할 push 명령어들은 리포지토리 별로 다르기 때문에, 해당 명령어 또한 미리 저장해 놓으시기 바랍니다. Lab 7. AWS CLI 설정 workstation EC2 로 돌아가서, 만약 AWS CLI 를 설정한 적이 없다면, 다음과 같이 간단히 설정 할 수 있습니다. $ aws configure 위의 명령어를 통해서, 설정을 마법사 형식으로 편하게 할 수 있습니다. Workstation EC2 인스턴스는 생성시 미리 IAM 역할에 정의되어 있어서, access key ID 를 넣지 않아도 됩니다. 다음과 같이 몇 가지 항목은 default 로 두면 됩니다.
  • 16. AWS DevDay Seoul Container hands on lab workshop Page 16 of 29 AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: us- east-1 Default output format [None]: json IAM 사용자가 올바른 권한을 가지고, ECR 인증 토큰을 얻기 하여 다음 명령을 통하여 CLI 가 AWS 계정에 연결되도록 설정되어 있는지 테스트 할 수 있습니다. $ aws ecr get-login --region us-east-1 명령 실행결과는 다음과 비슷할 것입니다. docker login -u AWS –p AQECAHhwm0YaISJeRtJm5n1G6uqeekXuoXXPe5UFce9Rq8/14wAAAy0wggMpBgkqhkiG9w0BBwaggg MaMIIDFgIBADCCAw8GCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM+76slnFaYrrZwLJyAgEQgIIC 4LJKIDmvEDtJyr7jO661//6sX6cb2jeD/RP0IA03wh62YxFKqwRMk8gjOAc89ICxlNxQ6+cvwjewi+ 8/W+9xbv5+PPWfwGSAXQJSHx3IWfrbca4WSLXQf2BDq0CTtDc0+payiDdsXdR8gzvyM7YWIcKzgcRV jOjjoLJpXemQ9liPWe4HKp+D57zCcBvgUk131xCiwPzbmGTZ+xtE1GPK0tgNH3t9N5+XA2BYYhXQzk TGISVGGL6Wo1tiERz+WA2aRKE+Sb+FQ7YDDRDtOGj4MwZ3/uMnOZDcwu3uUfrURXdJVddTEdS3jfo3 d7yVWhmXPet+3qwkISstIxG+V6IIzQyhtq3BXW/I7pwZB9ln/mDNlJVRh9Ps2jqoXUXg/j/shZxBPm 33LV+MvUqiEBhkXa9cz3AaqIpc2gXyXYN3xgJUV7OupLVq2wrGQZWPVoBvHPwrt/DKsNs28oJ67L4k TiRoufye1KjZQAi3FIPtMLcUGjFf+ytxzEPuTvUk4Xfoc4A29qp9v2j98090Qx0CHD4ZKyj7bIL53j SpeeFDh9EXubeqp6idIwG9SpIL9AJfKxY7essZdk/0i/e4C+481XIM/IjiVkh/ZsJzuAPDIpa8fPRa 5Gc8i9h0bioSHgYIpMlRkVmaAqH/Fmk+K00yG8USOAYtP6BmsFUvkBqmRtCJ/Sj+MHs+BrSP7VqPbO 1ppTWZ6avl43DM0blG6W9uIxKC9SKBAqvPwr/CKz2LrOhyqn1WgtTXzaLFEd3ybilqhrcNtS16I5SF VI2ihmNbP3RRjmBeA6/QbreQsewQOfSk1u35YmwFxloqH3w/lPQrY1OD+kySrlGvXA3wupq6qlphGL EWeMC6CEQQKSiWbbQnLdFJazuwRUjSQlRvHDbe7XQTXdMzBZoBcC1Y99Kk4/nKprty2IeBvxPg+NRz g+1e0lkkqUu31oZ/AgdUcD8Db3qFjhXz4QhIZMGFogiJcmo= -e none https://<account_id>.dkr.ecr.us-east-1.amazonaws.com ECR 에 접속하기 위해서, 위의 실행 결과를 copy & paste 하시면, 다음과 같은 실행결과가 나타납니다. Login succeeded 만약, ECR 에 접속을 할 수 없다면, IAM 권한을 확인하시기 바랍니다.
  • 17. AWS DevDay Seoul Container hands on lab workshop Page 17 of 29 Lab 8. 테스트 이미지를 ECR 에 Push 이미지들은(web, api)이전 과정에서 테스트 했고, 이 이미지들에 대하여, tag 를 달고, ECR 에 push 해야 합니다. 이 과정은 추후, ECS 클러스터에 배포 할 수있는 Task Definitions 를 사용합니다. Registry 를 생성 과정을 보기 위해서는 push 명령어들이 필요합니다 (이전에 ECR 생성 시 해당 명령어 확인). 만약, push 명령어를 기존에 저장해 놓지 않았다면, 다음 리포지토리 위치에서 확인 가능합니다. (ECS Console > Repositories > 생성한 repository 명> View Push Commands ) 다음의 명령어를 통해서 Tag 를 생성하고, web 리포지토리에 push 합니다. $ docker tag ecs-lab/web:latest <account_id>.dkr.ecr. us-east- 1.amazonaws.com/ecs-lab/web:latest $ docker push <account_id>.dkr.ecr. us-east-1.amazonaws.com/ecs- lab/web:latest 실행 결과는 다음과 같이 나타납니다. The push refers to a repository [<account_id>.dkr.ecr.us-east- 1.amazonaws.com/ecs-lab/web] 4acc70385e61: Pushed …. cb11ba605400: Pushed latest: digest: sha256:8cb6d69b1935cffb429ac847897346ff0312ddc514fa81db8394c474a89bb9bf size: 2200 ‘api'또한 다음 명령어를 통하여 Tag 를 생성하고, push 합니다. (이전에 Repository 등록시 Command) $ docker tag ecs-lab/api:latest <account_id>.dkr.ecr.us-east- 1.amazonaws.com/ecs-lab/api:latest $ docker push <account_id>.dkr.ecr.us-east-1.amazonaws.com/ecs-lab/api:latest (참고: 왜 :l astest 를 사용할까요? 대부분의 실제 운영 환경에서는 다른 스키마 이미지에 태그를 지정합니다. 예를 들어 최신 이미지와 같은 컨테이너의 다른 모든 버전에 CI 작업의 커밋 SHA 를 사용하여 태그 할 수 있습니다. 특정 태그없이 이미지를 푸시하면 기본적으로 : latest 로 설정되고 해당 태그로 이전 이미지의 태그를 해제 할 수 있습니다. Docker 태그에 대한 자세한 내용은 Docker 설명서 (https://docs.docker.com/engine/getstarted/step_six/) 를 참고하십시오. AWS Console 에서 push 된 이미지를 볼수 있고, CLI 를 통해서도, 리포지토리에 push 된 이미지를 알 수 있습니다.
  • 18. AWS DevDay Seoul Container hands on lab workshop Page 18 of 29 $ aws ecr list-images --repository-name=ecs-lab/api { "imageIds": [{ "imageTag": "latest", "imageDigest": "sha256:f0819d27f73c7fa6329644efe8110644e23c248f2f3a9445cbbb6c84a01e108f" }]} Lab 9. ALB 생성 이제 사용할 이미지를 push 했고, 사용할 endpoint 들에 트래픽을 분산하기 위해서, Application Load Balancer (ALB)가 필요합니다. 기존에 classic load balacer 와 비교하면, ALB 는 각각의 endpoint 들로 바로 트래픽을 보낼 수 있습니다. 이번 실습에서는 /web 과 /api 두 가지 다른 endpoint 들을 사용합니다. ALB 를 만들기 위해서는, EC2 Console 에서 왼쪽 메뉴에 Load Balancers 를 선택하고, Create Load Balancer 를 선택합니다.
  • 19. AWS DevDay Seoul Container hands on lab workshop Page 19 of 29 ALB 의 이름은 EcsLabAlb 로 하고, HTTP Listener 에 80 포트를 설정합니다. 참고 : 실제 운영 환경에서는 보안 리스너인 443 포트를 사용해야 합니다. 443 포트를 사용하기 위해서는 SSL 인증서가 필요하며, AWS Certificate Manager 또는 Certificate Authority(CA)에서 발급받은 인증서를 사용할 수 있습니다. 이번 실습에서는 안전하지 않은 HTTP 리스너만 사용합니다. 절대 실제 운영환경에 사용하지 마십시요. HA (High Availability)를 위해서는 적어도 2 개의 서브넷이 필요로 합니다. 이전에 생성했던 VPC 를 선택하고, Configure Security Settings 를 선택합니다. Select an existing security group 을 선택하고, sgecslabpublic 을 선택합니다. “Configure routing” 을 선택합니다. 기본적인 설정을 위해서, 다음과 같이 더미로 healthcheck 를 설정하고 path 에 /를 넣습니다. ALB 에 등록 할 때 서비스 엔드 포인트에 대한 특정 상태 확인을 추가 할 것입니다.
  • 20. AWS DevDay Seoul Container hands on lab workshop Page 20 of 29 위와 같이 설정 후 “Register targets”를 클릭하고, 해당 내용(Register target)은 그대로 두고, “Review” 를 클릭합니다. 지금까지의 모든 설정을 확인하고, “Create”를 클릭합니다. 이제 다음과 같은 security group 이 할당 되었습니다.
  • 21. AWS DevDay Seoul Container hands on lab workshop Page 21 of 29 Lab 10. Task Definitions 생성 Task Definitions 의 Log 를 남기기 위해서, CloudWatch > Logs > Actions > Create Log Group 을 통하여, ‘ecs-lab’ 이라는 새로운 Log Group 을 생성합니다. Container 에 서비스를 등록하기 전에, Task Definition 이 필요 합니다. Task Definitions 은 환경 변수들과 같은 것을 정의하고, container 이미지를 사용하고, 서비스의 필요한 리소스(port, memory, CPU)를 할당합니다. Task Definition 을 만들기 위해서, ECS console 메뉴에서 Task Definitions 를 선택하고, Create a Task Definition 을 클릭합니다. 위와 같이 설정하고, Add Container 를 클릭합니다.
  • 22. AWS DevDay Seoul Container hands on lab workshop Page 22 of 29 위와 같이 Container Name 과 image ( 이전에 Repository 로 Push 한 이미지 ), Memory Limits, Port mappings 를 입력합니다. 포트 매핑에서 컨테이너 포트는 3000 으로 지정했지만 호스트 포트는 0 으로 했습니다. 이것은 동적 포트 할당을 용이하게하기 위해 사용되었으며, 컨테이너 포트를 컨테이너 정의의 특정 호스트 포트에 매핑할 필요 없습니다. 대신, ALB 가 작업 배치 중에 포트를 할당하도록 할 수 있습니다. 포트 할당에 대한 자세한 내용은 ECS 설명서(http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PortMapping.html) 를 확인하십시오. 포트 매핑까지 완료했다면, 스크롤을 내려서, log driver 를 설정하십시요. 몇 가지 옵션이 있지만, 이번 실습에서는 다음과 같이 awslogs 를 선택합니다.
  • 23. AWS DevDay Seoul Container hands on lab workshop Page 23 of 29 ‘web’ container 를 위해서는, 위와 같이 aws-stream-prefix 의 Value 값에 web 을 넣습니다. Log driver 까지 설정이 완료되었으면, Container Definition 을 Save 하고, Create 버튼을 클릭해서 Task Definition 을 생성합니다. 위의 전 과정( Task Definition 등록 )을 한번 더 해서 ‘api’ container 를 등록합니다. 모든 과정은 거의 동일하지만, 다음과 같은 부분은 수정되어야 합니다. 이름은 ‘ecs-lab-api’로 하고, image 경로는 “<account_id>.dkr.ecr.us-east-1.amazonaws.com/ecs-lab/api:latest”, Container port options 은 Host port 는 0, Container Port 는 8000 으로 설정하며 awslogs 의 aws-stream-prefix 의 Value 값에 api 를 넣습니다.
  • 24. AWS DevDay Seoul Container hands on lab workshop Page 24 of 29 Lab 11. Services 생성 이제, Services 를 생성해야 합니다. Services 란 Task(containers)의 그룹이며, 동시에 실행할 Task 의 수와 해당 수명주기에 대한 몇 가지 구성을 할 수 있습니다. 먼저, 이 Service 를 위하여, IAM 롤을 생성해야 합니다. IAM > Create Role 로 가서 Amazon EC2 Container Service Role 을 선택하고 attach 한 뒤 EcsLabServiceRole 이란 이름으로 생성합니다.
  • 25. AWS DevDay Seoul Container hands on lab workshop Page 25 of 29 ECS 콘솔로 돌아가서, 이전에 생성된 cluster(EcsLabPublicCluster)를 선택합니다. 이제 웹 서비스를 생성해야 합니다. Cluster detail page 에서 Services > Create 를 선택합니다. 위와 같이 Task Definition 을 이전에 생성한 ecs-lab-web:1 을 선택합니다. 이번 실습의 데모를 위해서, 각 Task 는 한 카피만 실행합니다. 실제 운영환경에서는 안정성과 가용성을 위해서, 각 Task 는 항상 한 카피 이상이여야 합니다. Placement templates 는 디폴트 그대로 AZ Balanced Spread 로 둡니다. Task Placement 정책에 대하여 더 많은 정보를 알 고 싶다면, http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task- placement-strategies.html 또는 https://aws.amazon.com/blogs/compute/introducing-amazon-ecs-task- placement-policies/ 를 보시면 됩니다. Optional Configuraions 에 Configure ELB 를 선택합니다.
  • 26. AWS DevDay Seoul Container hands on lab workshop Page 26 of 29 위와 같이 Default 로 두고, Add to ELB 를 클릭합니다. 마지막으로, container 와 ALB 관련된 설정을 하면됩니다. ALB 를 생성했을 때, 리스너는 HTTP:80 만 추가했습니다. 위의 그림과 같이 Listener port, Target group name, Path pattern, Health check path 들을 설정하고, Save 를 클릭한후 Create Service 를 통하여 Service 를 생성합니다.
  • 27. AWS DevDay Seoul Container hands on lab workshop Page 27 of 29 api service 또한 추가를 하기 위하여 위의 설정을 다시 한번 진행합니다. ( Service Name : EcsLabApi, Taget Group name:EcsLabApi, Path pattern: /api*, evalution order : 2 , Health check: /api ) Lab 12. Consol 과 ALB 를 통한 서비스 배포 테스트 ECS 콘솔을 통하여, service level events 정보를 볼 수 있습니다. 이것은 배포 이벤트도 포함하고 있으며, web, api 서비스들이 배포되었고, ALB 에 등록되었는지를 다음과 같이 Services 의 Events 탭에서 확인할 수 있습니다. 또한, ALB 를 직접이용해서도 테스트 할 수 있습니다. ALB 의 DNS A 레코드를 찾아서 (EC2 콘솔에 Load Balancers > 생성한 Load Balancer 선택, Description 에 DNS Name 이 나와있습니다.) 웹 브라우저에서, 서비스의 endpoint 를 뒤에 /web 입력한 후 엔터키를 누르면 다음과 같이 ALB 와 ECS Cluster 실행된 화면을 볼 수 있습니다. ( Let’s Call API 또한 눌러서 확인 합니다 )
  • 28. AWS DevDay Seoul Container hands on lab workshop Page 28 of 29 ALB 는 컨테이너를 등록 할 때 지정한 경로를 기반으로 트래픽을 적절히 라우팅합니다. / web * 요청은 웹 서비스로 이동하고 / api * 요청은 API 서비스로 이동합니다. Lab 13. Cloudwatch 를 통한 ECS 로깅 확인 Container Definition 을 만들었을 때, Cloudwatch 에 로그를 보내는 awslogs 드라이버를 추가했습니다 Cloudwatch 콘솔로 이동해서 ecs-lab 그룹을 선택한 다음 개별 스트림을 선택하여 서비스에 대한 자세한 로그를 볼 수 있습니다. . Lab 14. 실습 종료후 삭제할 내용 실습을 종료한 뒤에는 다음과 같은 리소스들을 삭제해서, 비용이 추가적으로 발생하지 않도록 합니다. 1) Cloudformaion 콘솔에 가서 EC2ContainerService-EcsLabPubliCluster 스택 삭제 2) Cloudwatch Console > Logs 에 ecs-lab 로그 그룹 삭제
  • 29. AWS DevDay Seoul Container hands on lab workshop Page 29 of 29 3) ECS Console> Repotitories 에서 2 개의 생성된 repotitory 삭제 4) ECS Console> Task Definition 에서 2 개의 task definition 삭제 (Update Service 를 통하여, Number of tasks 를 0 으로 수정 이후 Deregister) 5) ECS Console > Cluster 에서 EcsLabPublicCluster 삭제 6) EC2 Conodle 에서 ecs-lab-workstation EC2 인스턴스 삭제 7) Load Balancer (EcsLabAlb) 와 Target Groups (Dummy, EcsLabApi, EcsLabWeb)삭제 8) Security Group (sgecslabpublic, sgecslabworkstation,sgecslabpubliccluster)삭제 9) VPC 삭제 (ECS Lab VPC) 10) IAM Console 에서 Role 삭제 (ecslabworkstationprofile, ecslabinstanceprofile, EcsLabServiceRole)