SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
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)

Más contenido relacionado

La actualidad más candente

LoadBalancer using KeepAlived
LoadBalancer using KeepAlivedLoadBalancer using KeepAlived
LoadBalancer using KeepAlivedKhushalChandak1
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-Takakiyo Tanaka
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Daisuke Miyamoto
 
비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018
비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018
비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018Amazon Web Services Korea
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
Amazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティスAmazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティスAmazon Web Services Japan
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?rfelden
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するMasayuki Ozawa
 
Dkos(mesos기반의 container orchestration)
Dkos(mesos기반의 container orchestration)Dkos(mesos기반의 container orchestration)
Dkos(mesos기반의 container orchestration)Won-Chon Jung
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기YongSung Yoon
 
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境Amazon Web Services
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAmazon Web Services
 
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017Amazon Web Services Korea
 
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...Amazon Web Services
 
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...Amazon Web Services
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi
 
コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~
コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~
コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~aslead
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of dockerJohn Zaccone
 

La actualidad más candente (20)

LoadBalancer using KeepAlived
LoadBalancer using KeepAlivedLoadBalancer using KeepAlived
LoadBalancer using KeepAlived
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
 
Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
 
비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018
비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018
비용 관점에서 AWS 클라우드 아키텍처 디자인하기::류한진::AWS Summit Seoul 2018
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
Amazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティスAmazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティス
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
 
Dkos(mesos기반의 container orchestration)
Dkos(mesos기반의 container orchestration)Dkos(mesos기반의 container orchestration)
Dkos(mesos기반의 container orchestration)
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
 
Introduce to Terraform
Introduce to TerraformIntroduce to Terraform
Introduce to Terraform
 
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
 
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
 
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~
コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~
コロナ禍の働き方のニューノーマル~NRIの数千人のテレワークを支えたサービスとは~
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 

Destacado

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
 
[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 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
 

Destacado (12)

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
 
[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 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 a 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
 
EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기Jinwoong 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어형 이
 

Similar a 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서버 구축
 
EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기
 
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
 

Más de 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
 

Más de 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)