AWS Cognito란?
유저 계정 관리 및 토큰 관리를 통한 자격 증명을 제공해주는 AWS 서비스이다. 사용자는 직접 ID와 비밀번호를 통해 로그인하거나 Facebook, Google 또는 Apple과 같은 타사를 통해 로그인할 수 있다.
AWS Cognito 구성 요소
- User Pool(사용자 풀): 앱 사용자의 가입 및 로그인 옵션을 제공하는 사용자 디렉터리
- Identity Pool(자격 증명 풀): 사용자에게 기타 AWS 서비스에 엑세스할 수 있는 권한을 부여한다. 즉, AWS 내의 서비스에 접근하기 위한 토큰 생성 기능을 담당하며 토큰은 JWT 기반이다.
프로젝트 구성도
1. Client는 Web Browser를 사용하여 AWS Amplify의 정적 페이지를 요청한다.
2. Client가 회원가입을 요청하면 AWS Cognito에 의해 인증 과정을 거쳐 회원가입이 완료된다.
3. 회원가입이 완료된 사용자는 로그인을 시도하면 Cognito에 의해 로그인이 가능하다.
4. 로그인한 사용자만 이용할 수 있는 동적 페이지를 API Gateway로 호출한다. 즉, API Gateway는 AWS Cognito 사용자 풀에 의해 보호된다.
5. API Gateway가 호출 되면 Lambda 함수가 트리거되며 DynamoDB 테이블에 요청을 기록하고 디스패치된 unicorn에 대한 세부 정보를 프런트 엔드 애플리케이션에 반환한다.
구축 과정
1. AWS Amplify를 활용한 정적 웹 사이트 호스팅
1.1 CodeCommit 리포지토리 생성 및 연동
만약 CodeCommit 리포지토리 연동에 대한 상세 내용이 필요할 경우 아래의 링크 참조
https://cumulus.tistory.com/10?category=953833
1.2 AWS CLI 설치 및 설정
이번 실습에서 정적 웹 사이트 구성 파일을 AWS 자습서에서 S3로 제공하는 파일을 내려받을 것이므로 AWS CLI 사용이 반드시 필요하다.
https://awscli.amazonaws.com/AWSCLIV2.msi (AWS CLI 설치 링크)
설치 파일을 사용하여 AWS CLI를 설치한다.
1.3 정적 웹 사이트(AWS 자습서 제공) 구성 내려받기 및 CodeCommit 리포지터리로 업로드
aws s3 cp://wildrydes-us-east-1/WebApplication/1_StaticWebHosting/website ./ --reculsive
git add .
git commit -m “WEB”
git push -u origin master
cmder 에서 위 명령어를 차례대로 입력한다.
1.4 AWS Amplify를 사용하여 정적 웹 애플리케이션 호스팅 활성화
1.5 정적 웹 호스팅 테스트
출처
<AWS Cognito 공식 문서>
Amazon Cognito 란? - Amazon Cognito
<AWS 자습서 링크>
'AWS' 카테고리의 다른 글
사용자 인증이 가능한 서버리스 웹 어플리케이션 구축 (3) AWS Lambda 와 DynamoDB로 서버리스 백엔드 구축 (0) | 2021.07.06 |
---|---|
사용자 인증이 가능한 서버리스 웹 어플리케이션 구축 (2) AWS Cognito 구축 (0) | 2021.07.06 |
AWS SES 사용 방법 및 구성 (0) | 2021.07.05 |
SNS와 Lambda를 이용한 AutoScaling Group 인스턴스 EBS 스냅샷 생성 (0) | 2021.07.04 |
AWS Lambda + API GateWay를 활용한 REST API 사용하기 (0) | 2021.07.03 |