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.
AWS 컨테이너 활용 사례 및 주요 도구 알아보기
정영준, AWS 솔루션즈 아키텍트
현대적 애플리케이션 개발을 위한
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
강연 중 질문하는 방법
Go to Webinar “Questions” 창에 자신이 질문한...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
현대적 애플리케이션 구조란?
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발 접근 방법
• 운영 환경 관리 간소화
• 코드 변경으로 인한 영...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발 접근 방법
• 운영 환경 관리 간소화 서버리스/컨테이너 활용
•...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발 접근 방법
• 운영 환경 관리 간소화 서버리스/컨테이너 활용
•...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발 접근 방법
서버리스 컨테이너
지속적으로 수행 되는 애플리케이션
...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발 접근 방법
• 운영 환경 관리 간소화 서버리스/컨테이너 활용
•...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
릴리스 프로세스 단계
소스 빌드 테스트 운영
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션을 배포하는 3단계
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
지속적인 통합 목표
소스 빌드 테스트 운영
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
지속적 통합 목표
1. 새 코드가 체크인되면 자동으로 새 릴리스를 시작
2. 일관되고 반...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션을 배포하는 3단계
지속적
배포
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
지속적인 배포 목표
소스 빌드 테스트 운영
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
지속적인 배포 목표
1. 테스트를 위해 스테이징 환경에 새로운 변경 사항을 자동으로 배치...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션을 배포하는 3단계
코드로서의
인프라
지속적
배포
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
코드로서의 인프라의 목표
소스 빌드 테스트 운영
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
코드로서의 인프라의 목표
1. 인프라 변경을 반복 가능하고 예측 가능하게 만들기
2. 코...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
코드로 인프라를 사용한 지속적인 테스트
아티펙트 확인
(빌드 단계)
• 단위 테스트
• ...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
코드로서 인프라 스트럭처의 배포
“마스터”
브랜치
템플릿 준비 변경 세트 작성
및 실행
...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션을 배포하는 3단계
지속적
통합
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
현대적 애플리케이션의 마이크로 서비스
아키텍처 기반 기술 - 컨테이너
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Elastic Kubernetes Service
mycluster.eks.a...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
도커 이미지 관리하기
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
도커 이미지 생성
Dockerfile
Docker image
docker build
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
version: 0.2
phases:
pre_build:
commands:
- $(aw...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EC2 Container Registry (ECR)
완전히 관리되는 개인 D...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
도커 지속적 통합 파이프라인
AWS Cloud
AWS CodeBuild Multi-Sta...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
쿠버네티스를 활용한 개발 파이프라인
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
쿠버네티스 애플리케이션
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EKS – Helm / Package 관리
Helm은 Helm Charts ...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
쿠버네티스를 위한 개발 도구
Helm CLI 명령
템플릿 – Helm 템플릿을 로컬로 렌...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Helm chart 을 이용한 지속적 통합 파이프라인
AWS Cloud
AWS CodeB...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EKS 지속적 배포 파이프라인
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EKS 지속적 배포 파이프라인
AWS Cloud
AWS CodeBuild Amazon E...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
모든 도구를 통합한 현대적
애플리케이션을 위한 EKS 파이프라인
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EKS 통합 배포 파이프라인
AWS
CodeBuild
Amazon Elastic
Cont...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발 접근 방법
AWS 컨테이너 서비스를 활용한
• 운영 환경 관리 ...
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
교육
Developing on AWS 과정에서는 AWS SDK를 사용하여 안전하고
확장 ...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
aws-korea-marketing@amazon.com
twitter.com/AWSKo...
Upcoming SlideShare
Loading in …5
×

[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발을 위한 AWS 컨테이너 활용사례 및 주요 도구 알아보기 - 정영준, AWS 솔루션즈 아키텍트

331 views

Published on

발표자료 다시보기: https://youtu.be/ljwmKZZTEKE

현대적 애플리케이션 구조는 확실히 기존의 애플리케이션 보다 빠른 개발과 배포가 가능 하지만 여러가지 면에서 생소 할 수 있습니다. 기존에 익숙하게 사용하던 디자인 패턴과는 조금 다른 구조의 접근 방법과 도구들을 활용하기 때문에 입니다. 컨테이너의 기술적인 특징을 이해하면 현대적 애플리케이션의 설계가 쉬워집니다. 본 세션에서는 컨테이너의 기술적인 특징 및 모범사례에서 주로 사용 되는 도구들에 대하여 알아봅니다. 컨테이너의 기술에 대한 이해를 하고 싶은 기술 전략 및 개발 PM 분들 혹은 컨테이너가 아직 익숙하지 않은 개발자분들에게 이 세션을 추천합니다.

Published in: Technology
  • Be the first to comment

[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발을 위한 AWS 컨테이너 활용사례 및 주요 도구 알아보기 - 정영준, AWS 솔루션즈 아키텍트

  1. 1. AWS 컨테이너 활용 사례 및 주요 도구 알아보기 정영준, AWS 솔루션즈 아키텍트 현대적 애플리케이션 개발을 위한
  2. 2. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 강연 중 질문하는 방법 Go to Webinar “Questions” 창에 자신이 질문한 내역이 표시됩니다. 기본적으로 모든 질문은 공개로 답변 됩니다만 본인만 답변을 받고 싶으면 (비공개)라고 하고 질문해 주시면 됩니다. 본 컨텐츠는 고객의 편의를 위해 AWS 서비스 설명을 위해 온라인 세미나용으로 별도로 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우, AWS 사이트(aws.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다. AWS는 본 컨텐츠에 포함되거나 컨텐츠를 통하여 고객에게 제공된 일체의 정보, 콘텐츠, 자료, 제품(소프트웨어 포함) 또는 서비스를 이용함으로 인하여 발생하는 여하한 종류의 손해에 대하여 어떠한 책임도 지지 아니하며, 이는 직접 손해, 간접 손해, 부수적 손해, 징벌적 손해 및 결과적 손해를 포함하되 이에 한정되지 아니합니다. 고지 사항(Disclaimer)
  3. 3. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 현대적 애플리케이션 구조란?
  4. 4. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발 접근 방법 • 운영 환경 관리 간소화 • 코드 변경으로 인한 영향 최소화 • 작업 자동화 • 서비스 배포 속도 향상을 위한 도구 사용 • 리소스 및 애플리케이션에 대한 통찰력 확보 • 고객 및 비지니스 보호
  5. 5. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발 접근 방법 • 운영 환경 관리 간소화 서버리스/컨테이너 활용 • 코드 변경으로 인한 영향 감소 마이크로 서비스 아키텍처 도입 • 작업 자동화 어플리케이션 모델링 & 코드로서 인프라스트럭처 도입 • 서비스 제공 가속화 지속적 통합/지속적 배포 • 리소스 및 애플리케이션에 대한 통찰력 확보 가시성 확보를 위한 도구 • 고객 및 비지니스 보호 종단간 보안 구성 & 준법감시,법규준수
  6. 6. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발 접근 방법 • 운영 환경 관리 간소화 서버리스/컨테이너 활용 • 코드 변경으로 인한 영향 감소 마이크로 서비스 아키텍처 도입 • 작업 자동화 어플리케이션 모델링 & 코드로서 인프라스트럭처 도입 • 서비스 제공 가속화 지속적 통합/지속적 배포 • 리소스 및 애플리케이션에 대한 통찰력 확보 가시성 확보를 위한 도구 • 고객 및 비지니스 보호 종단간 보안 구성 & 준법감시,법규준수
  7. 7. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발 접근 방법 서버리스 컨테이너 지속적으로 수행 되는 애플리케이션 OS 추상화 완전 관리 형 오케스트레이션 완전 관리 형 컨테이너 클러스터 서버리스 함수 이벤트 처리 중심 애플리케이션 많은 언어 런타임 데이터 소스 통합 서버 관리 불필요
  8. 8. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발 접근 방법 • 운영 환경 관리 간소화 서버리스/컨테이너 활용 • 코드 변경으로 인한 영향 감소 마이크로 서비스 아키텍처 도입 • 작업 자동화 어플리케이션 모델링 & 코드로서 인프라스트럭처 도입 • 서비스 제공 가속화 지속적 통합/지속적 배포 • 리소스 및 애플리케이션에 대한 통찰력 확보 가시성 확보를 위한 도구 • 고객 및 비지니스 보호 종단간 보안 구성 & 준법감시,법규준수
  9. 9. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 릴리스 프로세스 단계 소스 빌드 테스트 운영
  10. 10. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션을 배포하는 3단계 지속적 통합
  11. 11. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 지속적인 통합 목표 소스 빌드 테스트 운영
  12. 12. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 지속적 통합 목표 1. 새 코드가 체크인되면 자동으로 새 릴리스를 시작 2. 일관되고 반복 가능한 환경에서 코드 작성 및 테스트 3. 지속적으로 배포 할 준비가 된 아티팩트를 생성 4. 빌드 실패시 피드백 루프 닫기
  13. 13. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션을 배포하는 3단계 지속적 배포 지속적 통합
  14. 14. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 지속적인 배포 목표 소스 빌드 테스트 운영
  15. 15. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 지속적인 배포 목표 1. 테스트를 위해 스테이징 환경에 새로운 변경 사항을 자동으로 배치 2. 고객에게 영향을주지 않고 안전하게 프로덕션에 배포 3. 고객에게 더 빠르게 제공 : 배포 빈도를 높이고 변경 리드 타임 및 변경 실패율을 줄임
  16. 16. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션을 배포하는 3단계 코드로서의 인프라 지속적 배포 지속적 통합
  17. 17. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 코드로서의 인프라의 목표 소스 빌드 테스트 운영
  18. 18. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 코드로서의 인프라의 목표 1. 인프라 변경을 반복 가능하고 예측 가능하게 만들기 2. 코드 변경과 동일한 도구를 사용하여 인프라 변경을 릴리스 3. 스테이징 환경에서 프로덕션 환경을 복제하여 지속적인 테스트 가능
  19. 19. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 코드로 인프라를 사용한 지속적인 테스트 아티펙트 확인 (빌드 단계) • 단위 테스트 • 정적 분석 • 조롱 된 종속성 및 환경 • 취약점 이미지 스캔 환경 구성 확인 (테스트 단계) • 실제 종속성 및 실제 환경에 대한 통합 테스트 • 부하 테스트 • 침투 테스트 • 환경에 대한 배포의 영향을 테스트하기위한 모니터링
  20. 20. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 코드로서 인프라 스트럭처의 배포 “마스터” 브랜치 템플릿 준비 변경 세트 작성 및 실행 변경 세트 작성 및 실행
  21. 21. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션을 배포하는 3단계 지속적 통합
  22. 22. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 현대적 애플리케이션의 마이크로 서비스 아키텍처 기반 기술 - 컨테이너
  23. 23. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  24. 24. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Elastic Kubernetes Service mycluster.eks.amazonaws.com EKS workers Kubectl AZ 1 AZ 2 AZ 3 Your AWS account VPC 가용성, 확장성 및 보안성이 뛰어난 Kubernetes 서비스
  25. 25. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 도커 이미지 관리하기
  26. 26. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 도커 이미지 생성 Dockerfile Docker image docker build
  27. 27. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. version: 0.2 phases: pre_build: commands: - $(aws ecr get-login --no-include-email) build: commands: - docker build --tag “${ECR}:${COMMIT}” -–tag “${ECR}:${TAG}” . post_build: commands: - docker push "${ECR}:${COMMIT}”; docker push “${ECR}:${TAG}”
  28. 28. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon EC2 Container Registry (ECR) 완전히 관리되는 개인 Docker Registry Docker Registry HTTP API V2 지원 확장 가능하고 사용 가능한 내구성 아키텍처 유휴시 암호화, IAM으로 액세스 제어 이미지 수명주기 관리 다른 AWS 서비스와 통합
  29. 29. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 도커 지속적 통합 파이프라인 AWS Cloud AWS CodeBuild Multi-Stage Docker Build 3rd party Git repository Git users git push webhook Amazon EC2 Container Registry AWS CodeCommit git push docker push AWS CodeBuild
  30. 30. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 쿠버네티스를 활용한 개발 파이프라인
  31. 31. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 쿠버네티스 애플리케이션
  32. 32. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon EKS – Helm / Package 관리 Helm은 Helm Charts 를 통해 K8s 앱을 관리 K8s 응용 Helm Charts 정의 – 템플릿 및 값 (여러 환경에 해당) 설치 – 새 릴리스 작성 업그레이드 – 새 릴리스 개정 작성 (이전 개정으로 롤백) 제작, 버전 관리, 공유 및 게시 – 관리 및 규제에 용이 Kubernetes 응용 프로그램의 릴리스 관리 CI / CD 또는 개발자 랩톱에서 실행
  33. 33. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 쿠버네티스를 위한 개발 도구 Helm CLI 명령 템플릿 – Helm 템플릿을 로컬로 렌더링하고 출력을 표시합니다 lint – Helm 차트가 올바른지 확인하기 위해 일련의 테스트를 실행합니다. kubeval https://github.com/garethr/kubeval Kubernetes JSON 스키마에 대해 Kubernets YAML / JSON 파일의 유효성을 검증. 쿠베 테스트 https://github.com/garethr/kubetest Kubernetes 구성을 위한 단위 테스트 Skylark (Python dialect) 구성 언어로 테스트 작성
  34. 34. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. Helm chart 을 이용한 지속적 통합 파이프라인 AWS Cloud AWS CodeBuild Helm Dev Tools - helm lint - kubeval - kubetest - package 3rd party Git repository <Helm Chart> Git users git push webhook AWS CodeCommit <Helm Chart> git push helm s3 push AWS CodeBuild Amazon Simple Storage Service (S3)
  35. 35. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. EKS 지속적 배포 파이프라인
  36. 36. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. EKS 지속적 배포 파이프라인 AWS Cloud AWS CodeBuild Amazon Elastic Container Service for Kubernetes helm upgrade --install AWS CodePipeline AWS CodePipeline helm test & helm rollback (on error) Amazon EC2 Container Registry Amazon Simple Storage Service (S3) source source Helm Repository
  37. 37. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 모든 도구를 통합한 현대적 애플리케이션을 위한 EKS 파이프라인
  38. 38. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. EKS 통합 배포 파이프라인 AWS CodeBuild Amazon Elastic Container Service for Kubernetes helm upgrade --install AWS CodePipeline AWS CodePipeline helm test & helm rollback (on error) Amazon EC2 Container Registry Amazon Simple Storage Service (S3) source source Helm Repository AWS CodeBuild Helm Dev Tools - helm lint - kubeval - kubetest 3rd party Git repository <Helm Chart> Git users git push webhook AWS CodeCommit <Helm Chart> git push helm s3 push AWS CodeBuild AWS CodeBuild Multi-Stage Docker Build 3rd party Git repository Git users git push webhook AWS CodeCommit git push docker push AWS CodeBuild
  39. 39. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발 접근 방법 AWS 컨테이너 서비스를 활용한 • 운영 환경 관리 간소화 서버리스/컨테이너 활용 • 코드 변경으로 인한 영향 감소 마이크로 서비스 아키텍처 도입 • 작업 자동화 어플리케이션 모델링 & 코드로서 인프라스트럭처 도입 • 서비스 제공 가속화 지속적 통합/지속적 배포 • 리소스 및 애플리케이션에 대한 통찰력 확보 가시성 확보를 위한 도구 • 고객 및 비지니스 보호 종단간 보안 구성 & 준법감시,법규준수
  40. 40. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 교육 Developing on AWS 과정에서는 AWS SDK를 사용하여 안전하고 확장 가능한 클라우드 애플리케이션을 개발하는 방법을 배웁니다. 또한 코드를 사용하여 AWS와 상호작용하는 방법을 살펴보고, 주요 개념, 모범 사례 및 문제 해결 팁을 설명합니다. 자격증 AWS Certified Developer – Associate 1년 이상의 실무 경험이 있는 개발자 대상 이 시험은 핵심 AWS 서비스의 사용 방법과 기본적인 AWS 아키텍처 모범 사례를 이해하고 있음을 입증해줍니다. 해당 자격증을 통해 AWS를 사용하여 클라우드 기반 애플리케이션을 능숙하게 개발, 배포 및 디버깅할 수 있음을 증명하실 수 있습니다. AWS 교육 및 자격증을 통해 현대적 애플리케이션 개발에 첫 발을 내딛으세요 자격증 AWS Certified DevOps Engineer – Professional 2년 이상의 실무 경험이 있는 DevOps 엔지니어 대상 이 시험은 AWS 환경을 프로비저닝하고 운영 및 관리할 수 있음을 입증해줍니다. 해당 자격증을 통해 AWS 플랫폼에서 높은 가용성, 뛰어난 확장성 및 자가 치유 기능이 있는 시스템을 구현할 수 있으며, 운영 프로세스를 자동화할 수 있는 도구를 설계 관리 및 유지할 수 있음을 증명하실 수 있습니다. https://www.aws.training/ 에서 더 많은 정보를 확인해보세요!
  41. 41. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. aws-korea-marketing@amazon.com twitter.com/AWSKorea facebook.com/amazonwebservices.ko youtube.com/user/AWSKorea slideshare.net/awskorea twitch.tv/aws 캠페인 온라인 세미나: 애플리케이션 현대화 및 개발 특집에 참석해주셔서 대단히 감사합니다. 저희가 준비한 내용, 어떻게 보셨나요? 더 나은 세미나를 위하여 설문을 꼭 작성해 주시기 바랍니다.

×