-
[72일차] Final Project Day_04교육/코드스테이츠 2023. 3. 11. 14:14
멘토 피드백
- Coginito에 user pool은 쉽지만 identity pool은 재시간 안에 구현할 수 있는지?
- 사용자와 매니저가 같은 API를 가질 필요가 있나?
- Dynamo가 람다에 트리거 되려면 stream을 사용해야 하는데 재시간 안에 구현할 수 있는지?
- Private Link를 사용해야 하는가?
피드백을 반영하여 아키텍처 작성
WorkFlow
1. 사용자와 유저는 모두 cognito를 사용해 인증을 받고 같은 APIgateway를 사용해 토큰에 맞는 권한을 인가함.
2. 유저 서버는 ECS로 구성했으며 APIgateway에서 VPC로 진입하기 위해 PrivateLink를 사용함.
3. PrivateLink에 트래픽을 전달하기 위해 NLB를, 가용성을 확장하기 위해 AZ을 나누고 AutoScailing을 같이 사용함.
4. VPC에서 VPC 외부의 서비스에 접근 하기 위해 VPC Endpoint를 사용해 DynamoDB와 연결함.
5. DynamoDB는 초당 쿼리 요청 수에 따라 비용을 계산하므로 온디맨드 형식에 지불방식인 서버리스 환경에서 필요한 지불 방식을 제공함
6. 매니저는 권한을 받고 APIgateway에서 매니저 전용 엔드포인트를 통해 각각의 SQS로 요청을 보냄.
7. 각각의 SQS에서 람다로 전송되지 않은 메세지들은 DLQ에 보냄.
8. 람다는 DynamoDB를 트리거해 특정 테이블에 항목이 일정 수치 이하일 경우 SES로 메세지를 보냄.
'교육 > 코드스테이츠' 카테고리의 다른 글
[74일차] Final Project Day_06 (0) 2023.03.14 [73일차] Final Project Day_05 (0) 2023.03.13 [71일차] Final Project Day_03 (0) 2023.03.09 [70일차] Final Project Day_02 (0) 2023.03.08 [69일차] Final Project Day_01 (0) 2023.03.08