API Gateway 시작하기 - Amazon API Gateway

API Gateway 시작하기

이번 시작하기 연습에서는 서버리스 API를 생성합니다. 서버리스 API를 사용하면 서버를 프로비저닝하고 관리하는 데 시간을 소비하는 대신 애플리케이션에 집중할 수 있습니다. 이 연습은 완료하는 데 20분을 넘지 않으며 AWS 프리 티어 내에서 가능합니다.

먼저, AWS Lambda 콘솔을 사용하여 Lambda 함수를 생성합니다. 그런 다음 API Gateway 콘솔을 사용하여 HTTP API를 생성합니다. 그런 다음 API를 호출합니다.

HTTP API를 호출하면 API Gateway는 요청을 Lambda 함수로 라우팅합니다. Lambda는 Lambda 함수를 실행하고 API Gateway에 응답을 반환합니다. 그러고 나면 API Gateway가 응답을 반환합니다.


      이 시작 안내서에서 생성하는 API의 아키텍처 개요입니다. 클라이언트는 API Gateway HTTP API를 사용하여 Lambda 함수를 호출합니다. API Gateway는 클라이언트에 대한 Lambda 함수의 응답을 반환합니다.

이 연습을 완료하려면 AWS 계정과 콘솔 액세스 권한이 있는 AWS Identity and Access Management 사용자가 있어야 합니다. 자세한 내용은 API Gateway를 시작하기 위한 사전 조건 단원을 참조하세요.

1단계: Lambda 함수 생성

API의 백엔드에 Lambda 함수를 사용합니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장이 가능합니다.

이 예제에서는 Lambda 콘솔에서 기본 Node.js 함수를 사용합니다.

Lambda 함수를 만들려면

  1. https://console.aws.amazon.com/lambda에서 Lambda 콘솔에 로그인합니다.

  2. 함수 생성을 선택합니다.

  3. [함수 이름(Function name)]에 my-function을 입력합니다.

  4. 함수 생성을 선택합니다.

예제 함수는 클라이언트에 200 응답과 텍스트 Hello from Lambda!을(를) 반환합니다.

함수의 응답이 API Gateway에 필요한 형식과 일치하는 한 Lambda 함수를 수정할 수 있습니다.

기본 Lambda 함수 코드는 다음과 유사해야 합니다.

exports.handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };

2단계: HTTP API 생성

다음으로, HTTP API를 생성합니다. API Gateway는 REST API와 WebSocket API도 지원하지만 이 연습에서는 HTTP API가 가장 좋은 선택입니다. HTTP API는 REST API보다 지연 시간이 짧고 비용이 저렴합니다. WebSocket API는 전이중 통신을 위해 클라이언트와의 지속적인 연결을 유지하는데, 이 예제에는 필요하지 않습니다.

HTTP API는 Lambda 함수에 대한 HTTP 엔드포인트를 제공합니다. API Gateway는 요청을 Lambda 함수로 라우팅한 다음 함수의 응답을 클라이언트에 반환합니다.

HTTP API 생성하기

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. 다음 중 하나를 수행하십시오.

    • 첫 번째 API를 생성하려면 HTTP API에서 [빌드(Build)]를 선택합니다.

    • 이전에 API를 생성한 경우 [API 생성(Create API)]을 선택한 다음 HTTP API에서 [빌드(Build)]를 선택합니다.

  3. [통합(Integrations)]에서 [통합 추가(Add integration)]를 선택합니다.

  4. Lambda를 선택합니다.

  5. Lambda 함수에서 my-function을(를) 입력합니다.

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

  7. [Next]를 선택합니다.

  8. API Gateway가 생성하는 경로를 검토한 후 [다음(Next)]을 선택합니다.

  9. API Gateway가 생성하는 단계를 검토한 후 [다음(Next)]을 선택합니다.

  10. Create를 선택합니다.

이제 클라이언트에서 요청을 수신할 수 있는 Lambda 통합이 포함된 HTTP API가 생성되었습니다.

3단계: API 테스트

다음으로, API를 테스트하여 제대로 작동하는지 확인합니다. 간단하게 하기 위해, 웹 브라우저를 사용하여 API를 호출합니다.

API 테스트하기

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. API를 선택합니다.

  3. API의 호출 URL을 기록해 둡니다.

    
            API를 생성하면 콘솔에 API의 호출 URL이 표시됩니다.
  4. API의 호출 URL을 복사하여 웹 브라우저에 입력합니다. Lambda 함수를 호출할 호출 URL에 Lambda 함수의 이름을 추가합니다. 기본적으로 API Gateway 콘솔은 Lambda 함수(my-function)와 이름이 같은 경로를 생성합니다.

    전체 URL은 https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function와(과) 같아야 합니다.

    브라우저가 API에 GET 요청을 보냅니다.

  5. API의 응답을 확인합니다. 브라우저에 텍스트 "Hello from Lambda!"이(가) 표시됩니다.

(선택 사항) 4단계: 정리

불필요한 비용을 방지하려면 이 시작하기 연습의 일부로 생성한 리소스를 삭제하세요. 다음 단계에서는 HTTP API, Lambda 함수 및 관련 리소스를 삭제합니다.

HTTP API 삭제하기

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. API 페이지에서 API를 선택합니다. [ Actions]를 선택한 후 [Delete]를 선택합니다.

  3. 삭제를 선택합니다.

Lambda 함수 삭제하기

  1. https://console.aws.amazon.com/lambda에서 Lambda 콘솔에 로그인합니다.

  2. 함수 페이지에서 함수를 선택합니다. [ Actions]를 선택한 후 [Delete]를 선택합니다.

  3. 삭제를 선택합니다.

Lambda 함수의 로그 그룹 삭제하기

  1. Amazon CloudWatch 콘솔에서 로그 그룹 페이지를 엽니다.

  2. 로그 그룹 페이지에서 함수의 로그 그룹(/aws/lambda/my-function)을 선택합니다. 작업을 선택한 다음 로그 그룹 삭제를 선택합니다.

  3. 삭제를 선택합니다.

Lambda 함수의 실행 역할 삭제하기

  1. AWS Identity and Access Management 콘솔에서 역할 페이지를 엽니다.

  2. 함수의 역할(예: my-function-31exxmpl)을 선택합니다.

  3. 역할 삭제를 선택합니다.

  4. 예, 삭제를 선택합니다.

AWS CloudFormation 또는 AWS SAM을 사용하여 AWS 리소스의 생성 및 정리를 자동화할 수 있습니다. 예제 AWS CloudFormation 템플릿에 대해서는 예제 AWS CloudFormation 템플릿을 참조하세요.

다음 단계

이 예제에서는 AWS Management Console을 사용하여 간단한 HTTP API를 생성했습니다. HTTP API는 Lambda 함수를 호출하고 클라이언트에 응답을 반환합니다.

API Gateway 작업을 계속할 경우의 다음 단계는 아래와 같습니다.

커뮤니티에서 Amazon API Gateway에 대한 도움말을 보려면 API Gateway 토론 포럼을 참조하세요. 이 포럼에 들어갈 때 AWS에서 로그인을 요청할 수 있습니다.

AWS에서 직접 API Gateway에 대한 도움을 받으려면 AWS Support 페이지의 지원 옵션을 참조하세요.

또한 FAQ를 참조하거나 직접 당사에 문의하십시오.