지난 10월 초 AWS SAA 자격증을 취득했다🥳
아래는 시험을 준비하면서 정리한 내 노션 페이지!
https://puffy-jackfruit-1a7.notion.site/AWS-SAA-61543a30f81044ca8dec7100d5ce739c?pvs=4
정리한 내용의 대부분은 https://jwlish.tistory.com/ 님의 블로그에서
많이 가져와서 살을 붙였다. 감사합니다😊
이제 중간고사와 단기해외연수를 마치고 AWS 공홈 자습서에 있는
간단한 프로젝트들 먼저 따라해보려고 한다.
AWS Lambda, API Gateway, Amplify, DynamoDB, Cognito를 사용한다.
아키텍처 개요는 다음과 같다.

1. 모든 정적 웹 콘텐츠를 Amplify 콘솔에서 관리
사용자는 퍼블릭 웹사이트 URL을 사용해 해당 사이트에 액세스
2. AWS Cognito를 통해 사용자 인증/관리
3. API Gateway가 Lambda를 트리거하여 DynamoDB 테이블에 요청 기록, 프론트엔드에 반환
AWS Amplify 서비스를 사용해 정적 리소스 호스팅 단계
AWS Amplify란?

AWS에 풀스택 애플리케이션을 개발부터 배포까지 손쉽게 구축할 수 있도록 지원하는 서비스
AWS CodeCommit이란?

AWS에서 출시한 코드 관리 서비스. 동작 방식은 Git과 동일하다.

● 권한 부여 - 기존 정책 직접 연결

● AWSCodeCommitPowerUser 권한 추가
여기서 CodeCommit에 대한 정책을 살펴보겠다.
1. AWSCodeCommitFullAccess
CodeCommit에 대한 전체 액세스 권한 부여
리포지토리 삭제 기능을 포함하기 때문에 관리자 수준 사용자에게만 적용
2. AWSCodeCommitPowerUser
FullAccess와 같이 모든 기능과 리포지토리 관련 리소스에 액세스 가능
단, 리포지토리 삭제나 다른 AWS 서비스에서 리포지토리 관련 리소스를
생성 또는 삭제할 수 없음!
3. AWSCodeCommitReadOnly
리포지토리 관련 리소스에 대해 읽기 전용 액세스 권한 뿐만 아니라,
Git 자격 증명 및 SSH키와 같은 자체 CodeCommit 관련 리소스 생성/관리 권한을 가짐
저장소의 내용을 읽을 수 있지만 변경할 수 없는 권한을 부여하고 싶을 때
CodeCommit을 사용할 IAM 사용자로 로그인 후
보안 자격 증명 탭 -> AWS CodeCommit에 대한 HTTPS Git 자격 증명
-> 생성 -> 자격 증명 csv파일 다운로드
CodeCommit 콘솔로 돌아와서 wildrydes-site HTTPS URL 복사
CLI에서 액세스 키 ID와 키를 입력해주고
** CLI에서 이렇게 직접 키에 대한 정보를 입력하는 것은 보안적으로 매우 안좋은 방법임!
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
git 보안 인증 도우미 설정
> git clone https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/wildrydes-site
git clone [복사한 https URL] 실행
> cd wildrydes-site
> aws s3 cp s3://wildrydes-ap-northeast-2/WebApplication/1_StaticWebHosting/website ./ --recursive
리포지토리로 디렉터리 변경 후 S3에서 정적 파일 복사
$ git add .
$ git commit -m "new files"
$ git push
git 파일을 추가, 커밋 및 푸시
완료된 모습🤗
Amplify 콘솔로 이동 후 새 앱 -> 웹앱 호스팅 -> CodeCommit 선택
'AWS Amplify가 프로젝트 루트 디렉터리에 호스팅된 모든 파일을 자동으로 배포하도록 허용' 체크
저장 및 배포 클릭
프로비저닝부터 배포까지 완료!