*AWS Config
- Config를 사용하여 자동화된 AWS IAM 정책 테스트 구축 및 실행하기
- Lambda 함수와 Python 스크립트를 사용하여 IAM 정책을 검사하여 비준수 정책을 찾는다.
*현재 위치(In-place) 배포
- 신속한 배포
- 저렴한 비용
*단계적 배포
- 무중단 업데이트 가능
*블루/그린 배포
- DNS 전환
- 현재 환경 : 블루
- 새 환경 : 그린
*EC2 Auto Scaling을 통한 블루/그린 배포
- Amazon 탄력적 로드 밸런서가 환경 경계 밖에 위치
- 제로 다운타임
- 사용자 정의 가능한 배포 시간
- 쉬운 롤백
- 다양한 도구들과 / 옵션 가능
*레드/블랙 배포 (새로운 시스템으로 전환)
*배포 전략 선택 시 비용 고려 사항
- 배포를 선택할 때는 비용을 고려해야 함
*배포 도구 요약
- AWS CloudFormation + 다른 것
- docker
- CodeDeploy
- OpsWorks
- Elastic Beanstalk
*CI/CD용 AWS 개발자 도구
- 코드(CodeCommit) -> 빌드(CodeBuild) -> 테스트(CodeBuild) -> 배포(CodeDeploy)
- 전체 단계 : CodePipeline
*호스팅된 소스 리포지토리
- Github
- Bitbucket
- Sourceforge
- Launchpad
*CodeCommit을 사용해야 하는 이유
- 싸다
- 저장 데이터 암호화
- S3를 사용해서 높은 내구성
*CI도구와 관련된 문제점
- 긴 빌드 시간
- 방대한 빌드 볼륨
- 종속성을 수반하는 복잡한 빌드
- 확장성 부재
- 개발자/QA 대기 시간
*AWS의 문제 해결 방식
- Spot Instance를 사용
- 자동 규모 조정으로 피크 빌드 요청 충족
*CodeDeploy로 할 수 있는 추가 조치
- 배포 다운타임을 단축
- IAM을 통한 CodeDeploy 액세스를 제한하고 제어
- 복수의 배포 전략 지원
*CodePipeline 이점
- 구성 가능한 워크플로우
- 손쉬운 통합
- 품질 향상
- 빠른 전달
- 빠르게 시작하기
*CodeStar
- PM 툴
*Cloud9
- 웹에서 사용하는 IDE
*코드형 인프라
- 인프라 생성, 업데이트 또는 삭제 프로세스를 자동화하는 방법
- 사용하는 이유 : 한마디로 자동화
- 비용 절감, 복수 환경 생성, 복수 고객에 대해 동일한 환경 생성
- 애플리케이션 소스 코드처럼 버전을 지정하여 관리할 수 있음
- 반복적으로 그리고 안정적으로 생성, 종료 및 재생성할 수 있음
- 최신 버전 애플리케이션을 테스트하기 위해 필요에 따라 인프라를 생성할 수 있음
*CloudFormation과 DevOps
*CloudFormation 템플릿의 구조
- 포맷 버전
- 설명
- 파라미터 : 템플릿에 대한 입력값
- 매핑 : region 정보
- 조건 : 특정 리소스가 생성되거나 업데이트되는 경우 가능
- 리소스 : 생성할 AWS 자원
- 출력 : 템플릿이 생성하는 사용자 지정 리소스 값
*CloudFormation 주요 기능
- Depends on : 누굴 먼저 켜야 하는지
- CreationPolicy : 특정 리소스를 "Create Complete" 로 표시하기 전에 CloudFormation 이 신호를 대기하는 시간을 정의
- UpdatePolicy : 변경 사항을 EC2 Auto Scaling 시작 구성에 적용할 때 리소스가 대체되는 방식을 정의
- DeletePolicy
*서버리스 컴퓨팅
- 서버리스는 운영상의 책임을 AWS로 전환하여 민첩성과 혁신을 높일 수 있도록 하는 클라우드의 네이티브 아키텍처입니다. 서버리스를 사용하면 서버를 고려하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있습니다. 서버 또는 클러스터 프로비저닝, 패치 적용, 운영 체제 유지 관리 및 용량 프로비저닝과 같은 인프라 관리 작업을 덜어냅니다. 거의 모든 유형의 애플리케이션 또는 백엔드 서비스를 서버리스로 구축할 수 있으며, 애플리케이션을 고가용성으로 실행하고 확장하는 데 필요한 모든 사항이 자동으로 처리됩니다.
- 서버리스를 통해 증가된 민첩성과 낮은 총 소유 비용을 통해 최신 애플리케이션을 빌드할 수 있습니다. 서버리스 애플리케이션을 빌드한다는 것은 개발자가 클라우드나 온프레미스의 서버 또는 런타임 관리와 운영에 대해 걱정하기보다는 핵심 제품에 집중할 수 있다는 뜻입니다. 이렇게 오버헤드가 줄어들면 개발자가 시간과 에너지를 확장 가능하고 안정적인 훌륭한 제품을 개발하는 데 사용할 수 있습니다.
*CloudFormation 병렬성
*CreationPolicy 속성
*사용자 정의 리소스
*사용자 정의 리소스 워크플로
*사용자 지정 리소스 Create 요청
*AWS Config
- Config를 사용하여 자동화된 AWS IAM 정책 테스트 구축 및 실행하기
- Lambda 함수와 Python 스크립트를 사용하여 IAM 정책을 검사하여 비준수 정책을 찾는다.
*현재 위치(In-place) 배포
- 신속한 배포
- 저렴한 비용
*단계적 배포
- 무중단 업데이트 가능
*블루/그린 배포
- DNS 전환
- 현재 환경 : 블루
- 새 환경 : 그린
*EC2 Auto Scaling을 통한 블루/그린 배포
- Amazon 탄력적 로드 밸런서가 환경 경계 밖에 위치
- 제로 다운타임
- 사용자 정의 가능한 배포 시간
- 쉬운 롤백
- 다양한 도구들과 / 옵션 가능
*레드/블랙 배포 (새로운 시스템으로 전환)
*배포 전략 선택 시 비용 고려 사항
- 배포를 선택할 때는 비용을 고려해야 함
*배포 도구 요약
- AWS CloudFormation + 다른 것
- docker
- CodeDeploy
- OpsWorks
- Elastic Beanstalk
*CI/CD용 AWS 개발자 도구
- 코드(CodeCommit) -> 빌드(CodeBuild) -> 테스트(CodeBuild) -> 배포(CodeDeploy)
- 전체 단계 : CodePipeline
*호스팅된 소스 리포지토리
- Github
- Bitbucket
- Sourceforge
- Launchpad
*CodeCommit을 사용해야 하는 이유
- 싸다
- 저장 데이터 암호화
- S3를 사용해서 높은 내구성
*CI도구와 관련된 문제점
- 긴 빌드 시간
- 방대한 빌드 볼륨
- 종속성을 수반하는 복잡한 빌드
- 확장성 부재
- 개발자/QA 대기 시간
*AWS의 문제 해결 방식
- Spot Instance를 사용
- 자동 규모 조정으로 피크 빌드 요청 충족
*CodeDeploy로 할 수 있는 추가 조치
- 배포 다운타임을 단축
- IAM을 통한 CodeDeploy 액세스를 제한하고 제어
- 복수의 배포 전략 지원
*CodePipeline 이점
- 구성 가능한 워크플로우
- 손쉬운 통합
- 품질 향상
- 빠른 전달
- 빠르게 시작하기
*CodeStar
- PM 툴
*Cloud9
- 웹에서 사용하는 IDE
*코드형 인프라
- 인프라 생성, 업데이트 또는 삭제 프로세스를 자동화하는 방법
- 사용하는 이유 : 한마디로 자동화
- 비용 절감, 복수 환경 생성, 복수 고객에 대해 동일한 환경 생성
- 애플리케이션 소스 코드처럼 버전을 지정하여 관리할 수 있음
- 반복적으로 그리고 안정적으로 생성, 종료 및 재생성할 수 있음
- 최신 버전 애플리케이션을 테스트하기 위해 필요에 따라 인프라를 생성할 수 있음
*CloudFormation과 DevOps
*CloudFormation 템플릿의 구조
- 포맷 버전
- 설명
- 파라미터 : 템플릿에 대한 입력값
- 매핑 : region 정보
- 조건 : 특정 리소스가 생성되거나 업데이트되는 경우 가능
- 리소스 : 생성할 AWS 자원
- 출력 : 템플릿이 생성하는 사용자 지정 리소스 값
*CloudFormation 주요 기능
- Depends on : 누굴 먼저 켜야 하는지
- CreationPolicy : 특정 리소스를 "Create Complete" 로 표시하기 전에 CloudFormation 이 신호를 대기하는 시간을 정의
- UpdatePolicy : 변경 사항을 EC2 Auto Scaling 시작 구성에 적용할 때 리소스가 대체되는 방식을 정의
- DeletePolicy
*서버리스 컴퓨팅
- 서버리스는 운영상의 책임을 AWS로 전환하여 민첩성과 혁신을 높일 수 있도록 하는 클라우드의 네이티브 아키텍처입니다. 서버리스를 사용하면 서버를 고려하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있습니다. 서버 또는 클러스터 프로비저닝, 패치 적용, 운영 체제 유지 관리 및 용량 프로비저닝과 같은 인프라 관리 작업을 덜어냅니다. 거의 모든 유형의 애플리케이션 또는 백엔드 서비스를 서버리스로 구축할 수 있으며, 애플리케이션을 고가용성으로 실행하고 확장하는 데 필요한 모든 사항이 자동으로 처리됩니다.
- 서버리스를 통해 증가된 민첩성과 낮은 총 소유 비용을 통해 최신 애플리케이션을 빌드할 수 있습니다. 서버리스 애플리케이션을 빌드한다는 것은 개발자가 클라우드나 온프레미스의 서버 또는 런타임 관리와 운영에 대입 해 걱정하기보다는 핵심 제품에 집중할 수 있다는 뜻입니다. 이렇게 오버헤드가 줄어들면 개발자가 시간과 에너지를 확장 가능하고 안정적인 훌륭한 제품을 개발하는 데 사용할 수 있습니다.
*CloudFormation 병렬성
*CreationPolicy 속성
*사용자 정의 리소스
*사용자 정의 리소스 워크플로
*사용자 지정 리소스 Create 요청
'스타트업 > AWS' 카테고리의 다른 글
[AWS] DevOps #4 (0) | 2020.02.14 |
---|---|
[AWS] DevOps #3 (0) | 2020.02.13 |
[AWS] DevOps (0) | 2020.02.12 |
[AWS] Amazon Elastic File System(EFS) (0) | 2020.01.08 |
[AWS] RAID (0) | 2020.01.07 |