AWS Lambda를 사용한 Amazon API Gateway 소개

AWS Lambda를 사용한 Amazon API Gateway 소개

소스 노드 : 1860150

개요

API 란 무엇입니까?

간단히 말해서 API는 메신저입니다. 몇 가지 예를 들어 이해해 봅시다. 배가 고파서 집에서 요리를 해야 한다고 가정해 보겠습니다. 국수를 만들고 싶다면 찬장에서 재료를 꺼내고 스토브에 불을 붙이고 직접 만드십시오. 이것은 자체 자원으로 자체적으로 무언가를 수행하는 프로그램입니다. 하지만 피자를 먹고 싶다고 해보세요. 재료가 없고 집에 있는 오븐이 바삭바삭한 크러스트를 만드는 데 그다지 적합하지 않습니다. 그래서 대신 피자집에 갑니다. 그러나 집에서와 달리 부엌에 가서 재료를 사용하여 피자를 만들기 시작할 수는 없습니다. 그들은 그들의 물건에 당신의 더러운 손을 원하지 않습니다! 그래서 뭐 할거야? 카운터로 가서 주문해야 합니다. 주문할 수 있는 피자와 선택할 수 있는 토핑 또는 기타 옵션이 나열된 메뉴가 있습니다. 이것은 API입니다.

API(애플리케이션 프로그래밍 인터페이스)는 두 소프트웨어 프로그램이 상호 작용하는 방식을 지정하는 일련의 규칙입니다.

API를 사용하면 하나의 소프트웨어 프로그램이 다른 소프트웨어 프로그램의 기능에 액세스할 수 있습니다. 예를 들어 인터넷에서 데이터를 검색해야 하는 소프트웨어 프로그램이 있는 경우 API를 사용하여 서버에서 해당 데이터를 요청할 수 있습니다. 그런 다음 서버는 요청된 데이터로 응답하고 소프트웨어 프로그램은 필요에 따라 이를 사용할 수 있습니다.

API는 서로 다른 소프트웨어 프로그램이 서로 통신하고 데이터와 기능을 공유할 수 있도록 하는 데 사용됩니다. 서로 다른 시스템이 함께 작동하고 더 복잡하고 강력한 소프트웨어 응용 프로그램을 만들 수 있기 때문에 최신 소프트웨어 개발의 중요한 부분입니다.

HTTP API

HTTP API는 데이터 송수신에 HTTP 프로토콜을 사용하는 API 유형입니다. 소프트웨어 프로그램이 HTTP 요청 및 응답을 사용하여 데이터를 보내고 받을 수 있습니다. 이러한 요청 및 응답은 일반 텍스트, JSON 또는 XML과 같은 다양한 형식일 수 있습니다. 웹 애플리케이션, 모바일 앱 및 마이크로 서비스를 포함한 광범위한 애플리케이션에서 일반적으로 사용됩니다. 이러한 API는 REST API보다 상대적으로 저렴하고 기능이 적습니다.

REST API

REST API는 REST(Representational State Transfer)라는 일련의 아키텍처 원칙을 따르는 API 유형입니다. REST는 웹 API 생성을 위한 일련의 제약 조건을 정의하는 소프트웨어 아키텍처 스타일입니다.

상태 저장 API

상태 저장 API는 각 클라이언트 요청에 대한 정보를 유지하고 이 정보를 사용하여 후속 요청을 처리하는 API입니다. 즉, API는 요청 매개변수와 같은 각 요청에 대한 데이터를 서버 측 세션에 저장합니다. 그런 다음 이 데이터는 동일한 클라이언트의 후속 요청을 처리하는 데 사용됩니다.

상태 비저장 API

반면 상태 비저장 API는 클라이언트 요청에 대한 정보를 유지하지 않습니다. 이전 요청에 대한 데이터를 저장하지 않고 각 요청을 독립적으로 처리합니다. 즉, API는 서버 측 세션을 유지하지 않으며 후속 요청을 처리하기 위해 이전 요청의 데이터를 사용하지 않습니다.

상태 저장 API와 상태 비저장 API의 주요 차이점

다음은 상태 저장 API와 상태 비저장 API의 몇 가지 주요 차이점입니다.

상태 저장 API

무상태 API

1. 클라이언트 요청에 대한 데이터를 저장하려면 서버 측 세션이 필요합니다. 1. 클라이언트 요청에 대한 데이터를 저장하기 위해 서버 측 세션이 필요하지 않습니다.
2. 이들은 시간이 걸리는 데이터를 필요로 하고 저장하기 때문에 때때로 Stateless API보다 느릴 수 있습니다. 2. Stateless API는 요청에 대한 데이터를 필요로 하지 않고 저장하지 않기 때문에 더 빠릅니다.
3. 상태 저장 API는 확장하기 쉽지 않습니다.  3. 이전 요청에 대한 데이터를 유지할 필요가 없으므로 확장이 더 쉽습니다.
4. 일반적으로 Stateless API보다 덜 안전한 것으로 간주됩니다. 4. 이들은 일반적으로 더 안전한 것으로 간주됩니다.

Amazon API 게이트웨이란 무엇입니까?

Amazon API Gateway는 상태 저장(websocket) 및 상태 비저장(HTTP 및 REST) ​​API를 모두 생성, 유지 관리 및 모니터링하는 데 사용되는 AWS 서비스입니다. 이러한 API를 사용하여 다음에 액세스할 수 있습니다.

  1. 모든 AWS 서비스
  2. AWS 클라우드에 저장된 데이터(예: S3 버킷)
  3. 기타 모든 웹 서비스.

