*스택 상호 연결(CloudFormation)
- export
- import
*스택 업데이트하기
- 중단 없이 업데이트
- 일부 중단으로 업데이트
- 교체
*변경 사항 세트(Change Sets)
- 스택에 대해 제안된 변경 사항을 미리 확인
*CloudFormation 스택 세트
- 단일 작업으로 복수 계정 및 리전의 스택을 생성, 업데이트 또는 삭제
*CloudFormation Helper 스크립트
- CLI 명령어
- cfn-init
- cfn-hup
- cfn-signal
- cfn-get-metadata
*스택 정책
*스택 정책을 통한 스택 리소스 보호
*DeletionPolicy
- 스택이 삭제될 때 리소스를 보존하거나 백업하는 속성
*스택 정책 활용
*Autoscaling ?
*MadLibs ?
*DBTier ?
*AppTier ?
*AWS Toolkit
*소스 코드 관리 옵션
- CodeCommit (관리가 필요 없음, 본질적으로 아키텍쳐의 가용성이 높음, 본질적으로 데이터의 내구성이 뛰어남)
- 자체 Git 리포지토리를 설정, 운영 및 관리
- GitHub 또는 BitBucket과 같은 호스팅 서비스 사용
*CodeCommit
- CLI 설치
- create-repository 명령
- 리포지토리 연결
- 엑세스 제어
*CodeCommit에 대한 액세스 제어
- AWSCodeCommitFullAccess
- PowerUser
- ReadOnly
- 자체 정책을 생성
*암호화 + AWS CodeCommit = 보안
*Git 리포지토리에서 AWS CodeCommit으로 마이그레이션
*빌드
*마스터 분기
https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/
* Production branch with GitLab flow
*Git 후크 사용
- 후크는 이벤트 기반
- 특정 git 명령이 이벤트 전 스크립트 실행을 트리거
- 스타일 가이드 준수, 코드 건전성 검사
- 클라이언트 측 후크
- 커밋 주체의 컴퓨터 상에서 호출
- 서버측 후크 : 푸시 수신 시 서버에서 검사 수행
*풀 요청
- 협력을 통해 한 브랜치에서 다른 브랜치로의 코드 변경을 검토 및 병합
- 작업 브랜치와 대상 브랜치 사이의 비교를 확인
- 주석을 반영하여 풀 요청을 업데이트
- 리포지토리 알림은 새로운 풀 요청을 알릴 수 있음
*지속적 통합 자동화
- 서버 측 후크와 CI 서버를 함께 사용하여 저항을 최소화하고 통합 속도를 높인다.
*CI서버의 확장성 문제
- Jenkins를 CI 서버로 사용하는 것이 좋은 방안이지만
- 다음을 책임져야 한다.
- Jenkins 클러스터 설정
- 클러스터 보안 유지
*CodeBuild 기반 확장형 CI 솔루션
*CI
- Continuous Integration
*빌드를 어떻게 계획?
- 소스 코드 위치 식별
*빌드 사양 YAML 파일 생성
- 빌드 단계에서 사용되는 변수
- 각 빌드의 단계
- 빌드 명령어
- 빌드 후 명령
- Amazon S3 버킷에 아티팩트 출력
*빌드 보안
- 빌드 리소스에 액세스하려면 권한 필요
- AWS CodeBuild 전용 AWS 관리형 정책
*CI서버로서 Jenkins 사용
- Jenkins 보안 취약
- Jenkins는 외부에 노출시키지 않도록 해야한다.
*Active Directory
*Jenkins CI 서버 자동 조정
- 과부하가 발생할 경우 Jenkins 마스터가 빌드를 슬레이브 노드로 전가
- Jenkins 마스터에 EC2 플러그인이 설치되어 있는 경우, 마스터가 새 EC2 인스턴스를 자동으로 시작하고 이를 Jenkins 슬레이브로 연결
- 로드가 줄어들면 Jenkins 마스터가 자동으로 추가 슬레이브 인스턴스를 종료
*CodeDeploy를 통한 배포
- AppSpec 구성파일
- CodeDeploy 배포 그룹
*배포 구성
- one at time
- half at time
- all at once
*AppSpec 파일
- windows 및 linux 지원
*수명 주기 이벤트
- 제어 권한이 있는 이벤트
- 제어 권한이 없는 이벤트
*후크와 인스턴스 상태 통합
- 로드 밸런서
- Auto Scaling 그룹
*CodeDeploy 액세스 관리
*트리거를 사용한 배포 모니터링
*Beanstalk
*SSH
*DNS
*stack
https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html
*php 언어
- eb create
- eb deploy
- eb terminate
*Beanstalk
- 코드 배포, 인프라 프로비저닝 및 관리 걱정 해소
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/Welcome.html
*Elastic Beanstalk
*환경 생성
*환경 구성 우선순위
*EB CLI를 통한 애플리케이션 배포
*지원되는 배포 옵션
*CodePipeline
- 지속적 전달 (수동 승인 기능도 있음)
*CodePipeline 핵심 개념
*CodePipeline 작업
*3단계 파이프라인
*병렬
*순차
*수동 승인
*IaC 방식
*파이프라인에서 Lambda 사용
*SAM을 통한 서버리스 애플리케이션 배포
*서버리스 애플리케이션 리포지토리
*파이프라인에서 다른 계정의 리소스 사용
*교차 리전/교차 계정 파이프라인 생성
*파이프라인에서의 아티팩트 암호화
- SSE를 S3 관리형 키와 함께 사용하여 암호화
*파이프라인과 Jenkins 통합
*CI/CD 파이프라인을 설계할 때 고려 사항
*전달 및 배포의 패턴과 안티 패턴
*AWS CodeStar
*CodeStar 대시보드
- 백로그
- 팀 wiki
*CodeStar 프로젝트 팀
*CloudCraft
'스타트업 > AWS' 카테고리의 다른 글
[AWS] 마이크로 서비스 (0) | 2020.02.18 |
---|---|
[AWS] DevOps #4 (0) | 2020.02.14 |
[AWS] DevOps #2 (0) | 2020.02.13 |
[AWS] DevOps (0) | 2020.02.12 |
[AWS] Amazon Elastic File System(EFS) (0) | 2020.01.08 |