강사소개
베스핀글로벌 윤병호 매니저
윤병호 매니저는 베스핀글로벌의 클라우드 엔지니어로 빅데이터
관련 프로젝트의 실무를 담당하고 있습니다. 주로 인프라 구축, 배포
환경 구축 등의 업무를 담당하고 있으며 여러 프로젝트에서 SA, AA
역할로 참여했습니다.
다중 AWS 계정에서의 CI/CD 구축
베스핀글로벌 윤병호 매니저
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
3
Webinar Target
다음 대상자를 목표로 구성된 webinar 입니다.
Target A
- 여러 계정에 CICD 구축이 필요한 AA(Application Architect)
Target C
- 다중 계정을 사용한 역할 관계 이해
Target B
- AWS 환경에서 배포 자동화
Target D
- AWS 에서 개발 환경을 구축
- AWS 가 궁금하신 분
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
4
Webinar 내용 & Prerequisite
Webinar는 다음과 같은 내용을 담고 있고 몇가지 선수 지식이 필요합니다
CONTENTS A
다중 계정에서 EC2 배포 자동화를 구축
한 계정에서 여러 계정에 배포할 수 있습니다.
CONTENTS B
AWS에서 여러 계정을 사용하는 방법
AWS에서 시스템을 구축할 때 여러 계정을 사용할 수 있습니다.
CONTENTS C
CodePipeline을 통해 배포 단계 구축
Demo를 통해 CodePipeline으로 배포 단계를 구축할 수 있습니다.
Prerequisite
- Ubuntu
- Git/Jenkins
- EC2/AutoScaling/ELB/IAM
- Security Groups
- CI/CD
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
5
Who is Bespin Global?
베스핀글로벌은가장믿을만하고실력있는클라우드매니지드서비스공급자(MSP) 입니다.
퍼블릭 클라우드 MSP 부문
한중일 최초 3년 연속 등재
한국의 주목할만한 유니콘
국내 매니지드 서비스 기업 최초
ISO 인증 획득
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
6
Global Bespin
글로벌 파트너 네트워크
프랑크푸르트 / 불가리아 / 영국 / 시카고 / 탐
파 / 벤쿠버 / 네바다 / 오스틴
BESPIN GLOBAL
서울 / 베이징 / 상하이 / 항저우 / 싱
가포르 / 두바이
2019년 두바이, 싱가포르, 미국으로 영역 확장
Bespin MEA
Bespin SEA
Bespin China
Bespin Korea
800+
직원 수
한국,중국,북미,유럽의클라우드전문
네트워크를통해글로벌환경에도
유연하게대응할수있습니다.
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
7
Bespin with AWS
Solutions Architect - Professional
DevOps Engineer- Professional
Solutions Architect - Associate
SysOps Administrator- Associate
Developer- Associate
국내 최다 AWS 인증 자격 보유국내 최초 AWS MSP 파트너 획득
국내 최초 AWS 마이그레이션 컴피턴시 획득
AWS 프리미어 최고 등급 파트너
국내 최초 AWS 머신러닝 컴피턴시 획득
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
8
CICD와 배포 Pipeline(1/2)
Source
개발된 코드의 집합체
Build
서버에서 실행할 수 있는 독
립된 형태로 반환
Test
배포될 환경에 문제 없이 기
능하는지 확인
Deploy
대상 서버에 어플리케이션을
전달
Production
과정을 반복하여 제품을 완성
CI (Continuous Integration)
• 지속적 통합
• 개발된 소스를 지속적으로 모으는 작업
• Source-Test 단계에서 반복적으로 이루어짐
• 참여자 간의 협업과 소스의 보안이 중요
CD (Continuous Delivery/
Continuous Deployment)
• 지속적 전달
• 소스를 빌드 테스트 후, 대상 서버에 전달하는 작업
• Source-Deploy 단계가 반복적으로 이루어짐
• 소스와 빌드 결과물/적절한 테스트 환경 제공/대상 서버
에 성공적으로 전달하는 것이 중요
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
9
CICD와 배포 Pipeline (2/2)
Source Build Test Deploy Production
CodeCommit
Open
Source
CodeBuild CodeDeploy
EC2 ECS
Lambda
Git
GitHub
GitBucket
Jenkins Travis CI
Ansible Terraform Server Cloud
위 단계를 지속적으로 반복하여 완성도 높은 소프트웨어를 개발할 수 있습니다.
위 Tool을 통해 CI/CD 각 단계를 신속하게 실행할 수 있습니다.
각 단계 별로 새로운 환경이나 고립된 환경이 요구됩니다.
AWS와 같은 Cloud 서비스는 새로운/고립된 신속하게 제공함으로써 시간 및 비용 효율적입니다.
CodeBuild
Jenkins
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
10
AWS 서비스 소개: CodeCommit
CodeCommit
Git과 비슷한 서비스
AWS CLI와 Git을 통해 소스를 Commit/Push 할 수 있습니다.
Git의 표준 기능 지원, HTTPS, SSH
암호화
보관 및 전송 중에도 암호화 지원
비용
사용자/스토리지/Git 요청
최초 5명 이후 추가되는 활성 사용자당 매달 1.00 USD
클라우드에서 자산(예: 문서, 소스 코드, 바이너리 파일)을 비공개로 저장하여 관리할 수 있도록 AWS에서
호스팅 되는 버전 관리 서비스
AWS의 소스 저장소
1
2
3
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
11
AWS 서비스 소개: CodeBuild
CodeCommit
CodeBuild
빌드를 위한 고립된 환경을 제공
관리형 이미지(AWS Linux/Ubuntu), Docker
빌드하는 서버의 스펙 변경 가능
지속적 크기 조정
빌드 요청에 따라 자동으로 확장/축소
빌드가 제출될 때마다 즉각 처리
보안
빌드 결과물이 KMS로 암호화 되어 관리
소스 코드를 컴파일하고 단위 테스트를 실행하며 배포할 준비가 완료된 아티팩트를 생성
AWS의 고립된 빌드 환경
1
2
3
4 비용
빌드에 사용되는 인스턴스의 사용 시간(분)에 따
라 과금
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
12
AWS 서비스 소개: CodeDeploy
CodeCommit
CodeBuild
CodeDeploy
서버, 서버리스 및 컨테이너 애플리케이션
EC2/Lambda/ECS
확장성: 인스턴스 한 개 또는 수천 개에 배포
가동 중지 최소화
배포 시 오프라인 상태가 될 수 있는 인스턴스
수를 지정
in-place&블루/그린
테스트를 완료한 직후 이러한 인스턴스로 트래
픽이 다시 라우팅
롤백
자동 또는 수동으로 배포를 중지하고 롤백
AWS 및 온프레미스 컴퓨팅 자원에 애플리케이션 자동 배포 서비스
AWS의 컴퓨팅 서비스 배포
1
2
3
4 중앙 집중식 제어
AWS 콘솔 또는 AWS CLI를 통해 배포 상태를 시
작 및 추적
5 비용
AWS 서비스 배포 시 추가적인 비용 발생 안함
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
13
AWS 서비스 소개: CodeDeploy – 배포 유형
CodeCommit
CodeBuild
CodeDeploy
in-place&블루/그린
1) in-place
CodeDeploy Agent
ELB
Group A Group B
배포 진행 서비스 제공
CodeDeploy Agent
ELB
Group A Group B
배포 진행서비스 제공
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
14
AWS 서비스 소개: CodeDeploy – 배포 유형
CodeCommit
CodeBuild
CodeDeploy
in-place&블루/그린
1) in-place
CodeDeploy Agent
ELB
Group A Group B
배포 진행 서비스 제공
CodeDeploy Agent
ELB
Group A Group B
배포 진행서비스 제공
사용 불가능 사용 불가능
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
15
AWS 서비스 소개: CodeDeploy – 배포 유형
CodeCommit
CodeBuild
CodeDeploy
in-place&블루/그린
2) 블루/그린
CodeDeploy Agent
ELB
Group A
배포 진행서비스 제공
CodeDeploy Agent
ELB
Group A Group A’
CodeDeploy Agent
ELB
Group A Group A’
서비스 제공
복제
서비스 제공연결 제거
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
16
AWS 서비스 소개: CodeDeploy – 배포 구성
CodeCommit
CodeBuild
CodeDeploy
in-place 기준
1) OneAtTime
CodeDeploy Agent
서비스배포 서비스 서비스
한번에 하나의 인스턴스
배포 시간 ↑
서비스 제공 ↑
서비스 서비스
CodeDeploy Agent
배포배포 서비스 서비스
한번에 절반의 인스턴스
배포 시간 -
서비스 제공 -
서비스 서비스
2) HalfAtTime
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
17
AWS 서비스 소개: CodeDeploy – 배포 구성
CodeCommit
CodeBuild
CodeDeploy
in-place 기준
3) AllAtTime
CodeDeploy Agent
배포배포 배포 배포
한번에 모든 인스턴스
배포 시간 ↓
서비스 제공 ↓
배포 서비스
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
18
AWS 서비스 소개: CodePipeline
CodeCommit
CodeBuild
CodeDeploy
CodePipeline
소프트웨어 릴리스 프로세스를 구성하는 여러 단계를 신속하게 모델링하고 구성
AWS의 CI/CD Pipeline을 신속하게 구축해주는 도구
빠른 구축
AWS의 CI/CD도구(CodeCommit/CodeBuild/CodeDeploy)를
빠르게 구축
Trriger
CodeCommit에 소스를 업데이트 했을 때 즉각적
인 빌드&배포 실행 가능
비용
사용 중인 Pipeline 당 1 USD
1
2
3
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
19
AWS 다중 계정 사용(1/3)
Users
!
AWS Cloud A
CodeCommit CodeBuild S3
ELB
Deploy Target A
Deploy Target B
Deploy Target C
ELB
ELB
CodeDeploy Agent
CodeDeploy Agent
CodeDeploy Agent
CodePipeline
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
20
AWS 다중 계정 사용(2/3)
CodeCommit CodeBuild S3
ELB Deploy
Target A
Deploy
Target B
Deploy
Target C
ELB
ELB
CodeDeploy Agent
CodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Dev
CodeCommit CodeBuild S3
ELB Deploy
Target A
Deploy
Target B
Deploy
Target C
ELB
ELB
CodeDeploy Agent
CodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Test
CodeCommit CodeBuild S3
ELB Deploy
Target A
Deploy
Target B
Deploy
Target C
ELB
ELB
CodeDeploy Agent
CodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Product
관리자&운영자개발자
관리
개발 및 구축 테스트 환경 구축 배포
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
21
AWS 다중 계정 사용(3/3)
단일 계정 다중 계정
모니터링
▶◀
보안
▶◀
편리함
▶◀
비용 파악 어려움
개발/테스트/운영 등 서버가 한 계정에 존
해 할 경우 각 비용의 파악이 어려움
비용 파악 명확함
개발/테스트/운영 등 계정을 별도로 운영
할 경우 각 사용 비용이 명확함
계정 노출 위험 높음
계정이 노출될 경우 개발/테스트/운영 모
든 서버가 노출
계정 노출 위험 낮음
개발/테스트/운영 중 한 계정이 노출되어
도 다른 계정 보호 가능
여러 계정에 별도 접근
여러 계정에 별도의 계정으로 접근해야 함
매번 로그인하는 비효율 발생
역할 전환 사용
역할 전환을 통해 여러 계정에 쉽게 접근
가능
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
22
AWS 다중 계정: 계정 관리
CodeCommit CodeBuild S3
ELB Deploy
Target A
Deploy
Target B
Deploy
Target C
ELB
ELB
CodeDeploy Agent
CodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Dev
CodeCommit CodeBuild S3
ELB Deploy
Target A
Deploy
Target B
Deploy
Target C
ELB
ELB
CodeDeploy Agent
CodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Product
개발자
IAM 계정 생성
AWS Cloud A
IAM
IAM User
Dev, Product
접근 권한
Role
Role
로그인
역할 전환
역할 전환
Role
Assume_Role:
신뢰 관계 생성
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
23
AWS 다중 계정: 배포 구성
Users
!
AWS Cloud A
CodeCommit CodeBuild S3
Deploy Target A
ELBCodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Dev
AWS Cloud Product
Deploy Target B
ELB
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
24
AWS 다중 계정: 배포 구성
Users
!
AWS Cloud A
CodeCommit CodeBuild S3
Deploy Target A
ELBCodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Dev
AWS Cloud Product
Deploy Target B
ELB
트리거
빌드 시작
소스 Push
CodeBuild
Instance
빌드 인스턴스
생성
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
25
AWS 다중 계정: 배포 구성
Users
!
AWS Cloud A
CodeCommit CodeBuild S3
Deploy Target A
ELBCodeDeploy Agent
CodeDeploy Agent
CodePipeline
AWS Cloud Dev
AWS Cloud Product
Deploy Target B
ELB
S3 업로드소스 접근
CodeBuild
Instance 403 Error!
-> Codebuild에
KMS 권한 추가
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
26
AWS 다중 계정: 배포 구성
Users
!
AWS Cloud A
CodeCommit CodeBuild S3
Deploy Target A
ELB
CodePipeline
AWS Cloud Dev
AWS Cloud Product
Deploy Target B
ELB
CodeBuild
Instance
배포
배포 실행
S3 접근
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
27
AWS 다중 계정: 배포 구성
Users
!
AWS Cloud A
CodeCommit CodeBuild S3
Deploy Target A
ELB
CodePipeline
AWS Cloud Dev
IAM
KMS Key&
Dev 계정
접근 정책
S3: 빌드 결과물 암호화
Pipeline: Dev 계정 권한 임시토큰 발급
1
1
1
2
IAM
EC2: S3 리스트/KMS 복호화 및 암호화
1
CodeDeploy: 배포, S3 권한 및 A계정 신뢰 관계
2
CodeBuild: S3 접근 권한
2
2
Copyright © 2020 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential
http://www.bespinglobal.com
28
Demo-아키텍처 구성
Users A
Dev CICD Production
Private subnetPublic subnet
AZ-A
Private subnetPublic subnet
AZ-C
Development Deployment&OperationSource Integration&Build
Local Server
1. 간단한 Web Application을 수정합니다.
2. 해당 소스를 Push 합니다.
3. Pipeline을 통해 배포를 실행합니다.
4. EC2에 In-place 으로 배포합니다
5. 수정된 Web Application을 확인합니다
Description
📺 웨비나 다시보기: https://www.youtube.com/watch?v=F5ZPD3Z53so
[문의] 📞1668-1280 ✉ info_aws@bespinglobal.com

