AWSSecworkshop을 해보니, AWS API Gateway를 이용한 Cognito 서비스 실습이 있다.
가장 베스트는 Cognito 서비스를 이용하는 것이 방법이겠지만,
무슨 이유에선지 Cognito APP Client ID가 unable 하다. 알람만 발생하고 그 다음 단계로 넘어갈 수 없어서
이론적인 부분에 대해서만 AWS API Gateway를 알아보기로 했다!!
AWS API Gateway 란?
쉽게 말하면 API 흐름을 제어함으로써 인증/로깅 등에 대한 서비스를 제공해주는 AWS Managed Service이다.
가장 좋은? 타 서비스와의 차별점은 serverless 서비스라는 것이 특징이다.
보통 AWS Lambda 와 함께 이용하여 RESTFul API 서비스를 제공하는것에 많이 쓰인다.
AWS API Gateway 에 대한 아키텍처는 위와 같다. 대표적으로 아래 2가지 기능을 한다.
1) API 호출에 대한 사용자 또는 서버/서비스의 적절한 권한자임을 인증
2) Lamdba를 통해 기타 다른 서비스로 API 전달해주는 API Proxy의 역할
그렇다면 AWS Lambda란 무엇인가?
AWS Lambda는 서버를 논리적으로 구성하여 코드를 실행하는 것이 아니고,
어떠한 트리거 조건만 맞으면 코드가 실행되는 serverless 서비스라고 보면 된다.
사용한 컴퓨팅만큼 비용이 지불되고, 사용량이 없다면 비용 지불이 없기 때문에 아주 효율적인 서비스라고 볼 수 있다.
AWS API Gateway + Lambda + Cognito의 전체적인 서비스 아키텍처는 다음과 같다.
만약 사용자가 모바일 앱을 구동하는 경우, 이에 대한 응답 페이지는 어떻게 전달할 것인가?
1. 사용자가 https://api.myapp.com을 서비스를 호출한다.
2. API Gateway에서 해당 API를 전달받고, 전달받은 파라미터가 트리거가 되어 Lambda 코드가 실행된다.
3. 제일 처음 사용자 인증 Lambda 코드가 실행되어 Cognito 서비스를 호출한다.
4. Cognito 서비스에 해당 사용자가 절절한 사용자임을 확인한다.
5. 적절한 사용자임을 확인하면, 해당 값이 트리거가 되어 Core Business를 호출하는 Lambda 코드가 실행된다.
6. S3 Bucket에 접근할 수 있게 되고, 사용자가 요청한 HTTPS에 대한 응답페이지를 전달 받는다.
개발자가 아니고, 실습을 해보다가 Cognito 서비스 호출이 안되어 실패하였기에실제 실습 코드를 업로드하지 못하고 이론적인 부분만 작성한다. ㅜㅜ
'기술 이모저모 > [AWS] Workshop' 카테고리의 다른 글
[AWS][WAF] WAF 서비스 개념 및 메뉴설명 (0) | 2022.02.07 |
---|---|
[Secworkshop] Using AWS Cognito (0) | 2022.02.02 |
[AWS][Cognito] Cognito 사용자 인증 서비스 개념 (0) | 2022.01.31 |
[AWS][IAM] IAM 계정 로그인 (0) | 2022.01.30 |
[AWS][IAM] IAM 사용자 계정 생성 방법 (0) | 2022.01.30 |