
- IAM
- S3
- CI/CD
- VPC 구성
- Elastic Beanstalk 구성

AWS Identity and Access Management(IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스. IAM을 사용하여 리소스를 사용하도록
인증(로그인)및권한 부여(권한 있음)된 대상을 제어한다.
- AWS 계정을 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 단일 로그인 ID로 시작한다. 이 자격 증명은 AWS 계정 루트 사용자라고 하며, 계정을 생성할 때 사용한 이메일 주소와 암호로 로그인하여 액세스한다.
- 일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장
IAM 정책이란 한 마디로 '무엇을 할 수 있는가?' 를 말한다. 정책은 사용자, 사용자 그룹, 역할에 각각 매핑하여 주체별로 사용하거나 접근할 수 있는 리소스를 제어한다.



Amazon Simple Storage Service (Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스이다.
모든 규모와 업종의 고객은 S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를 저장하고 보호할 수 있다.
S3는 특정 비즈니스, 조직 및 규정 준수 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능도 제공한다.


우리가 만든 애플리케이션을 자동적으로 빌드하고 배포하는 것을 말한다.
- 지속적 통합(Continuous Integration) : 모든 개발자가 개발한 코드를 공유 리포지토리에 하루에도 여러번 코드를 커밋하고 병합
- 지속적 전달(Continuous Delivery/Deployment) : 개발팀이 짧은 주기로 소프트웨어를 개발하고 언제든지 운영환경으로 안정적으로 배포


- AWS CodeCommit는 클라우드에서 자산(소스코드, 바이너리 파일)을 비공개로 저장하여 관리하는 데 사용할 수 있도록 Amazon Web Services에서 호스팅되는 버전 관리 서비스. Github의 Repository와 기능이 비슷하다.


AWS CodeBuild는 클라우드 상의 완전관리형 빌드 서비스로 소스 코드를 컴파일하고 단위 테스트를 실행하며 배포 준비가 완료된 아티팩느를 생성한다. 자체 빌드 서버를 프로비저닝, 관리 및 확장할 필요가 없고 Maven, Gradle 등 널리 사용되는 프로그래밍 언어 및 빌드 도구에 맞게 사전 패키지된 빌드 환경을 제공한다.
- CodeBuild는 빌드 환경을 사용자 지정하여 사용자 고유의 빌드 도구를 사용하고 최대 빌드 요청 수에 맞게 자동으로 확장한다.


CodeDeploy는 Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스로, 다음을 포함하여 다양한 애플리케이션 콘텐츠를 거의 무제한으로 배포 가능하다.
- 코드
- 서버리스 AWS Lambda 함수
- 웹 및 구성 파일
- Executables
- 패키지
- 스크립트
- 멀티미디어 파일
또한 CodeDeploy는 서버에서 실행되고 S3 버킷, Github Repository 또는 Bitbucket Repository에 저장되는 애플리케이션 콘텐츠를 배포 가능하다. 또한 서버리스 Lambda 함수도 배포 가능하고 이를 사용하기 위해 기존 코드를 변경할 필요가 없다는 장점이 있다.

AWS CodePipeline은 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리스 파이프라인을 자동화하는 데 도움이 되는 완전관리형의 지속적 전달 서비스이다.

여태 까지 학습한 AWS 서비스들을 조합해서 간단한 서비스의 구조를 만들어 본다면 다음과 같은 형태로 만들 수 있다.
