
ACM이 발급한 HTTPS 인증서를 쓰는 API Gateway를 앞단에 두고,
요청은 VPC 안의 EC2, Lambda, S3 버킷으로 각각 라우팅하는 애플리케이션 계정 아키텍처
즉,
이 계정은 실제 서비스가 돌아가는 애플리케이션 계정.
IAM Permissions / Roles는:
이 구조의 “정문(프런트 도어)” 역할.
클라이언트(브라우저, 모바일 앱, 다른 시스템)는 전부 API Gateway의 URL/도메인으로 접속.
API Gateway는 메서드별로:
Amazon S3 store bucket
Amazon S3 data bucket
그림의 검은 동그라미 번호랑 맞춰볼게.
“API Gateway가 쓸 인증서를 ACM에서 가져와서 붙인다.”
먼저 ACM에 도메인 인증서를 만들어놓고(예: api.myservice.com),
API Gateway에서 Custom Domain Name 설정 시 ACM 인증서를 연결.
그 결과:
https://api.myservice.com 으로 접속하고,“ACM이 CA에 가서, 이 도메인 진짜 우리 거니까 인증서 주세요~ 라고 요청.”
ACM은 내부적으로 CA와 통신해서:
만료되기 전에 자동 갱신도 ACM이 알아서 처리해 줘서,
“일부 API는 VPC 안 EC2로 프록시한다.”
API Gateway에서 VPC Link / Private integration을 설정해두면,
GET /legacy/* 요청은이때 트래픽은:
예시
/report API는 예전에 EC2에 올려둔 Spring Boot 애플리케이션이 담당하고 있다면,
API Gateway GET /report → EC2 http://10.0.1.15:8080/report 로 프록시하는 식.
“어떤 요청/응답은 S3에 바로 저장한다.”
API Gateway는 서비스 통합(Service integration) 으로
S3를 직접 호출할 수 있음.
예를 들면:
PUT /upload 요청을 받으면,store-bucket/user-123/file.txt에 저장.비유
“리셉션(API GW)이 어떤 서류를 받자마자, 사무실(Lambda/EC2)에 보내지 않고
그냥 바로 창고(S3 store bucket) 에 꽂아두는” 느낌.
“나머지 비즈니스 로직은 Lambda 함수로 실행한다.”
POST /cases, GET /analysis 같은 엔드포인트를 Lambda에 매핑.
요청이 오면 API Gateway가 이벤트를 JSON으로 만들어 Lambda에 전달.
Lambda는 코드를 실행해서 비즈니스 로직 처리 후,
“Lambda가 비즈니스 데이터 S3 버킷을 읽고/쓴다.”
Lambda 함수 Role에 S3 data bucket 읽기/쓰기 권한을 부여해 두고,
함수 안에서:
예시
/analyze API 호출 → Lambda가:
raw-logs/ 아래 로그 파일 읽고,reports/ 아래에 요약 JSON 저장,