API 개발자라면 타사 개발자에게도 쉽게 API를 만들 수 있습니다.

AWS API Gateway 사용자는 크게 두 가지 유형이 있습니다.

  1. i) API 게이트웨이에서 필요한 기능을 활성화하기 위해 API를 생성하고 배포하는 API 개발자
  2. ii) API 개발자의 고객인 앱 개발자.

Amazon API 게이트웨이 아키텍처

아키텍처

이 아키텍처는 일관되고 통합된 개발자 경험으로 서버리스 애플리케이션을 구축할 수 있는 방법을 보여줍니다. 최종 사용자에서 데이터 센터에 이르기까지 API Gateway는 수천 건의 동시 호출 수락 및 처리, 트래픽 관리, 권한 부여, 모니터링, 액세스 제어 등과 같은 관련된 모든 작업을 처리합니다.

Amazon API 게이트웨이 기능

  1. 상태 저장 및 상태 비저장 API를 모두 지원합니다. (예: Websocket, HTTP 및 REST).
  2. 강력한 인증 메커니즘에는 AWS ID, 액세스 관리 정책 및 Lambda 권한 부여자가 포함됩니다.
  3. API 개발자가 API를 게시할 수 있는 개발자 포털입니다.
  4. 경보 설정 옵션을 포함하여 CloudWatch에 대한 실행 및 액세스 로깅.
  5. 다음과 같은 다른 AWS 서비스와의 통합 AWS 람다 그리고 AWS 키네시스.
  6. AWS WAF와의 통합은 웹 악용으로부터 보호하는 데 사용되며 AWS X-Ray는 성능 지연을 이해하고 강조하는 데 사용됩니다.

Amazon API Gateway 시작하기

이제 우리는 서버리스 API를 만들 것입니다. 서버리스 API에서는 서버 관리에 시간을 소비하는 대신 애플리케이션에 집중할 수 있습니다. 다음과 같이 작동합니다.

  • API는 클라이언트에 의해 호출됩니다.
  • API가 람다에 요청을 보냅니다.
  • Lambda는 lambda 함수를 실행하고 결과를 다시 API로 보냅니다.
  • Lambda로부터 결과를 받은 후 API는 클라이언트에 응답합니다.

HTTP API

1단계 – 람다 함수 생성

Lambda 함수는 API의 백엔드에 사용됩니다. Lambda는 필요할 때만 코드를 실행합니다. 또한 하루에 몇 건의 요청에서 초당 천 건의 요청으로 자동 확장됩니다.

람바다 함수 생성

람다 함수 만들기:

1) https://console.aws.amazon.com/lambda에서 람다 콘솔로 이동합니다.

2) 함수 생성을 클릭합니다.

3) 함수 이름으로 “my-function”을 입력합니다.

4) 런타임으로 Python 3.9를 선택합니다.

5) 이 기능의 경우 기본 권한이 이 데모에 충분하므로 권한 및 고급 설정 탭에서 아무 것도 변경할 필요가 없습니다.

4) 함수 생성을 클릭합니다.

2단계 – HTTP API 생성

아마존 API

HTTP API는 Lambda 함수에 대한 HTTP 엔드포인트를 제공합니다. 다음과 같이 작동합니다.

  • 클라이언트는 HTTP API에 쿼리를 제출합니다.
  • API는 람다 함수를 실행하는 람다를 트리거합니다.
  • Lambda는 결과를 API로 보냅니다.
  • API는 수신된 응답으로 클라이언트에 응답합니다.

HTTP API 생성 단계

1) https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔을 방문합니다.

2) 빌드를 클릭하여 첫 번째 HTTP API를 생성합니다.

3) 통합을 위한 통합 추가를 클릭합니다.

4) 람다를 선택합니다.

5) 람다 함수 my-function을 입력합니다.

6) API 이름에 my-http-api를 입력합니다.

7) 다음을 클릭합니다.

8) 생성된 경로를 검토하고 다음을 선택합니다.

9) 생성된 단계를 검토하고 다음을 선택합니다.

10) 만들기를 클릭합니다.

3단계 API 테스트 –

다음으로 API가 작동하는지 확인하기 위해 API를 테스트해야 합니다. 이를 위해 웹 브라우저를 사용하여 API를 호출합니다.

아마존 API

API를 테스트하려면

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔로 이동합니다.
  2. API를 선택합니다.
  3. API의 호출 URL을 기록해 둡니다. (위 이미지 참조)
  4. API의 호출 URL을 복사하여 웹 브라우저에 붙여넣습니다. 호출 URL과 Lambda 함수의 이름을 결합하여 Lambda 함수를 호출합니다. API Gateway 콘솔은 기본적으로 Lambda 함수 "my-function"의 이름을 사용하여 경로를 생성합니다. 

    전체 URL은 https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function과 같아야 합니다. 이 URL을 로드하면 브라우저에서 GET 요청이 API로 전송됩니다.

  1. "Hello from Lambda!"라는 텍스트가 표시되어야 합니다. 브라우저에서. 따라서 API의 응답이 확인됩니다.

아마존 API

결론

Amazon API Gateway 및 AWS Lambda를 사용하여 첫 번째 HTTP API를 생성했습니다. 또한 동일한 다양한 사용 사례를 탐색할 수 있으며 유사하게 더 많은 기능을 제공하는 REST API도 만들 수 있습니다.

이 기사가 마음에 드셨나요? 아래 의견에 귀하의 생각을 알려주십시오. 또한 다음에 읽고 싶은 기사를 언급하는 것을 잊지 마십시오.

타임 스탬프 :

더보기 분석 Vidhya