Lambda 통합과 HTTP 통합의 차이를 만들어 이해
5109 단어 APIGatewayAWS
개요
AWS 개발자 어소시에이트를 받는 경우 API Gateway의 통합 유형으로 다음과 같은 4가지 차이점이 있습니다.
통합형
Lambda 통합, Lambda 비프록시 통합
Lambda 프록시 통합
HTTP 통합, HTTP 비 프록시 통합
HTTP 프록시 통합
이 중 Lambda 통합과 HTTP 통합의 차이점은 다음과 같습니다. Lambda 통합은 잘 구축할 기회가 있지만 HTTP 통합을 만들 기회가 적기 때문에 이번에 만들려고 생각합니다.
덧붙여 프록시 통합과 비프록시 통합의 차이에 대해서는, 이하의 기사가 대단히 쉬웠기 때문에, 참고로 해 주세요.
HTTP 통합
먼저 백엔드로 퍼블릭 서브넷에 간단한 API를 만듭니다. 이번에는 EC2로 만듭니다.
server.py
from flask import Flask
from hello import get_hello
app = Flask(__name__)
@app.route('/hello', methods=['GET'])
def local_endpoint():
return get_hello()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
hello.py
import json
def get_hello():
message = "Hello, good morning"
return_json = json.dumps({"message": message})
return return_json
위의 소스를 EC2에 배치하고 다음 명령을 실행하면 간단한 API를 구축할 수 있습니다.
sudo yum install -y python3 # Python3のインストール
sudo pip3 install Flask # Flaskのインストール
chmod 755 *.py # 実行権限の付与
python3 server.py # APIの起動
덧붙여 상기의 소스로 소통 확인할 때에는, EC2의 보안 그룹으로 5000번 포트를 허가합시다.
소통 확인 결과
curl http://XXX.XXX.XXX.XXX:5000/hello # XXXはEC2のパブリックIPアドレス
{"message": "Hello, good morning"}
그리고는 이 엔드포인트의 URL을 API Gateway의 메소드 작성시에 지정합니다.
이를 배포한 후 API Gateway 엔드포인트에서 API를 호출할 수 있습니다.
API의 비즈니스 로직을 EC2측에 대고, 스로틀링 제한등은 API Gateway의 기능을 이용한다고 하는 활용을 할 수 있을까 생각합니다.
덧붙여 실제로는 백엔드에 NLB 등 사이에 로드 밸런스 하는 구성이 많은 것 같습니다.
또한 사설 서브넷에 구축된 API에 액세스하는 경우 VPC 링크를 활용합니다. 이하의 기사가 매우 참고가 됩니다.
API Gateway를 통해서만 액세스할 수 있는 API를 ECS로 구축
끝에
개발자 어소시에이트를 공부하는 동안 차이를 잘 모르는 사람은 본 기사처럼 손을 움직여 보면 그 차이를 알 수 있다고 생각합니다.
참고
API Gateway API 통합 유형 선택
Reference
이 문제에 관하여(Lambda 통합과 HTTP 통합의 차이를 만들어 이해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ny7760/items/406f68ca4db5f5605664텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)