Î Ð È ÈÄ Ï Ê ÉÇ Ä É À... · docker host aws cloud d d . single tenant amazon eks...
Post on 26-May-2020
4 Views
Preview:
TRANSCRIPT
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS의관리형 서비스를 활용하여Kubernetes 를 위한 Devops 환경 구축하기
김광영
솔루션즈아키텍트
AWS Korea
경쟁 우위를 유지하기 위해 디지털 비즈니스는가능한 빨리 혁신해야 합니다
피드백아이디어
실험
Innovation
Flywheel
이 새로운 세계에 어떤변화가 필요합니까?
아키텍처 패턴
운영 모델
소프트웨어 딜리버리
Devops
Continuous Integration Continuous Delivery
Agile Development Continuous Testing
DEV OPS
Devops? t’s Almost Everything
What challenges customers go through w/ container?
https://www.cncf.io/wp-content/uploads/2020/03/CNCF_Survey_Report.pdf
Agenda
Intro: Devops & Container
Cluster Management For Kubernetes ( Amazon EKS)
CI/CD for Kubernetes ( Amazon EKS )
Monitoring For Kubernetes ( Amazon EKS )
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Elastic Kubernetes Service
Amazon EKS is Kubernetes certified
Kubernetes on AWS
Managed Kubernetes on AWS
고가용성 자동 버전업그레이드
타 AWS서비스들과의
통합
Etcd
Master
관리형Kubernetes 컨트롤
플레인 및워커노드 CloudTrail, CloudWatch, ELB,
IAM, VPC, PrivateLink , Appmesh,
관리형 Kubernetes컨트롤 플레인 제공
Phase 1
AWS에서의컨테이너옵션들– phase 1
AWS Fargate
Amazon ECSAmazon EKS
EC2 Container
Instances
Auto Scaling group
Worker
nodes
Auto Scaling groupDIY K8S
2018
K8s API ECS API
K8s API
Docker
Host
AWS Cloud
AW
S m
an
ag
ed
C
usto
me
r ma
na
ge
d
Single Tenant Amazon EKS Control Plane
Private subnet Private subnetPrivate subnet
Availability Zone 1 Availability Zone 2
Etcd
Au
to
Sca
ling
gro
upInstance
AW
S C
lou
d
Instance
Availability Zone 3
Instance
Ma
ster A
uto
Sca
ling
gro
up
Instance Instance
EK
S M
an
ag
ed
VP
C
Amazon EKS
NLB NLB Network Load Balancer
Classic Load Balancer
NAT Gateway NGW
NGW
관리형 Kubernetes컨트롤 플레인 제공
Phase 1
Phase 2
관리형 Kubernetes데이터 플레인 제공
Containers options on AWS – phase 2
AWS Fargate
Amazon ECSAmazon EKS
EC2 Container
Instances
Auto Scaling groupManaged
Node Groups
Auto Scaling group
Worker
nodes
Auto Scaling groupDIY K8S
2019
K8s API ECS API
K8s API
Docker
Host
AWS Cloud
AW
S m
an
ag
ed
C
usto
me
r ma
na
ge
d
Amazon EKS: 관리형 노드 그룹
• Kubernetes 애플리케이션을 실행하기 위해 컴퓨팅 용량을 제공하는Amazon EC2 인스턴스를 별도로 프로비저닝하거나 등록할 필요없음
• 한 번의 조작으로 클러스터에 대한 노드를 생성, 업데이트 또는 종료
• 모든 관리형 노드는 Amazon EKS에 의해 관리되는 Amazon EC2 Auto Scaling 그룹의 일부로 프로비저닝됨
• 인스턴스 및 Auto Scaling 그룹을 포함한 모든 리소스는 AWS 계정내에서 실행
• 각 노드 그룹은 Amazon EKS 최적화 Amazon Linux 2 AMI를 사용하며정의한 여러 가용 영역에서 실행가능
Amazon EKS 클러스터의노드 프로비저닝및수명주기관리를자동화
Amazon EKS Cluster를 프로비저닝 하는 다양한 방법
AWS CloudFormation & CDK eksctl partners…
…more
Terraform
Pulumi
Rancher
Containers options on AWS – phase2
AWS Fargate
Amazon ECSAmazon EKS
EC2 Container
Instances
K8s API ECS API
AWS Cloud
Auto Scaling groupManaged
Node Groups
Auto Scaling group
Worker
nodes
Auto Scaling groupDIY K8S
NEW
Docker
Host
K8s API
AW
S m
an
ag
ed
C
usto
me
r ma
na
ge
d
서버리스 Kubernetes 컨테이너를 안전하고 안정적으로 대규모로 실행할 수 있는 방법
AWS Fargate for Amazon EKS
EKS Fargate flow at 33,000 feet
Customer AccountAWS
Control Plane
VPC
AWS Fargate
Run a pod on Fargate
You don’t have tomanage capacity
PodService
ENI
아직할 수없는것들
Daemonsets
배포
(CLB/NLB) 다른서비스타입의로드밸런서사용
권한을부여한 Pod 실행
Stateful한워크로드사용
Amazon EKS Fargate 사용자 경험의 변화
더이상할필요가없는것들
Kubernetes
워커노드관리
사용하지않는유휴자원에대한비용지불
K8s 클러스터오토스케일러(Cluster Autoscaler)
새롭게가능하게된것
VM isolation at
pod level
Pod 단위의과금
멀티테넌트시나리오에서손쉽게비용절감
Amazon EKS 데이터플레인옵션Worker nodes only
Amazon EKS
Availability Zone 1
Auto Scaling group
Availability Zone 2
Auto Scaling group
Worker node Worker node
Worker node Worker node
Amazon EC2
Auto Scaling
Traditional container data plane
Pods
Amazon EKS 데이터플레인옵션Fargate only
Serverless container data plane
NEW
AWS Fargate
Amazon EKS
Pods
Amazon EKS 데이터 플레인 옵션Mixed mode
Serverless container data plane
NEW
AWS Fargate
Amazon EKS
Availability Zone 1
Auto Scaling group
Availability Zone 2
Auto Scaling group
Worker node Worker node
Worker node Worker node
Amazon EC2
Auto Scaling
Traditional container data plane
PodsPods
AWS Cloud
Amazon EKS Cluster
EKS Managed VPC
Amazon EKS
Availability Zone 2Availability Zone 1 Availability Zone 3
Customer Managed VPC
Single Tenant EKS Control Plane
Instances
Spot Instance
Instances
Spot Instance
Instances
Spot Instance
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
CI/CD Tools Monitoring & Tracing
SDKs
JavaScript Python PHP .NET Ruby Java Go Node.js C++
IDE
IDE and DevOps Toolkits
EclipseIntelliJ PyCharm Visual StudioVisual Studio Code
VSTS
CLI and Scripting Tools
AWS CLI Tools for PowerShell
Infrastructure as Code
AWS Cloud Dev. Kit (CDK)
Web Apps
Mobile
AWS Amplify
Amazon Corretto
Languages
포괄적인 엔터프라이즈 급의 툴 셋을 제공
소프트웨어릴리즈프로세스단계
Source Build Test Deploy
CI/CD를 위한 AWS 개발자 툴
AWS Cloud9 AWS CodeBuildAWS CodeCommit
Source Build Deploy
Developer
Amazon EKS
Amazon ECRAmazon S3
AWS CodePipeline
CI/CD를 통해서 높은 퀄리티의 피처를 빠르게 릴리즈
Test
AWS CodeBuild + 3rd
Party Test tools
AWS Secret Manager
AWS CodePipeline
• 빠르고 신뢰할 수 있는 애플리케이션업데이트를 위한 지속적 전달 서비스• 소프트웨어 릴리즈 프로세스 모델링 및 시각화
• 코드가 변경될 때 마다 빌드, 테스트, 배포
• 타사 도구 및 AWS와 통합
AWS CodeCommit
• 안전한 Git 기반 리포지토리를 호스팅하는 완전관리 형 소스 제어 서비스• 공동 작업 – 코드를 쉽게 커밋, 분기 및 병합하여 팀
프로젝트를 쉽게 제어가능.
• Pull Request – Code Review를 요청하고 공동 작업자와코드를 토론하는 메커니즘을 제공
• AWS Management Console, AWS CLI 또는 AWS SDK 암호화-원하는대로 HTTPS 또는 SSH를 지원
• 리포지토리는 고객 별 키를 사용하여 AWS KMS (AWS Key Management Service)를 통해 유휴시 자동암호화
AWS CodeBuild
• 소스 코드를 컴파일, 테스트, 패키징하는 완전관리되는 빌드 서비스• 지속적으로 확장 및 여러 빌드 동시 처리
• 관리할 빌드 서버 없음
• 사용한 컴퓨팅 리소스에 대해서만 분 단위로 과금
• CloudWatch Events르 통해 빌드 모니터링
• 각 빌드는 일관된 불변 환경을 위한 새로운 Docker 컨테이너에서 실행
• 모든 공식 CodeBuild 이미지는 Docker와 AWS CLI를 포함
• Docker 이미지를 사용하여 사용자 요구에 적합한 사용자지정 빌드 환경 제공
Amazon ECR ( EC2 Container Registry )
• 완전히 관리형 Private Docker Registry • Docker Registry HTTP API V2 지원
• 확장 가능, 고가용성, 고내구성 아키텍처
• 보안 : 암호화, IAM으로 액세스 제어
• 이미지 수명주기 관리
• 다른 AWS 서비스와 통합
• Immutable Image Tags 지원
• Image Scanning 지원
AWS Cloud
Amazon EKS Cluster with Code Suites
EKS Managed VPC
Amazon EKS
Availability Zone 2Availability Zone 1 Availability Zone 3
Customer Managed VPC
Single Tenant EKS Control Plane
Instances
Spot Instance
Instances
Spot Instance
Instances
Spot Instance
2. Check commit hook and
Executes new build
3. Push image
Amazon ECR
AWS CodePipeline
AWS CodeBuild
AWS CodeCommit
1.Commit
5. API server call to kubelet to deploy new pod
6. Pull Image
Amazon Cloud9
4. Update desire state through Kubectl
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
모니터링의 세가지 요소
관찰성이 목표
Amazon CloudWatch Container Insights 컨테이너 워크로드의 환경을 모니터링, 격리 및 진단
Amazon CloudWatch Container Insights 컨테이너 워크로드의 환경을 모니터링, 격리 및 진단
• 안정적이고 안전한 지표 및 로그 수집
• 자동화된 요약과 분석
• 지표, 로그, 트레이스 전반에 대한가시성
• 사전 생성된 대시보드
• 로그 인사이트로 추가 분석 가능.
• FluentD DaemonSet으로 로그 수집
Amazon CloudWatch Log Insights 컨테이너 워크로드의 환경의 로그를 어그레게이션 및 분석
로그데이터를대화식으로검색및분석
간단하고강력한명령을포함한특수쿼리언어포함
샘플쿼리, 명령설명, 쿼리자동완성및로드필드검색기능을통해손쉽게쿼리작성가능
AWS 서비스로그 및로그이벤트를 Json으로출력하는모든어플리케이션및커스텀로그에서필드자동검색가능.
Amazon CloudWatch Log Insights 컨테이너 워크로드의 환경의 로그를 어그레게이션 및 분석
Amazon X-Ray프로덕션 분산 애플리케이션의 분석 및 디버깅
성능의 병목 원인과 에러를 파악
애플리케이션의 특정 서비스 이슈를 파악
애플리케이션의 사용자에 대한 영향도 파악
애플리케이션 서비스 호출 그래프 시각화 가능
Amazon X-Ray프로덕션 분산 애플리케이션의 분석 및 디버깅
AWS Cloud
Amazon EKS Cluster with AWS DevOps Services
EKS Managed VPC
Availability Zone 2Availability Zone 1 Availability Zone 3
Customer Managed VPC
Single Tenant EKS Control Plane
Instances
Spot Instance
Instances
Spot Instance
Instances
Spot Instance
Amazon ECR
AWS CodePipeline
AWS CodeBuild
AWS CodeCommit
Amazon Cloud9
Amazon EKS
Amazon CloudWatch
Container Insights
AWS X-Ray
Amazon CloudWatch
Log Insights
FluentDFluentD FluentD
X-Ray Daemon X-Ray Daemon X-Ray Daemon
풍부한파트너생태계
DevOpsFoundation Security Networking
Monitoring &
Logging
Key take awaysKubernetes에 위해서 Devops를 하기 위한 광범위한 서비스를 제공
Kubernetes Cluster Management : Amazon EKS관리형컨트롤플레인제공: Amazon EKS
관리형데이터플레인제공: Amazon EKS (Self or) Managed Node Group ( On demand / RI / Spot)
완전관리형데이터플레인제공 : Amazon Fargate for EKS
CI/CD tools for Kubernetes: Code SuitesCI/CD를 위한 Code Suites (AWS Code Pipeline, AWS Code Build, AWS Code Commit )
완전관리형 Container Image Registry: Amazon ECR
Monitoring tool for Kubernetes: Cloud Watch & X-Ray컨테이너메트릭측정: Cloud Watch Container Insights
컨테이너로깅: Cloud Watch Log Insights
트레이싱: X-Ray
고객들이 AWS 컨테이너 서비스를 선호하는 이유
컨테이너는 AWS 클라우드의 first-class citizen 입니다
AWS와 긴밀히 통합 보안 및 규정 준수
광범위한 컴퓨팅 인스턴스 및 IAM 보안, VPC 네트워킹, 로드 밸런싱 및
오토스케일링
ISO, HIPPA, PCI, SOC1, SOC2, SOC3Infocomm Media Development Auth.
DevOps 워크플로우
컨테이너를 위한 완벽한 DevOps 워크플로우 (AWS DevTools 및 Cloud9)를구축하고 운영하기에 가장 좋은 장소
DEV OPS
Next Step
EKS Workshop
• https://eksworkshop.com
Service Mesh with AWS App Mesh
• https://appmeshworkshop.com
AWS Container Services
• https://aws.amazon.com/containers/
AWS Devops Services
• https://aws.amazon.com/devops/
And Please Contact SA/AM/PM/PSA/BD from AWS
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
감사합니다
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
top related