배포 자동화(Automated Deployment)
- 배포 자동화: 배포 과정을 자동으로 진행하는 것
- 수동적이고 반복적인 배포 과정을 자동화함으로써 시간을 절약
- 휴먼 에러(Human Error)를 방지, 사람이 수동 배포를 진행하던 중 생기는 실수
- 배포 자동화 파이프라인
- 파이프라인: 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조
- 배포 과정을 여러 단계로 분리, 파이프라인에서 순차적으로 실행, 단계마다 주어진 작업을 실행
- 대표적으로 쓰이는 3단계
- Source stage: 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달
- Build stage: Source stage에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공하고 다음 단계로 전달
- Deploy stage: Build stage에서 전달받은 결과물을 실제 서비스에 반영
- 파이프라인의 단계는 상황과 필요에 따라 더 세분화 또는 간소화 될 수 있음
-
AWS 개발자 도구
-
CodeCommit
- Source stage를 구성할 때 사용, GitHub과 유사한 서비스를 제공하는 버전 관리 도구
- GitHub에 비하여 보안에 강점, 과금 우려
- 사이드 프로젝트나 가벼운 소스 코드는 GitHub을 이용하는 것이 효과적
-
CodeBuild
- Build stage에서 사용
- 유닛 테스트, 컴파일, 빌드 등의 작업을 명령어를 통해 실행할 수 있음
-
CodeDeploy
- Deploy stage에서 사용
- 실행되고 있는 서버 애플리케이션에 실시간으로 변경 사항 전달 가능
- S3 버킷을 통해 업로드 된 정적 웹 사이트에 변경 사항을 실시간을 전달, 반영이 가능
-
CodePipeline
- 각 단계를 연결하는 파이프라인을 구축할 때 사용
CI/CD
Client Deployment Pipeline
Server Deployment Pipeline
- EC2 인스턴스에 태그와 역할 부여
- EC2를 활용한 파이프라인 구축
환경 변수 설정
- 클라이언트 환경 변수 설정
- 서버 환경 변수 설정
IAM
- IAM 서비스 이용 모범 사례는?
- 정답은 'A. 루트 사용자 계정을 사용하지 않는다.' 입니다.
일상 및 관리 작업에는 권한이 있는 IAM User 계정을 사용하는 것이 바람직합니다.
- B. 실제 사용자 한 명을 위해 여러 user를 생성하는 것은 바람직하지 않습니다. 하나의 user 계정을 정확하게 설정하는 것이 좋습니다.
- C. 자격 증명을 공유하는 것은 바람직하지 않습니다.
- D. MFA(Multi-Factor Authentication)란 사용자 이름 및 암호 위에 추가 보호 계층을 추가하는 서비스입니다. 보안을 위해 활성화하는 것이 바람직합니다.
- IAM Role에 대한 정의로 가장 올바른 것은?