DevOps!! AWS CDK를 통해 코드로 안전하게 직접 만들어보기
<1> DevOps 알아보기
<2> AWS Cloud Development Kit (CDK)
<3> CDK 구성요소 3가지?
<4> 실습
<1> DevOps 알아보기
1
개발-검증-배포-운영 단계로 사용된다.
개발 조직
검증 조직
배포조직
운영조직
2
목표?
애플리케이션, 서비스를 빠른 속도로 제공하는 것이다.
3
문화, 방식, 도구를 통해 구현한다.
4
문화?
개발과 운영은 함께해야 한다.
단일팀이 될 수도 있다.
5
방법?
마이크로 서비스 기반 개발 -> 자율, 빠름
코드 기반 인프라 운영 -> 재사용, 자동화
지속적인 통합, 배포 -> 품질, 속도
모니터링 및 로깅 - 통찰력 , 잘 돌고 있는지?
6
도구?
CI CD Pipeline 사용
개발자 도구 제공 - 콘솔, CLI , SDK , 테라폼, 클라우드 포메이션, CDK 사용
<2> AWS Cloud Development Kit (CDK)
1
Infrastructure as Code (IaC)?
클라우드 리소스들에 대한 구성과 배포를 코드로 관리하는 방법.
대상 : 네트워크, 컴퓨팅, 데이터베이스, 보안, 모니터링, IOT, AI/ML
자동화하는 것
휴먼 에러 제거
2
AWS IaC 도구는?
AWS Cloudformation - yaml, jason로 클라우드 리소스들을 표현함
AWS Serverless Application Model (SAM) - 서버 리스 애플리케이션 개발을 더 간결하게, Cloudformation의 확장판.
AWS Cloud Development Kit (AWS CDK) - 친숙한 프로그래밍 언어를 활용하여 클라우드 리소스들을 쉽게 표현함.
3
AWS 리소스들의 구성과 배포를 익숙한 프로그래밍 언어로 정의한 것.
파이썬이나 자바 등으로 구현
4
이점?
https://aws.amazon.com/ko/cdk/
검증된 기본값으로 클라우드 리소스를 사전에 구성
더 빠른 개발 프로세스
조직의 보안, 규정 준수 및 거버넌스 요구 충족, 재사용 가능한 구성요소
애플리케이션 개발과 AWS 리소스 생성을 같은 IDE에서 할 수 있다.
5
CDK 동작 방식?
Stack가 Constructs로 코딩한다.
CLI라는 도구로 컴파일한다.
템플릿 만들어짐
Cloudformation으로 배포한다.
<3> CDK 구성요소 3가지?
1
3개로 구성된다.
Core Framework
AWS Construct Library
AWS CDK CLI
2
Core Framework?
Construct - 기본적인 리소스 블록 정의
Stack - 배포의 최소 단위
App - 스택들을 묶어 놓은 그룹
환경 - 환경을 설정, 타깃이 되는 계정이나 리전 정보를 가진다.
3
AWS Construct Library?
200여 개 서비스를 서비스를 클래스로 구현해 놓았다.
https://docs.aws.amazon.com/cdk/api/v1/docs/aws-construct-library.html
4
AWS CDK - CLI?
cdk init - 프로젝트를 생성하고
npm install
cdk list - 컴파일 이상 유무 확인하고, 스택을 확인
cdk synth
cdk diff - 변경사항이 있을 때 , 현재 추가한 기능과 배포의 차이
cdk deploy - 배포
cdk destroy - 잘못 배포된 것들 삭제
5
AWS CDK 개발 환경은?
AWS IAM user
CLI , 크리덴셜
node.js 설치 (노드로 되어 있다)
cdk toolkit
원하는 언어(파이썬 등)로 환경을 설정하면 된다.
6
CDK Version 2로 변경됨.
CDK version1은 2로 마이그레이션 해야 함.
https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html
7
AWS CDK -Ecosystem 3가지?
AWS CDK
Cloud Development Kit for Terraform
CDK for K8s
8
레파이토리 사이트들?
CDK 레파지토리?
https://aws.amazon.com/ko/solutions/constructs/patterns
AWS CDK, Cloud Development Kit for Terraform 등 모두 통합해서 모두 검색 가능
<4> 실습
1
https://github.com/aws-samples/aws-ecs-devops-using-aws-cdk
2
같이 볼만한 자료
https://www.youtube.com/watch?v=6i7DgQzYYAo
https://www.twitch.tv/videos/1070023684?collection=4wZXJvncHRaoEg
https://www.youtube.com/watch?v=kn2DBjZW5W8
다음 과정
https://brunch.co.kr/@topasvga/2694
https://brunch.co.kr/@topasvga/2678
감사합니다.