AWS API Gateway
REST(Representational State Transfer)
- REST의 추상적 정의 - 소프트웨어의 구성요소들 사이의 관계를 표현한 '소프트웨어 아키텍쳐'의 한 형식, Server에서 제공하는 자원을 정의하고 자원에 대한 주소를 지정하는 방식을 뜻함 
- REST의 구체적 정의 - 모든 자원(Resource)을 HTTP URI(Uniform Resource Identifier)로 표현하고, '행위'에 해당하는 HTTP Method(GET, PUT, POST, DELETE)를 통해 해당 자원에 대해 CRUD를 지시하는 것을 뜻함. - *CRUD : Create(생성), Read(조회), Update(수정), Delete(삭제) 
하나의 웹사이트가 존재하고각종 이미지와 텍스트 파일 등을 제공할 경우, 각 이미지와 텍스트 파일은 고유의 URI를 갖게 된다.
- Client 는 그 URI 를 GET(조회), PUT(수정)하는 등의 행동을 통해 통신할 수 있음. 
- http://www.abc.com/user/hyoh/name -- > 'name'으로 저장된 resource 의 URI 
- HTTP GET /user/hyoh/name -- > 해당 resource 호출, 'name'의 값을 가져옴 
REST의 필수 3요소 - 자원(Resource), 행위(Verb), 표현(Representations)
- 자원 - Server에서 제공하는 모든 Resource 
- 행위(Verb) - HTTPMethod를 사용하여Server에서 제공하는Resource를 취득하는 행위 
- 표현(Representations) - HTTPMethod에 응답하여Server가 전달하는Resource를 표현하는 방법 - HTTP GET /user/Jonghyeon/name { "name" : "Jonghyeon"('name'의 값) }
- REST API - 이러한 REST의 특성에 맞도록 설계한 API를 REST API라고 칭한다 
AWS API Gateway
REST API 및 Websocket API 를 생성, 유지, 관리하는 AWS 서비스이다.
- Lambda, AWS Service, VPC, HTTP webpage 등과 연동하여 resource 에 대한 HTTP - Method 정의 가능 → 웹 애플리케이션, EC2, Lambda등 AWS Service에서 실행되는 워크로드를 처리할 수 있다. 
- 수 십만 건의 동시 API호출을 처리할 수 있음 
- APIGateway와 Lambda를 연동하여 사용하기 용이함 => User - > API Gateway -> Lambda 
- 핵심 구성요소로 Resource 와 Method, Stage 가 있다. - Resource- APIGateway의 핵심 구성요소 중 하나
- 서비스의 대상이 되는 자원을 의미
- 모든 자원(Resource)를 HTTP URI 로 표현하는 REST 의 특성상, 각 리소스는 고유의 URI를 부여받음
- Resource는HTTPMethod를 생성할 수 있으며,Method에 대해 연결 포인트를 만들어 행동 대상을 지정할 수 있다.
 
- Method- APIGateway의 핵심 구성요소 중 하나
- 서비스의 대상으로 지정된 자원에 대해 취할 행동을 정의함
- HTTP Method 가 사용되며 GET, PUT, POST, HEAD, OPTION 등이 있음 - 각 Method마다 연결 포인트를 지정할 수 있음
- Lambda를 연결 포인트로 지정시LambdaFunction을 호출하여 수행함
 
- Stage- APIGateway의 핵심 구성요소 중 하나
- 위에서 언급한 두 개의 요소를 하나로 합쳐 Console 에서는 'Resource'라 표현하며, 'Resource'를 배포한 것이 Stage
- Client가 실제로 사용하기 위해 생성해야하는 배포판
- Stage 생성시 각 리소스에 대해 URI가 생성된 것을 확인할 수 있음
 
 
- Resource
- API Gateway 생성시, 최상위에 '/ Method(Root Method)'가 하나만 존재하는 상태로 시작한다. 
- Cloudfront 를 통해 정적 페이지는 S3 에서 제공하고, 동적 페이지 혹은 데이터는 Cloudfront-APIGateway-Lambda를 통해 처리하는 방식 사용 가능 
- API Gateway 는 HTTPS endpoints 통해 URI 를 게시함 
- AWS 가 프로비저닝과 관리를 분담하고 고객이 개발만을 집중하고자 할 경우 API Gateway와Lambda가 유용하게 사용될 수 있음 
AWS API Gateway를 통한 보호
- 엔드포인트 노출 방지
- DDoS 및 명령어 주입 공격으로부터 보호
AWS Step Functions
AWS Step Functions 를 사용하면 AWS 환경에서 사용자 고유의 상태 시스템을 자동화할 수 있다. 이를 위해 다양한 상태, 작업, 선택, 오류 처리 등으로 구성된 구조를 포함하는 JSON 기반 Amazon States 언어가 사용된다.
- 시각적 워크플로우를 사용하는 마이크로 서비스 조정
- 애플리케이션 기능을 단계별로 실행할 수 있다.
- 각 단계를 자동으로 트리거하고 추적한다.
- 단계가 실패한 경우 단순 오류를 파악하여 로깅을 제공
'클라우드 아키텍트 양성과정' 카테고리의 다른 글
| 리눅스 소개/ 기본명령어 (0) | 2021.04.26 | 
|---|---|
| 약결합 아키텍처 구축(SQS & SNS) (0) | 2021.03.29 | 
| AWS Lambda - 서버리스 컴퓨팅 (0) | 2021.03.28 | 
| AWS RDS - 데이터베이스 계층 (0) | 2021.03.28 | 
| AWS Storage Gateway (0) | 2021.03.28 | 
 
										
									 
										
									 
										
									 
										
									
댓글