Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

최근 Docker 콘테이너를 기반으로 하는 효율적인 애플리케이션 배포 및 운영에 대해 관심이 높아지고 있습니다.

Amazon EC2 Container Service(ECS)는 Docker 콘테이너를 지원하는 확장성과 성능이 뛰어난 콘테이너 관리 서비스입니다. Amazon ECS를 사용하면 자체적인 클러스터 관리 인프라를 설치, 운영 및 확장할 필요가 없으며, 다른 AWS 서비스와 연동하도록 설계 되어 있습니다.

본 강의를 통해 Amazon ECS의 소개 및 장점, 그리고 관리 방법 등에 대한 소개를 통해 어떻게 AWS 클라우드에서 효율적으로 확장 가능한 콘테이너 서비스를 운영할 수 있을지 알려드립니다.

  • Be the first to comment

Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)

  1. 1. 월간 웨비나 2015년 8월 26일 금요일 | 오전 11시 http://aws.amazon.com/ko Amazon EC2 Container Service 자세히 보기
  2. 2. 김상필, Solutions Architect sangpill@amazon.com
  3. 3. v   Amazon EC2 Container Service 자세히 보기 컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
  4. 4. 컨테이너란? •  운영체제 가상화 •  프로세스 격리 •  자동화 •  이미지 기반 Server   Guest  OS   Bins/Libs   Bins/Libs   App2  App1  
  5. 5. v   손쉬운 사용, 표준화, 상호운용성을 갖춘 컨테이너 •  컨테이너 기술은 이전부터 존재 (예 : LXC, Solaris Zones, BSD Jails) •  컨테이너는 단지 철제 상자가 아님 •  Docker를 사용하면, 로우-레벨 컨테이 너가 다음 장점을 갖게 됨 : -­‐  손쉬운 사용, 툴 -­‐  재사용 가능 컴포넌트 -­‐  현존하는 대부분 Linux 서버에서 구 동 : 물리, 가상, 클라우드, …
  6. 6. 컨테이너 기술의 장점 Portable •  이식성 장점 •  이미지 기반 배포, 버전 관리 •  어느 곳에서 운영하던 동일한 환 경 •  개발/테스트/운영 환경 동일Server   Guest  OS   Bins/Libs   Bins/Libs   App2  App1  
  7. 7. 컨테이너 기술의 장점 Flexible •  유연성 •  이미지 기반으로 배포되는 컨테 이너는 클린하고, 재사용 가능한 모듈화 환경 •  마이크로서비스를 통해 어플리케 이션을 작은 단위로 분할하고, 복 잡성 줄이고, 신속하게 개발하는 것을 가능하게 함 Server   Guest  OS   Bins/Libs   Bins/Libs   App2  App1  
  8. 8. 컨테이너 기술의 장점 Fast •  도커 이미지는 가볍다. •  개발, 빌드, 배포하는 과정이 빠 르게 이루어진다. Server   Guest  OS   Bins/Libs   Bins/Libs   App2  App1  
  9. 9. 컨테이너 기술의 장점 Efficient •  필요한 리소스만을 배포 •  OS kernel & libs 를 공유하여 사 용하기 때문에 어플리케이션이 배포하는 것만을 배포 Server   Guest  OS   Bins/Libs   Bins/Libs   App2  App1  
  10. 10. 컨테이너 배포 형태 기본 이미지   Ruby   Redis   Logger   App   개발자  IT  운영   패치  유틸리티  
  11. 11. +   •  손쉬운 배포 •  환경의 신뢰성 •  대규모 환경 관리의 용이성 •  자동화 •  분산 애플리케이션 많은 고객이 Docker를 AWS에서 구동하는 이유
  12. 12. v   컨테이너 사용 사례 •  손쉬운 애플리케이션 배포 •  애플리케이션 라이프 사이클 •  지속적 통합 (Continuous Integration) •  지속적 배포 (Continuous Delivery) •  플랫폼 서비스 (PaaS) •  분산 애플리케이션 구성 •  분산 애플리케이션 확장
  13. 13. v   Amazon EC2 Container Service 자세히 보기 컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
  14. 14. v   Amazon EC2 Container Service 출시 •  2015년 4월 9일 정식 출시 •  신규 기능 •  서비스 스케줄러 •  로드 밸런싱 •  관리 콘솔 •  사설 저장소 (Private Repositories) •  데이터 볼륨 •  AWS CloudTrail 통합 •  지역 -  US East (Northern Virginia), US West (Oregon), US East (California) and EU West (Ireland), Asia Pacific (Tokyo), Asia Pacific (Sydney) •  비용 - $0, EC2 인스턴스 비용만 발생
  15. 15. v   모든 규모의 클러스터를 손쉽게 관리 •  별도 실행 없음 •  전체 상태 관리 •  컨트롤 및 모니터링 •  대규모 확장
  16. 16. v   유연한 컨테이너 배치 •  어플리케이션 •  배치 작업 •  복수 스케줄러
  17. 17. v   AWS 서비스와 함께 사용되도록 설계 •  Elastic Load Balancing •  Elastic Block Store •  Virtual Private Cloud •  IAM •  CloudTrail
  18. 18. v   확장 가능 •  전체 API 제공 •  오픈소스 에이전트 •  커스텀 스케줄러
  19. 19. v   Amazon EC2 Container Service 자세히 보기 컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
  20. 20. v   주요 구성 요소 •  Container Instance •  Cluster •  Task Definitions •  Tasks •  Service Container   Instance   Container   Instance   …   Container   Instance   Cluster   Task   defini3on   Task   Service  
  21. 21. v   Amazon EC2 인스턴스 Docker 데몬 Amazon ECS 에이전트 AMI 제공 주요 구성 요소: Container Instance
  22. 22. v   지역 단위 자원 풀 Container 인스턴스들의 그룹 최소에서 시작, 동적 확장 주요 구성 요소: Clusters
  23. 23. 주요 구성 요소: Task Definitions Container   Instance   Schedule   Shared  data  volume   PHP  App   Time  of  day  App  
  24. 24. !!!!!!!{! "environment": [],! "name": "simple-demo",! "image": "my-demo",! "cpu": 10,! "memory": 500,! "portMappings": [! {! "containerPort": 80,! "hostPort": 80! }! ],! "mountPoints": [! {! "sourceVolume": "my-vol",! "containerPath": "/var/www/my-vol"! }! ],! "entryPoint": [! "/usr/sbin/apache2",! "-D",! "FOREGROUND"! ],! "essential": true! },! ! !{! "name": "busybox",! "image": "busybox",! "cpu": 10,! "memory": 500,! "volumesFrom": [! {! "sourceContainer": "simple-demo"! }! ],! "entryPoint": [! "sh",! "-c"! ],! "command": [! "/bin/sh -c "while true; do /bin/date > /var/www/my-vol/date; sleep 1; done""! ],! "essential": false! }! 주요 구성 요소: Task Definitions
  25. 25. 주요 구성 요소: Task Definitions !!!!!!{! "environment": [],! "name": "simple-demo",! "image": "my-demo",! "cpu": 10,! "memory": 500,! "portMappings": [! {! "containerPort": 80,! "hostPort": 80! }! ],! "mountPoints": [! {! "sourceVolume": "my-vol",! "containerPath": "/var/www/my-vol"! }! ],! "entryPoint": [! "/usr/sbin/apache2",! "-D",! "FOREGROUND"! ],! "essential": true! },! [! {! "image": "mysql",! "name": "db",! "cpu": 10,! "memory": 500,! "essential": true,! "entryPoint": [! "/entrypoint.sh"! ],! "environment": [! {! "name": "MYSQL_ROOT_PASSWORD",! "value": "pass"! }! ],! "portMappings": []! }! ]! EssenHal  to  our  Task   Create  and  mount  volumes   Expose  port  80  in  container   to  port  80  on  host   10  CPU  Units  (1024  is  full  CPU),   500  Megabytes  of  Memory  
  26. 26. [! {! "image": "tutum/wordpress-stackable",! "name": "wordpress",! "cpu": 10,! "memory": 500,! "essential": true,! "links": [! "db"! ],! "entryPoint": [! "/bin/sh",! "-c"! ],! "environment": [! …! ],! "portMappings": [! {! "containerPort": 80,! "hostPort": 80! }! ]! },! ]! From  Docker  Hub   Mount  volume  from  other  container   Command  to  exec   주요 구성 요소: Task Definitions ! !{! "name": "busybox",! "image": "busybox",! "cpu": 10,! "memory": 500,! "volumesFrom": [! {! "sourceContainer": "simple-demo"! }! ],! "entryPoint": [! "sh",! "-c"! ],! "command": [! "/bin/sh -c "while true; do /bin/date > /var/www/my-vol/date; sleep 1; done""! ],! "essential": false! }!
  27. 27. v   작업의 단위 연관된 컨테이너들의 그룹 컨테이너 인스턴스에서 실행 주요 구성 요소: Tasks
  28. 28. 주요 구성 요소: Tasks Good for short-lived containers, e.g. batch jobs
  29. 29. 주요 구성 요소: Services Good for long-running applications and services  
  30. 30. v   Long running 애플리케이션 •  로드 밸런싱 •  상태 관리 •  스케일-업 및 스케일-다운 •  업데이트 관리
  31. 31. v   •  컨테이너 간 트래픽을 로드 밸런싱 •  건강하지 않은 컨테이너의 자동 회복 •  서비스의 탐지 ElasHc  Load  Balancing   주요 구성 요소: Services
  32. 32. v   스케일-업 및 스케일-다운 ElasHc  Load  Balancing   주요 구성 요소: Services
  33. 33. v   신규 버전 배포 ElasHc  Load  Balancing   주요 구성 요소: Services
  34. 34. v   Amazon EC2 Container Service 자세히 보기 컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
  35. 35. v   Amazon EC2 Container Service 자세히 보기 컨테이너 및 Docker 서비스 출시 및 What’s new 주요 구성요소 데모 시연 사용 패턴
  36. 36. 서비스를 기동하고 싶어요.   전형적인 사용 패턴
  37. 37. Run  Instances   Amazon  EC2   Docker  및 ECS 에이전 트를 지원하는 커스 텀 AMI  사용.     Default  클러스터에 인스턴스를 등록   전형적인 사용 패턴
  38. 38. Create  Task  DefiniHon   Containers를 위한 자 원 요구사항을 선언   전형적인 사용 패턴
  39. 39. Create  Service   Services를 위한 자원 요구사항을 선언   X  5   ElasHc  Load  Balancing   전형적인 사용 패턴
  40. 40. Describe  Service   전형적인 사용 패턴
  41. 41. v   다음 단계 •  제품 웹사이트 http://aws.amazon.com/ecs/ •  문서 - http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ •  시작하기 - http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ ECS_GetStarted.html
  42. 42. 여러분의 피드백을 기다립니다! •  공식 블로그: http://aws.amazon.com/ko/blogs/korea •  한국어 공식 소셜 미디어 @AWSKorea   AmazonWebServices.ko   AWSKorea   AWSKorea              

×