Amazon API Gateway에서 엣지 최적화된 API 엔드포인트가 필요하지만, Amazon CloudFront 배포를 더 잘 제어해야 합니다. 고유의 배포를 생성하여 사용할 수 있습니까?

API 클라이언트가 지리적으로 분산된 경우 API Gateway에서 엣지 최적화된 API 엔드포인트가 필요할 수 있습니다. 이 유형의 엔드포인트는 리전 엔드포인트처럼 작동하지만, 클라이언트 연결 시간을 개선하는 데 도움이 되도록 앞에 AWS 관리형 CloudFront ​웹 배포가 있습니다.

하지만 배포를 지속적으로 더 잘 제어하면서 글로벌 CloudFront 콘텐츠 전송의 이점을 얻을 수 있습니다. 이 설정의 경우 앞에 사용자 지정 CloudFront 배포를 수동으로 할당한 상태에서 리전 API를 사용하십시오.

API Gateway에서 리전 API를 생성하고 다음 지침을 따르십시오.

API에 대한 GET 메서드 설정

1.    API Gateway 콘솔에서 새 리전 API의 이름을 선택합니다.

2.    Resources(리소스) 창에서 Actions(작업)을 선택한 다음 Create Method(메서드 생성)를 선택합니다.

3.    / 리소스 노드 아래에 나타나는 목록에서 GET을 선택한 다음 확인 표시 아이콘을 선택합니다.

4.    / - GET - Setup(/ - GET - 설정)Integration type(통합 유형)에서 Mock(모의)를 선택한 다음 Save(저장)를 선택합니다. 모의 통합은 도달하는 모든 요청에 ​응답하므로, 나중에 테스트하는 데 도움이 됩니다.

API 배포

1.    API Gateway 콘솔에서 API를 선택합니다.

2.    Actions(작업)를 선택한 다음 Deploy API(API 배포)를 선택합니다.

3.    Deploy API(API 배포)Deployment stage(배포 단계)에서 [New Stage]를 선택합니다.

4.    Stage name(단계 이름)에 이름을 입력합니다. 예를 들면 test를 입력합니다.

5.    배포를 선택합니다.

6.    Stage Editor(단계 편집기) 창에서 Invoke URL(호출 URL)을 클립보드로 복사합니다. URL은 https://1a2bc3d456.execute-api.us-east-1.amazonaws.com/test와 비슷합니다.

API 테스트

API Gateway 콘솔, Postman 앱 또는 명령줄 인터페이스의 curl을 사용하여 API의 URL에 대해 "200" HTTP 상태 코드를 테스트합니다. curl을 사용하는 경우 다음을 실행합니다.

Linux에서는 이 명령을 실행합니다.

curl -IX GET https://restapi-id.execute-api.region.amazonaws.com/stageName

Windows PowerShell에서는 이 명령을 실행합니다.

curl https://restapi-id.execute-api.region.amazonaws.com/stageName

참고: 이 명령에서 restapi-id, regionstageName을 해당 API URL의 값으로 바꾸십시오.

curl에 대한 자세한 내용은 cURL 프로젝트 웹 사이트를 참조하십시오.

참고: "200" 이외의 다른 상태 코드를 받으면 콘솔에서 API를 단계에 배포했는지 확인하십시오. 또한 URL에서 단계를 지정했는지도 확인하십시오. 예를 들면 /test를 입력합니다.

CloudFront 웹 배포 생성

1.    CloudFront 콘솔에서 Create Distribution(배포 생성)을 선택합니다.

2.    Create Distribution Wizard(배포 생성 마법사)의 첫 번째 페이지에 있는 Web(웹) 섹션에서 Get Started(시작하기)를 선택합니다.

3.    Origin Domain Name(오리진 도메인 이름)에 이전에 복사한 API URL을 입력합니다.

4.    Origin Path(오리진 경로)/[stage-name]을 입력합니다. 이 값은 앞에 슬래시가 있는 이전에 배포한 API 스테이지의 이름입니다. 예를 들면 /test를 입력합니다.

참고: URL에 단계 이름을 포함시키려는 경우 Origin Path(오리진 경로)에 아무것도 입력하지 마십시오.

5.    Viewer Protocol Policy(뷰어 프로토콜 정책)에서 HTTPS Only(HTTPS만)를 선택합니다.

참고: API Gateway는 암호화되지 않은(HTTP) 엔드포인트를 지원하지 않습니다. 자세한 내용은 Amazon API Gateway FAQ를 참조하십시오.

6.    (선택 사항) 사용자 지정 헤더를 오리진에 전달하려면 Origin Custom Headers(오리진 사용자 지정 헤더)에 하나 이상의 사용자 지정 헤더를 입력합니다.

참고: CloudFront가 오리진에 전달할 수 없는 사용자 지정 헤더가 여러 개 있습니다.

7.    (선택 사항) CloudFront에서 할당되는 이름 대신 고유의 사용자 지정 도메인 이름을 배포에 사용하려면 Alternate Domain Names (CNAMEs)(대체 도메인 이름(CNAME))에 하나 이상의 도메인 이름을 입력합니다. 자세한 내용은 대체 도메인 이름(CNAME)을 추가하여 파일에 대해 사용자 지정 URL 사용을 참조하십시오.

8.    (선택 사항) Origin SSL Protocols(오리진 SSL 프로토콜)와 같이 사용자 지정하려는 추가 설정을 구성합니다.

참고: Origin SSL Protocols(오리진 SSL 프로토콜)의 경우 API Gateway에서 해당 프로토콜을 지원하지 않으므로 SSLv3를 선택하지 마십시오. 모범 사례는 TLSv1.2만 선택하는 것입니다.

중요: Default Cache Behavior Settings(기본 캐시 동작 설정)에서 Cache Based on Selected Request Headers(선택한 요청 헤더를 기반으로 캐시) 설정을 변경할 때 주의하십시오. 이 설정을 All(모두)로 변경하거나, 이 설정을 Whitelist(화이트리스트)로 변경한 다음 Host(호스트) 헤더를 화이트리스트에 추가하면, 설정이 작동하지 않습니다. 자세한 내용은 요청 헤더를 기반으로 콘텐츠 캐싱을 참조하십시오.

9.    Create Distribution(배포 생성)을 선택합니다.

10.    배포가 배포될 때까지 기다립니다. 이 작업은 30분 정도 걸릴 수 있습니다. 콘솔에서 ​Status(상태)Deployed(배포 완료)로 나타나면 배포가 준비된 것입니다.

CloudFront 웹 배포 테스트

1.    CloudFront 콘솔에서 배포의 Domain Name(도메인 이름)을 적어 둡니다. 사용자 지정 도메인 이름을 사용하지 않은 경우 도메인은 a222222bcdefg5.cloudfront.net과 비슷한 형태입니다.

2.    Deploy and test your API(API 배포 및 테스트)의 6단계에서 위에 언급한 방법 중 하나를 사용하여 도메인 이름에 대해 "200" HTTP 상태 코드를 테스트합니다.

참고: "500" 서버 오류 코드를 받는 경우 배포가 완전히 배포되지 않을 수 있습니다. 응답을 받지 못한 경우 CloudFront DNS 레코드가 아직 완전히 전파되지 않은 것일 수 있습니다. 어떤 경우든 20 분 정도 기다린 다음 절차를 다시 시도하십시오.

이제 API가 새로 생성한 배포를 사용하며, CloudFront URL을 사용하여 API에 있는 모든 리소스에 액세스할 수 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시: 2019-01-11