[웨비나] 다중 AWS 계정에서의 CI/CD 구축

  • 1.
    강사소개 베스핀글로벌 윤병호 매니저 윤병호매니저는 베스핀글로벌의 클라우드 엔지니어로 빅데이터 관련 프로젝트의 실무를 담당하고 있습니다. 주로 인프라 구축, 배포 환경 구축 등의 업무를 담당하고 있으며 여러 프로젝트에서 SA, AA 역할로 참여했습니다.
  • 2.
    다중 AWS 계정에서의CI/CD 구축 베스핀글로벌 윤병호 매니저
  • 3.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 3 Webinar Target 다음 대상자를 목표로 구성된 webinar 입니다. Target A - 여러 계정에 CICD 구축이 필요한 AA(Application Architect) Target C - 다중 계정을 사용한 역할 관계 이해 Target B - AWS 환경에서 배포 자동화 Target D - AWS 에서 개발 환경을 구축 - AWS 가 궁금하신 분
  • 4.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 4 Webinar 내용 & Prerequisite Webinar는 다음과 같은 내용을 담고 있고 몇가지 선수 지식이 필요합니다 CONTENTS A 다중 계정에서 EC2 배포 자동화를 구축 한 계정에서 여러 계정에 배포할 수 있습니다. CONTENTS B AWS에서 여러 계정을 사용하는 방법 AWS에서 시스템을 구축할 때 여러 계정을 사용할 수 있습니다. CONTENTS C CodePipeline을 통해 배포 단계 구축 Demo를 통해 CodePipeline으로 배포 단계를 구축할 수 있습니다. Prerequisite - Ubuntu - Git/Jenkins - EC2/AutoScaling/ELB/IAM - Security Groups - CI/CD
  • 5.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 5 Who is Bespin Global? 베스핀글로벌은가장믿을만하고실력있는클라우드매니지드서비스공급자(MSP) 입니다. 퍼블릭 클라우드 MSP 부문 한중일 최초 3년 연속 등재 한국의 주목할만한 유니콘 국내 매니지드 서비스 기업 최초 ISO 인증 획득
  • 6.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 6 Global Bespin 글로벌 파트너 네트워크 프랑크푸르트 / 불가리아 / 영국 / 시카고 / 탐 파 / 벤쿠버 / 네바다 / 오스틴 BESPIN GLOBAL 서울 / 베이징 / 상하이 / 항저우 / 싱 가포르 / 두바이 2019년 두바이, 싱가포르, 미국으로 영역 확장 Bespin MEA Bespin SEA Bespin China Bespin Korea 800+ 직원 수 한국,중국,북미,유럽의클라우드전문 네트워크를통해글로벌환경에도 유연하게대응할수있습니다.
  • 7.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 7 Bespin with AWS Solutions Architect - Professional DevOps Engineer- Professional Solutions Architect - Associate SysOps Administrator- Associate Developer- Associate 국내 최다 AWS 인증 자격 보유국내 최초 AWS MSP 파트너 획득 국내 최초 AWS 마이그레이션 컴피턴시 획득 AWS 프리미어 최고 등급 파트너 국내 최초 AWS 머신러닝 컴피턴시 획득
  • 8.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 8 CICD와 배포 Pipeline(1/2) Source 개발된 코드의 집합체 Build 서버에서 실행할 수 있는 독 립된 형태로 반환 Test 배포될 환경에 문제 없이 기 능하는지 확인 Deploy 대상 서버에 어플리케이션을 전달 Production 과정을 반복하여 제품을 완성 CI (Continuous Integration) • 지속적 통합 • 개발된 소스를 지속적으로 모으는 작업 • Source-Test 단계에서 반복적으로 이루어짐 • 참여자 간의 협업과 소스의 보안이 중요 CD (Continuous Delivery/ Continuous Deployment) • 지속적 전달 • 소스를 빌드 테스트 후, 대상 서버에 전달하는 작업 • Source-Deploy 단계가 반복적으로 이루어짐 • 소스와 빌드 결과물/적절한 테스트 환경 제공/대상 서버 에 성공적으로 전달하는 것이 중요
  • 9.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 9 CICD와 배포 Pipeline (2/2) Source Build Test Deploy Production CodeCommit Open Source CodeBuild CodeDeploy EC2 ECS Lambda Git GitHub GitBucket Jenkins Travis CI Ansible Terraform Server Cloud 위 단계를 지속적으로 반복하여 완성도 높은 소프트웨어를 개발할 수 있습니다. 위 Tool을 통해 CI/CD 각 단계를 신속하게 실행할 수 있습니다. 각 단계 별로 새로운 환경이나 고립된 환경이 요구됩니다. AWS와 같은 Cloud 서비스는 새로운/고립된 신속하게 제공함으로써 시간 및 비용 효율적입니다. CodeBuild Jenkins
  • 10.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 10 AWS 서비스 소개: CodeCommit CodeCommit Git과 비슷한 서비스 AWS CLI와 Git을 통해 소스를 Commit/Push 할 수 있습니다. Git의 표준 기능 지원, HTTPS, SSH 암호화 보관 및 전송 중에도 암호화 지원 비용 사용자/스토리지/Git 요청 최초 5명 이후 추가되는 활성 사용자당 매달 1.00 USD 클라우드에서 자산(예: 문서, 소스 코드, 바이너리 파일)을 비공개로 저장하여 관리할 수 있도록 AWS에서 호스팅 되는 버전 관리 서비스 AWS의 소스 저장소 1 2 3
  • 11.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 11 AWS 서비스 소개: CodeBuild CodeCommit CodeBuild 빌드를 위한 고립된 환경을 제공 관리형 이미지(AWS Linux/Ubuntu), Docker 빌드하는 서버의 스펙 변경 가능 지속적 크기 조정 빌드 요청에 따라 자동으로 확장/축소 빌드가 제출될 때마다 즉각 처리 보안 빌드 결과물이 KMS로 암호화 되어 관리 소스 코드를 컴파일하고 단위 테스트를 실행하며 배포할 준비가 완료된 아티팩트를 생성 AWS의 고립된 빌드 환경 1 2 3 4 비용 빌드에 사용되는 인스턴스의 사용 시간(분)에 따 라 과금
  • 12.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 12 AWS 서비스 소개: CodeDeploy CodeCommit CodeBuild CodeDeploy 서버, 서버리스 및 컨테이너 애플리케이션 EC2/Lambda/ECS 확장성: 인스턴스 한 개 또는 수천 개에 배포 가동 중지 최소화 배포 시 오프라인 상태가 될 수 있는 인스턴스 수를 지정 in-place&블루/그린 테스트를 완료한 직후 이러한 인스턴스로 트래 픽이 다시 라우팅 롤백 자동 또는 수동으로 배포를 중지하고 롤백 AWS 및 온프레미스 컴퓨팅 자원에 애플리케이션 자동 배포 서비스 AWS의 컴퓨팅 서비스 배포 1 2 3 4 중앙 집중식 제어 AWS 콘솔 또는 AWS CLI를 통해 배포 상태를 시 작 및 추적 5 비용 AWS 서비스 배포 시 추가적인 비용 발생 안함
  • 13.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 13 AWS 서비스 소개: CodeDeploy – 배포 유형 CodeCommit CodeBuild CodeDeploy in-place&블루/그린 1) in-place CodeDeploy Agent ELB Group A Group B 배포 진행 서비스 제공 CodeDeploy Agent ELB Group A Group B 배포 진행서비스 제공
  • 14.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 14 AWS 서비스 소개: CodeDeploy – 배포 유형 CodeCommit CodeBuild CodeDeploy in-place&블루/그린 1) in-place CodeDeploy Agent ELB Group A Group B 배포 진행 서비스 제공 CodeDeploy Agent ELB Group A Group B 배포 진행서비스 제공 사용 불가능 사용 불가능
  • 15.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 15 AWS 서비스 소개: CodeDeploy – 배포 유형 CodeCommit CodeBuild CodeDeploy in-place&블루/그린 2) 블루/그린 CodeDeploy Agent ELB Group A 배포 진행서비스 제공 CodeDeploy Agent ELB Group A Group A’ CodeDeploy Agent ELB Group A Group A’ 서비스 제공 복제 서비스 제공연결 제거
  • 16.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 16 AWS 서비스 소개: CodeDeploy – 배포 구성 CodeCommit CodeBuild CodeDeploy in-place 기준 1) OneAtTime CodeDeploy Agent 서비스배포 서비스 서비스 한번에 하나의 인스턴스 배포 시간 ↑ 서비스 제공 ↑ 서비스 서비스 CodeDeploy Agent 배포배포 서비스 서비스 한번에 절반의 인스턴스 배포 시간 - 서비스 제공 - 서비스 서비스 2) HalfAtTime
  • 17.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 17 AWS 서비스 소개: CodeDeploy – 배포 구성 CodeCommit CodeBuild CodeDeploy in-place 기준 3) AllAtTime CodeDeploy Agent 배포배포 배포 배포 한번에 모든 인스턴스 배포 시간 ↓ 서비스 제공 ↓ 배포 서비스
  • 18.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 18 AWS 서비스 소개: CodePipeline CodeCommit CodeBuild CodeDeploy CodePipeline 소프트웨어 릴리스 프로세스를 구성하는 여러 단계를 신속하게 모델링하고 구성 AWS의 CI/CD Pipeline을 신속하게 구축해주는 도구 빠른 구축 AWS의 CI/CD도구(CodeCommit/CodeBuild/CodeDeploy)를 빠르게 구축 Trriger CodeCommit에 소스를 업데이트 했을 때 즉각적 인 빌드&배포 실행 가능 비용 사용 중인 Pipeline 당 1 USD 1 2 3
  • 19.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 19 AWS 다중 계정 사용(1/3) Users ! AWS Cloud A CodeCommit CodeBuild S3 ELB Deploy Target A Deploy Target B Deploy Target C ELB ELB CodeDeploy Agent CodeDeploy Agent CodeDeploy Agent CodePipeline
  • 20.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 20 AWS 다중 계정 사용(2/3) CodeCommit CodeBuild S3 ELB Deploy Target A Deploy Target B Deploy Target C ELB ELB CodeDeploy Agent CodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Dev CodeCommit CodeBuild S3 ELB Deploy Target A Deploy Target B Deploy Target C ELB ELB CodeDeploy Agent CodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Test CodeCommit CodeBuild S3 ELB Deploy Target A Deploy Target B Deploy Target C ELB ELB CodeDeploy Agent CodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Product 관리자&운영자개발자 관리 개발 및 구축 테스트 환경 구축 배포
  • 21.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 21 AWS 다중 계정 사용(3/3) 단일 계정 다중 계정 모니터링 ▶◀ 보안 ▶◀ 편리함 ▶◀ 비용 파악 어려움 개발/테스트/운영 등 서버가 한 계정에 존 해 할 경우 각 비용의 파악이 어려움 비용 파악 명확함 개발/테스트/운영 등 계정을 별도로 운영 할 경우 각 사용 비용이 명확함 계정 노출 위험 높음 계정이 노출될 경우 개발/테스트/운영 모 든 서버가 노출 계정 노출 위험 낮음 개발/테스트/운영 중 한 계정이 노출되어 도 다른 계정 보호 가능 여러 계정에 별도 접근 여러 계정에 별도의 계정으로 접근해야 함 매번 로그인하는 비효율 발생 역할 전환 사용 역할 전환을 통해 여러 계정에 쉽게 접근 가능
  • 22.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 22 AWS 다중 계정: 계정 관리 CodeCommit CodeBuild S3 ELB Deploy Target A Deploy Target B Deploy Target C ELB ELB CodeDeploy Agent CodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Dev CodeCommit CodeBuild S3 ELB Deploy Target A Deploy Target B Deploy Target C ELB ELB CodeDeploy Agent CodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Product 개발자 IAM 계정 생성 AWS Cloud A IAM IAM User Dev, Product 접근 권한 Role Role 로그인 역할 전환 역할 전환 Role Assume_Role: 신뢰 관계 생성
  • 23.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 23 AWS 다중 계정: 배포 구성 Users ! AWS Cloud A CodeCommit CodeBuild S3 Deploy Target A ELBCodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Dev AWS Cloud Product Deploy Target B ELB
  • 24.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 24 AWS 다중 계정: 배포 구성 Users ! AWS Cloud A CodeCommit CodeBuild S3 Deploy Target A ELBCodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Dev AWS Cloud Product Deploy Target B ELB 트리거 빌드 시작 소스 Push CodeBuild Instance 빌드 인스턴스 생성
  • 25.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 25 AWS 다중 계정: 배포 구성 Users ! AWS Cloud A CodeCommit CodeBuild S3 Deploy Target A ELBCodeDeploy Agent CodeDeploy Agent CodePipeline AWS Cloud Dev AWS Cloud Product Deploy Target B ELB S3 업로드소스 접근 CodeBuild Instance 403 Error! -> Codebuild에 KMS 권한 추가
  • 26.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 26 AWS 다중 계정: 배포 구성 Users ! AWS Cloud A CodeCommit CodeBuild S3 Deploy Target A ELB CodePipeline AWS Cloud Dev AWS Cloud Product Deploy Target B ELB CodeBuild Instance 배포 배포 실행 S3 접근
  • 27.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 27 AWS 다중 계정: 배포 구성 Users ! AWS Cloud A CodeCommit CodeBuild S3 Deploy Target A ELB CodePipeline AWS Cloud Dev IAM KMS Key& Dev 계정 접근 정책 S3: 빌드 결과물 암호화 Pipeline: Dev 계정 권한 임시토큰 발급 1 1 1 2 IAM EC2: S3 리스트/KMS 복호화 및 암호화 1 CodeDeploy: 배포, S3 권한 및 A계정 신뢰 관계 2 CodeBuild: S3 접근 권한 2 2
  • 28.
    Copyright © 2020BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 28 Demo-아키텍처 구성 Users A Dev CICD Production Private subnetPublic subnet AZ-A Private subnetPublic subnet AZ-C Development Deployment&OperationSource Integration&Build Local Server 1. 간단한 Web Application을 수정합니다. 2. 해당 소스를 Push 합니다. 3. Pipeline을 통해 배포를 실행합니다. 4. EC2에 In-place 으로 배포합니다 5. 수정된 Web Application을 확인합니다 Description
  • 29.
    📺 웨비나 다시보기:https://www.youtube.com/watch?v=F5ZPD3Z53so [문의] 📞1668-1280 ✉ info_aws@bespinglobal.com