Cloudfront에서 대기 시간을 해결하고 증가시키는 방법

간단한 설명

CloudFront에서 대기 시간을 해결하기 위해 먼저 다음 이벤트 중 어느 이벤트가 대기 시간에 기여하는지 식별하십시오
– 클라이언트와 Cloudfront Edge 위치 사이에 요청이 필요한 시간. 여기에는 도메인 이름 시스템 (DNS) 조회 프로세스 및 TCP 및 SSL/TLS 협상이 포함됩니다.
– Cloudfront와 Origin 사이에 요청하는 데 걸리는 시간. 여기에는 Origin DNS 조회 프로세스, TCP 및 SSL/TLS Origin과의 협상 및 Origin이 객체를 처리하고 응답하기 위해 기원이 취한 시간이 포함됩니다.
그런 다음 지연 시간을 줄이기 위해 식별 된 이벤트의 문제 해결 단계를 따르십시오.

기사 요약

이 기사는 AWS (Amazon Web Services)를 사용하여 고성능 웹 애플리케이션 구축에 대한 저자의 경험에 대해 설명하고 특히 Cloudfront의 대기 시간을 줄이는 데 중점을 둡니다. 저자는 프로젝트 배경을 설명하고 낮은 대기 시간을 달성하는 다양한 방법을 모색하고 사용 된 아키텍처.
저자는 최종 일관성의 중요성을 강조하고 다른 공급 업체의 나머지 결과를 집계하면서 첫 번째 결과를 소비자에게 반환 해야하는 과제에 대해 논의합니다. 이 팀은이 목표를 달성하기 위해 비동기 통화와 AWS Elasticache를 사용합니다.
인프라 측면에서 저자는 확장 성을 위해 AWS Elastic Container Service (ECS)를 선택하고 고 가용성을위한 Amazon Cloudfront를 선택했습니다. Cloudfront는 Redis의 AWS Elasticache 위에 캐싱의 두 번째 층 역할을합니다. 이 기사는 시스템을 설명하기위한 전체 AWS 아키텍처 다이어그램을 제공합니다.
고 가용성 및 확장 성을 보장하기 위해 ECS 서비스를위한 자동화가 구현되었습니다. Application Load Balancer는 건강한 Fargate 작업을 감지하고 건강에 해로운 작업을 종료하며이를 대체 할 새로운 작업을 시작합니다. 여러 가용성 영역을 사용하면 가용성 구역을 사용할 수 없어도 응용 프로그램이 계속 실행되도록합니다.
저자는 JMeter를 사용하여로드 테스트를 수행하고 응용 프로그램 부하 밸런서와 CloudFront 간의 대기 시간을 비교했습니다. 결과는 클라우드 프론트를 사용할 때 0% 오류율과 함께 대기 시간이 크게 감소한 것으로 나타났습니다.
결론적으로, 저자는 프로젝트가 보상을 받고 구현 된 아키텍처에 대한 Ascenda 충성도의 피드백을 제공합니다. 이 기사는 응용 프로그램의 데모를 보는 초대로 끝납니다.

질문과 답변

1. Cloudfront의 대기 시간 증가에 기여할 수있는 일부 이벤트는 무엇입니까??

문제 해결 과정에서 다음 이벤트를 고려해야합니다
– DNS 조회 프로세스 및 TCP 및 SSL/TLS 협상을 포함하여 클라이언트와 Cloudfront Edge 위치간에 요청이 필요한 시간.
– 원산지 DNS 조회 프로세스, TCP 및 SSL/TLS Origin과의 협상을 포함하여 Cloudfront와 Origin 사이에 요청하는 데 걸리는 시간, Origin이 객체를 처리하고 응답하는 데 걸리는 시간.
2. 클라우드 프론트에서 대기 시간을 해결하고 줄이는 방법?

Cloudfront에서 대기 시간을 해결하고 줄이려면 다음을 수행하십시오
– 위에서 언급 한 이벤트 중 어느 쪽이 대기 시간에 기여하는지 식별합니다.
– 각 이벤트에 대해 각 프로세스를 분석하고 최적화합니다. 예를 들어 효율적인 DNS 조회를 보장하고 TCP 또는 SSL/TLS 라운드 트립의 수를 최소화하며 원점 응답 시간을 최적화하십시오.
– 클라우드 프론트 모니터링 및 로깅 도구를 사용하여 데이터를 수집하고 배포 성능에 대한 통찰력을 얻으십시오.
– 최적의 성능을 보장하기 위해 Cloudfront 구성을 정기적으로 검토하고 개선하십시오.
삼. 응용 프로그램에서 최종 일관성의 중요성은 무엇입니까?

응용 프로그램은 파티션 허용 오차를 희생하지 않고 고 가용성을 달성하기 위해 최종 일관성이 필요합니다. Brewer ‘s Theorem (CAP 정리)으로 인해 엄격한 일관성이 실현 가능하지 않으며, 이는 분산 시스템에서 동시에 일관성, 가용성 및 파티션 허용 오차를 보장하는 것이 불가능하다는 것을 나타냅니다. 최종 일관성을 선택함으로써 응용 프로그램은 나머지 결과를 집계하면서 소비자에게 첫 번째 결과를 신속하게 제공 할 수 있습니다.
4. 팀이 여러 호텔 공급 업체의 결과는 어떻게 발생합니까??

이 팀은 여러 호텔 공급 업체에 대한 비동기 통화를 사용합니다. 이를 통해 첫 번째 결과를 소비자에게 반환하면서 백그라운드에서 나머지 결과를 점차 집계 할 수 있습니다. Redis 용 AWS Elasticache도 결과를 캐시하는 데 사용되어 성능 향상.
5. 아키텍처에서 AWS 탄성 컨테이너 서비스 (EC)를 사용하는 목적은 무엇입니까??

AWS 탄성 컨테이너 서비스 (EC)는 응용 프로그램의 확장 성을 보장하는 데 사용됩니다. 컨테이너를 사용하면 응용 프로그램을 쉽게 관리하고 배포 할 수 있으며, 백엔드 서비스를 그에 따라 스케일링하여 트래픽로드를 처리하기 위해 자동화가 구현됩니다.
6. Amazon Cloudfront는 어떻게 고 가용성을 제공합니까??

Amazon Cloudfront는 Redis의 AWS Elasticache 위에 캐싱의 두 번째 층 역할을합니다. 가장 가까운 가장자리 위치에서 최종 사용자로 컨텐츠를 캐시하고 전달하는 CDN (Content Delivery Network) 역할을합니다. 이를 통해 대기 시간을 줄이고 S3에서 호스팅 된 정적 React JS 웹 응용 프로그램이 유지되는 데 도움이됩니다.
7. ECS 서비스에서 Autoscaling 사용의 이점은 무엇입니까??

자동화는 적절한 양의 자원과 용량을 프로비저닝하여 응용 프로그램이 현재 수요를 처리 할 수 ​​있도록합니다. 백엔드 서비스가 자동으로 확장 및 출력 할 수 있으므로 결함이 발생하고 비용 효율적입니다.
8. 응용 프로그램로드 밸런서는 Fargate 작업의 건강을 보장하는 방법?

Application Load Balancer는 백엔드 서비스에서 건강 검사 엔드 포인트를 사용하여 Fargate 작업의 건강을 결정합니다. Health Check Endpoint에 도달 할 수없는 경우, 건강에 해로운 작업을 고려하고 대상 그룹에서이를 데려 오르고 종료하며이를 대체 할 새로운 작업을 시작합니다. 이렇게하면 가용 영역을 사용할 수없는 경우에도 응용 프로그램을 사용할 수 있습니다.
9. 클라우드 프론트가 응용 프로그램로드 밸런서에 비해 어떤 이점을 제공합니까??

수행 된 하중 테스트에서 CloudFront에 대한 요청은 응용 프로그램 부하 밸런서와 비교하여 대기 시간이 크게 감소했습니다. Cloudfront는 CDN 역할을하며 최종 사용자에 가까운 에지 위치에서 컨텐츠를 캐시하고 전달하는 데 도움이되므로 성능이 향상되고 대기 시간이 줄어 듭니다.
10. 저자는 프로젝트 작업의 경험을 어떻게 설명합니까??

저자는이 프로젝트를 특히 AWS의 초보자에게 어려운 것으로 묘사합니다. 그러나 성공적인 구현과 놀라운 결과를 보는 것도 보상을 받았습니다.

Cloudfront에서 대기 시간을 해결하고 증가시키는 방법

уенате, как с помомо칭은 아마존 Cloudfront наладить доставку контента ускорить работу интетет-рериложений доне buntantantrantantrantantrantantrantantrantantrantantrom ¢ ¯ не raj.

Amazon Cloudfront로 낮은 대기 시간을 달성합니다

고 가용성과 최종 일관성으로 웹 응용 프로그램 구축

게시

4 분 읽기

2021 년 5 월 23 일

배경

이것은 최근 2021 년 상반기에 한 프로젝트였습니다. AWS (Amazon Web Services)를 사용하여 고성능 응용 프로그램을 구축 해야하는 Ascenda 충성도와의 협력이었습니다. 응용 프로그램 요구 사항은 최종 일관성을 달성하면서 확장 가능하고 사용할 수 있어야한다는 것입니다.

파티션 허용 오차를 희생하지 않고 고 가용성과 엄격한 일관성을 달성하는 것은 사실상 불가능했기 때문에 최종 일관성과 엄격한 일관성을 언급하는 것이 중요합니다. 이것은 브루어 때문입니다’S 정리 (캡 정리).

응용 프로그램과 관련하여 주요 기능은 다른 호텔 공급 업체의 결과를 집계하고 소비자에게 대기 시간이 낮은 결과를 표시하는 것입니다 (응용 프로그램을 사용하는 사람). 응용 프로그램이 다른 엔드 포인트가 다른 여러 호텔 공급 업체와 2 초에서 20 초 범위의 대기 시간 시간이 다른 여러 호텔 공급 업체에 연결되므로 첫 번째 결과를 먼저 소비자에게 반환하고 결국 최상의 결과를 제공하는 것이 어려운 과제입니다.

탐구

우리 팀은이 요구 사항을 충족시킬 수있는 다양한 방법을 탐구합니다. 우리는 AWS, 디자인 패턴 및 커뮤니케이션 패턴에서 사용할 수있는 다양한 서비스를 고려했습니다. 프로그래밍 측면에서, 우리는 여러 공급 업체에 대한 비동기 호출을 사용하여 결과를 집계하여 소비자에게 먼저 결과를 제공하면서 나머지 결과를 천천히 집계 할 수 있습니다. 저의 팀원은 여기에 대한 멋진 기사를 작성했습니다.

아마존 웹 서비스 (AWS)

인프라 측면에서, 우리 팀은 AWS Elastic Container Service (ECS)를 사용하여 확장 가능한 요구 사항과 Amazon Cloudfront를 제공하여 고 가용성을 보장하기로 결정했습니다. Amazon Cloudfront는 또한 Redis의 AWS Elasticache에 캐시 된 결과 위에 두 번째 캐싱 층으로 작용합니다.

이것은 전체 AWS 아키텍처 다이어그램입니다.

위의 다이어그램에서 Amazon Cloudfront는 S3 버킷에 저장된 정적 React JS 웹 애플리케이션에 고 가용성을 제공 한 것도 분명합니다. AWS S3 스토리지의 데이터 내구성은 99입니다.999999999% 지역 주변에 건설되어 S3에서 호스팅 된 정적 웹 페이지가 다운되지 않을 것입니다. 또한 정적 웹 페이지가 포함 된 S3 버킷에서 버전화가 활성화되어 우발적 인 삭제를 방지하여 특정 객체의 모든 버전을 보존, 검색 및 복원 할 수 있습니다.

응용 프로그램의 고 가용성과 확장 성을 보장하기 위해 ECS 서비스를위한 자동화가 구현되었습니다. 이렇게하면 백엔드 서비스가 결함이 발생하고 트래픽에 따라 적절하게 확장 및 출력하여 트래픽 부하를 처리 할 수 ​​있습니다.

Application Load Balancer는 백엔드 서비스의 Health Check Endpoint를 사용하여 Fargate 작업이 건강 상태인지 감지합니다. 건강 검사 엔드 포인트에 도달 할 수없는 경우, 건강에 해로운 작업을 고려하여 대상 그룹에서이를 표시하고, 작업을 종료하며,이를 대체 할 새로운 작업을 시작합니다. 여러 가용성 영역에 걸쳐 ECS 서비스를 배포함에 따라 가용 영역을 사용할 수없는 경우 응용 프로그램을 계속 실행할 다른 가용 영역에 인스턴스가 있습니다. 트래픽에 따라 더 많은 작업이 자동으로 시작됩니다. 자동화를 사용하여 현재 수요를 처리하기 위해 적절한 양의 자원과 용량 만 제공되어 장기적으로 비용 절감을 제공합니다.

결과

우리는 JMeter를 사용하여 500 명의 사용자와 1 개의 램프 업으로 응용 프로그램을로드하여 두 가지 다른 엔드 포인트 (응용 프로그램로드 밸런서 및 Cloudfront)를 가리 켰습니다. 결과를 살펴보면 클라우드 프론트에 대한 요청이 대기 시간이 크게 감소함에 따라 훨씬 나아 졌다는 것을 알 수 있습니다 (대기 시간 감소). 오류율도 놀랍게도 0%였습니다. 이는 AWS ECS의 고 가용성 및 자동 스케일링 기능 때문이어야합니다.

테이크 아웃

이 프로젝트는 특히 AWS의 초보자들에게 어려움을 겪었지만, 이러한 종류의 놀라운 결과를 볼 수 있다는 것은 확실히 보람이있었습니다.

Ascenda 충성도로 건축에 대한 일부 피드백 :

“S3-> 좋은 아이디어에 대한 프론트 엔드 호스팅. 그들처럼 보인다’진정한 스파 구축”

우리가 달성 한 것에 관심이 있다면 여기에서 응용 프로그램의 데모를 볼 수 있습니다!

읽어 주셔서 감사합니다 : d

Cloudfront에서 대기 시간을 해결하고 증가시키는 방법?

Amazon Cloudfront의 응답에서 대기 시간이 증가하고 있습니다. 원인을 식별하고 대기 시간을 줄일 수있는 방법?

간단한 설명

CloudFront에서 대기 시간을 해결하기 위해 먼저 다음 이벤트 중 어느 이벤트가 대기 시간에 기여하는지 식별하십시오

  • 클라이언트와 Cloudfront Edge 위치 사이에 요청이 필요한 시간. 여기에는 도메인 이름 시스템 (DNS) 조회 프로세스 및 TCP 및 SSL/TLS 협상이 포함됩니다.
  • Cloudfront와 Origin 사이에 요청하는 데 걸리는 시간. 여기에는 Origin DNS 조회 프로세스, TCP 및 SSL/TLS Origin과의 협상 및 Origin이 객체를 처리하고 응답하기 위해 기원이 취한 시간이 포함됩니다.

그런 다음 가장 큰 대기 시간을 일으키는 이벤트에 대한 문제 해결 단계를 따르십시오.

해결

클라우드 프론트에서 대기 시간을 일으키는 이벤트를 식별합니다

클라우드 프론트에서 대기 시간을 일으키는 이벤트를 식별하려면 다음 중 하나를 수행하십시오

  • 다음 컬 명령을 실행하십시오

curl -w "dns_resolution : %| tcp_negotiation_time : %| ssl_negotiation_time : %| ttfb : %| 총 시간 : %\ n"-o/dev/null -vsl https : // www.예.com

메모: 바꾸다 .클라우드 프론트 도메인 이름 또는 대체 도메인 이름 (cname) 및 URL 경로가있는 com.

  • 네트워크 요청의 각 단계가 웹 브라우저의 개발자 도구에서 걸리는 시간을 확인하십시오. 예를 들어 Mozilla Firefox를 사용하는 경우 타이밍 탭 이이 정보를 제공합니다.

를 기반으로 걸린 시간 각 이벤트 또는 요청에 대해이 기사의 관련 해상도 섹션을 참조하십시오.

과거에 대기 시간을 관찰 한 경우 필드를 확인하십시오 걸린 시간 그리고 첫 번째 바이트 클라우드 프론트 액세스 로그에서. Cloudfront Access Logs는 DNS 조회 프로세스 및 TCP 및 SSL/TLS 협상을 위해 클라이언트가 취한 시간을 기록하지 않습니다

DNS 해상도의 대기 시간 감소

  • 클라이언트 측 DNS에서 DNS 캐싱 시간을 늘리십시오.
  • 증가 살기 시간 (TTL) 로컬 DNS 서버의 캐시.
  • 증가 TTL DNS 레지스트라/제공 업체의 DNS 레코드에서.
  • Resolver 인 경우 DNS 서버 인터넷 서비스 제공 업체에서 대기 시간을 일으킨 다음 공개 DNS 서버 사용을 고려합니다.

TCP 및 SSL/TLS의 대기 시간 감소 - 협상 시간

  • 로컬 네트워크 대역폭 및 인터넷 대역폭을 확인하십시오.
  • 인터넷 서버 제공 업체 또는 라우터에 네트워크 중단이 있는지 확인하십시오.
  • 인터넷 서비스 제공 업체 또는 네트워크 경로를 통해 로컬 네트워크 성능을 최적화하십시오.
  • 웹 브라우저가 가장 가까우며 올바른 팝 위치를 찾을 수있는 올바른 DNS 리졸버를 사용하고 있는지 확인하십시오.
  • HTTPS 사이트 성능을 향상 시키려면 인증 체인을 짧게 유지하십시오.
  • 대기 시간은 방화벽, 프록시 또는 로컬 라우터로 인해 발생할 수 있습니다. 이 중 어느 것이 대기 시간을 일으키는 지 확인하려면 시스템에서 다음 MTR 명령을 실행하십시오. 자세한 내용은 MTR의 네트워크 문제 진단을 참조하십시오.

MTR -RW 예.com-no-dns

메모: 바꾸다 예.com 도메인 이름으로.

첫 바이트 (TTFB) 및 총 시간 (TTL)에 걸친 시간의 대기 시간 감소

Cloudfront가 "x-cache : cloudfront에서 hit"을 반환하는 경우

Cloudfront가 가장 가까운 가장자리 위치에서 요청이 제공되면 "x-cache : hit from cloudfront"를 반환합니다. 대기 시간을 줄이기 위해 :

  • 클라우드 프론트 자동 압축을 켜서 파일을 압축하고 다운로드 속도를 높이십시오.
  • 로컬 또는 브라우저 캐싱을 사용하여 Cloudfront에 대한 요청을 줄입니다. 파일에서 캐시 제어 헤더를 지정하여 웹 브라우저를 브라우저의 메모리 또는 로컬 디스크에 일정 시간 동안 유지하도록 웹 브라우저를 지시하십시오. 캐시 제어 헤더에 대한 자세한 내용은 Cloudfront가 객체를 캐시하는 시간을 지정하는 것을 참조하십시오.

Cloudfront가 "x-cache : miss from cloudfront"를 반환하는 경우

Cloudfront가 요청이 원점으로 전송되면 "x-cache : miss from cloudfront"를 반환하는 경우. 대기 시간을 줄이기 위해 :

  • 클라우드 프론트 엣지 위치 사이의 왕복 시간 (RTT)을 원인 위치로 줄입니다. Cloudfront Edge 위치의 요청이 가장 가까운 원산지 위치로 이동하면 RTT가 적습니다. 그러나 TTFB는 요청이 원점에서 지리적으로 먼지 위치에서 나온 경우 영향을받습니다. RTT를 최적화하려면 사용자와 지리적으로 더 가까운 여러 지역에서 Origin Server를 복제합니다. 그런 다음 원산지 도메인 이름의 DNS를 설정하여 대기 시간 또는 지리적 위치에 따라 원점 서버로 요청을 라우팅합니다. Amazon Route 53을 DNS 제공 업체로 사용하는 경우 자세한 내용은 라우팅 정책 선택을 참조하십시오.
  • 클라우드 프론트 자동 압축을 켜서 파일을 압축하고 다운로드 속도를 줄입니다. 파일 형식이 Cloudfront Automatic Compression에서 지원되지 않으면 해당 파일을 사전 압축하여 내용 인코딩 머리글.
  • 원점 대기 시간 메트릭을 활성화하여 원점에서 클라우드 프론트로의 대기 시간을 확인하십시오. 메모: 표준 클라우드 워치 속도가 적용됩니다.
  • Cloudfront Origin Shield를 켭니다.
  • 서버 타이밍 헤더 기능이 켜진 상태에서 응답 헤더 정책 추가. 이 기능은 Cloudfront와 Origin 간의 대기 시간에 기여하는 이벤트를 이해하는 데 도움이됩니다.

클라우드 프론트가있는 다중 지역 API를 가진 최종 사용자의 대기 시간을 줄입니다

조직이 성장함에 따라 지리적으로 지리적으로 분산 된 사용자에게 낮은 대기 시간을 제공하여 클라우드에 분산 된 글로벌 인프라를 갖도록 촉구해야합니다. 이 기사에서는 글로벌 API 엔드 포인트를 배포하여 애플리케이션을 늘리는 동안 최종 사용자의 대기 시간을 줄이는 방법을 설명합니다’가용성.

AWS Global Network 및 Amazon Cloudfront를 사용하여 애플리케이션을 여러 AWS 지역에 배포함으로써 조직은 사용자가 API 요청에 대한 대기 시간이 가장 낮은 지역의 API 엔드 포인트에 연결할 수 있습니다’S OROIG, 실시간 영역간에 자동으로 동기화되는 데이터에 액세스하면서.

GraphQL API 개발자에 대한 솔루션을 설명하기 위해 AWS AppSync를 사용하여 아키텍처를 제공합니다. 이 아키텍처는 다중 지역 활성/활성 시나리오, 즉 Cloudfront, Amazon Route 53, AWS 인증서 관리자 (ACM) 및 AWS Lambda@Edge를 지원하기 위해 일련의 구성 요소에 의존합니다.

GraphQL의 경우,이 기사는 Active/Passive AppSync Global Solution을 활성/활성 Appsync Global Solution을 활성/활성 Appsync Global Solution을 변환하는 방법을 설명하여 Amazon DynamoDB Global 테이블을 사용하여 AWS AppSync의 이전 게시물 멀티 영역 배포를 보완합니다. 또한 AWS AppSync API의 사용자 정의 도메인 이름에 대한 클라우드 프론트 기반 대안을 제공합니다.

만약 너라면’RE REST API DEVELOGER, Multi-Region Active-Active Architecture를 위해 Amazon Cloudfront와의 대기 시간 기반 라우팅을 사용하여 유사한 결과를 얻을 수 있습니다. 거기 당신’LL은 또한 건축 적 고려 사항과 응용 프로그램의 기능, 탄력성 및 성능에 미치는 영향을 통해 생각하는 데 도움이되는 비용 및 복잡성 트레이드 오프에 대한 지침을 찾습니다.

클라우드 프론트가있는 멀티 지역 그래프 QL API

우리는 조직이 GraphQL을 사용하여 API를 구축하기 위해 점점 더 많은 데이터베이스, 마이크로 서비스 및 API를 단일 엔드 포인트로 쿼리 할 수있는 능력을 제공함으로써 응용 프로그램을 더 빠르게 제공하기 위해 API를 더 빨리 제공하는 것을 볼 수 있습니다.

다음 아키텍처 다이어그램 (그림 1)은 애플리케이션을 늘리는 동안 최종 사용자의 대기 시간을 줄이는 방법을 설명합니다’A Amazon DynamoDB 글로벌 테이블에서 지원하는 활성/활성 실시간 데이터 동기화와 함께 여러 영역에서 GraphQL API 엔드 포인트를 제공하여 가용성. 이 다이어그램의 PDF 버전은이 링크에서 사용할 수 있습니다. Amazon DynamoDB 복제를 구현하는 방법에 대한 자세한 내용은 Amazon DynamoDB Global 테이블을 사용하여 AWS AppSync의 게시물 멀티 영역 배포를 읽으십시오.

클라우드 프론트가있는 다중 지역 그래프 QL API의 다이어그램

그림 1 : Cloudfront가있는 다중 지역 그래프 QL API의 다이어그램

다음 단계를 따라 다이어그램에 표시된 아키텍처를 구현하십시오

  1. AWS AppSync를 사용하여 두 개 이상의 영역에 GraphQL API를 배포 한 다음 DynamODB 데이터베이스에 연결된 AWS Lambda Resolvers를 사용하여 AppSync 명령 및 쿼리를 처리합니다.
  2. 클라이언트에게 모든 지역의 데이터 변경 사항에 대해 알리려면 DynamODB 글로벌 테이블을 활성화하여 지역간에 데이터를 동기화 한 다음 Lambda 핸들러로 DynamODB 데이터 스트림을 처리하여 목적으로 지어진 GraphQL 스키마 구독을 트리거합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 Amazon DynamoDB Global Tables를 사용하여 AWS AppSync의 게시물 멀티 지역 배포를 참조하십시오.
  3. 사용자 정의 도메인을 지원하려면 도메인을 업로드하십시오’SSL 인증서 ACM에 SSL 인증서를 클라우드 프론트 분포에 첨부하십시오.
  4. Route 53을 DNS Name Resolution Service로 사용하여 도메인 이름을 Cloudfront에 가리 킵니다.
  5. 53 번 도로에서 라우팅 규칙을 설정하여 위치에 대한 대기 시간이 적은 글로벌 클라이언트를 AWS 지역으로 전환하십시오.
  6. 고객이 모든 지역의 AWS AppSync 엔드 포인트를 원활하게 인증하고 Lambda@Edge를 사용하여 최상의 영역을 위해 Query Route 53을 사용하여 요청을 전달하고 각 지역 appsync의 특이성을 추상화하여 승인을 정상화 할 수 있습니다.
  7. 그런 다음 전 세계 고객이 Edge 위치에서 사용 가능한 단일 엔드 포인트에서 GraphQL API에 연결할 수 있습니다.
  8. Cloudfront는 클라이언트를 원활하게 노선합니다’ 클라이언트에 대한 대기 시간이 가장 낮은 지역의 API에 대한 요청’S 위치.

클라우드 프론트 구성

이 기사에서 다중 지역 활성/활성 솔루션에 대한 Cloudfront를 구성하는 단계는 다음과 같습니다

  • 하나의 간단한 일반 클라우드 프론트 분포를 만들어 시작하십시오 (여기서 방법 참조).
  • 분포의 기원은입니다’t 우리 솔루션의 최종 상태와 관련하여 API 엔드 포인트로 대체되므로. 그러나 lambda@edge 함수가 호출되도록 해결할 수 있어야합니다. 예를 들어 AWS를 사용할 수 있습니다.아마존.당신의 기원으로 com.
  • 간단하게하기 위해이 게시물에 설명 된 솔루션은 Global-API로 시작하는 안전한 사용자 정의 URL을 구현합니다 . 예를 들어, 사용자 정의 도메인이 예제 인 경우.Com, 그런 다음 Active/Active API는 https : // global-Api에서 사용할 수 있습니다.예.com . 지원하려면 대체 도메인 이름을 추가하십시오 (E.g., 글로벌 API.예.com) 클라우드 프론트 분포 (여기서 어떻게 참조).

클라우드 프론트 배포에서 동작을 편집하고 다음 속성 값을 설정하십시오

  1. 변화 “허용 HTTP 방법” 에게 “ 얻기, 머리, 옵션, 풋, 게시, 패치, 삭제 ” - 이렇게하면 GraphQL 쿼리를 처리하는 데 필요한 게시물 요청이 가능합니다.
  2. 변화 “캐시 정책” 에게 “ 캐싱 디자이션 ” - 모든 요청이 동적인지 확인하기 위해 모든 캐시를 제거합니다.
  3. 변화 “원산지 요청 정책” 에게 “ AllViewer ” - Lambda@Edge 함수로 전송 된 페이로드에 필요한 정보가 추가됩니다.

ACM 구성

이 기사에 설명 된 솔루션을 구현하려면 ACM을 사용하여 사용자 정의 도메인에 공개 인증서를 요청하십시오 (여기서 방법 참조). 이 솔루션은 하위 도메인을 사용하므로 와일드 카드를 지원하는 인증서를 요청해야합니다. 예를 들어, 도메인 인 경우 “예.com”, 그런 다음 두 가지를 처리 ​​할 인증서를 요청하십시오 “예.com” 그리고 “*.예.com”.

ACM에서 인증서를 사용할 수 있고 검증되면 Cloudfront 배포에 첨부하십시오 (여기서 방법 참조).

Amazon Route53 구성

이 기사에 설명 된 솔루션을 구현하려면 도메인의 Route 53 호스팅 영역에서 다음 레코드를 작성하십시오

  • 클라우드 프론트 분포의 진입 점으로 사용하기위한 간단한 CNAME 레코드 (여기서 방법 참조).
  • 여러 지역 API를 구성하기위한 대기 시간 기반 라우팅 정책이있는 레코드 (여기서 방법 참조). 이렇게하면 가장 낮은 대기 시간을 제공하는 AWS 지역의 요청에 따라 사용자의 성능이 향상됩니다.
  • 각 영역에 대한 사용자 정의 도메인 (다음과 같은 Lambda 함수에서 동일한 사용자 정의 도메인 사용).

예를 들어, 도메인 인 경우 “ 예.com ”, 클라우드 프론트 배포는입니다 “ ABCDEFGHIJ.클라우드 프론트.그물 ”, 그리고 유럽 (아일랜드)과 아시아 태평양 (시드니) 지역에 API가 있으면 그림 2와 유사한 Route 53 구성으로 끝나야합니다.

Route 53의 레코드 테이블, Global-api.example.com을 ABCDEFGHIJ.CLOUDFRONT.NET로 간단한 라우팅 정책 라우팅 트래픽을 가진 CNAME로 표시합니다. Latency-Routing.example.com은 아일랜드로 유럽 (아일랜드) 라우팅을 기반으로 한 대기 시간 기반 라우팅을 갖춘 CNAME입니다. 시드니에 아시아 Pacitic (Sydney) 라우팅에 대한 대기 시간 기반 라우팅이있는 CNAME로서 Latency-Routing.example.com

그림 2 : 루트 53의 기록 표

Route 53을 구성하는 동안 다음과 같은 일반적인 실수를 주목하십시오

  • 그만큼 “아일랜드” 그리고 “시드니” 위의 예에서 레코드 값 AREN’t 지역 API 종점의 URL. 대신, 이들은 다음과 같은 lambda@edge 코드에 정의 된 사전의 키입니다.
  • 위의 예제의 대기 시간 기록 이름은 Aren입니다’t 영역 별. 대신, 그들은’Lambda@Edge가 권장 지역의 쿼리 루트 53에 연락 할 수있는 일반적인 레코드 이름’S 키.

솔루션의 맥락 에서이 경로 53 구성이 어떻게 사용되는지에 대한 자세한 내용은이 기사의 테스트 섹션에서 단계를 실행하십시오. 이를 통해 빈 AWS 계정에서 시작하여 VUE로 테스트 할 수있는 완전히 기능적인 다중 지역 환경으로가는 길을 구축 할 수 있습니다.JS 응용 프로그램.

lambda@edge에 대한 코드

이 기사에서 솔루션을 구현하려면 노드에서 lambda@edge 함수를 만듭니다.이 섹션의 코드 스 니펫을 템플릿으로 사용하는 JS (여기서 어떻게 참조).

CloudFront에 기능을 배포하는 방법에는 여러 가지가 있습니다. 간단한 방법은 선택하는 것입니다 “ 행위 ” Lambda 편집기의 드롭 다운 다음 선택하십시오 “ Lambda@Edge에 배포하십시오 ”.

다음 코드를 사용하면 들어오는 요청에 가장 적합한 AWS 지역을 찾을 수 있습니다. 그것은 당신이 이미 당신의 Route 53에 대한 라우팅 정책을 설정했다고 가정합니다 “ 대기 시간 경로 ”. 위의 53 경로 표에서 예제를 고려할 때이 기능의 가능한 결과는 다음과 같습니다 “아일랜드” 그리고 “시드니”.

const dns = require ( 'dns'); Bestorigin을 보자; 만료 = 0; TTL = 1하자; dns_host = '대기 시간 경로를 보자.예.com '; 함수 getBestregion () < console.log("inside resolver"); const now = Date.now(); if (now < expires) return Promise.resolve(bestOrigin); return new Promise((resolve, reject) => < dns.resolveCname(DNS_HOST, (err, addr) =>< bestOrigin = addr[0]; expires = now + TTL; resolve(bestOrigin); >); >); > 

다음 코드를 사용하면 최고의 AWS 지역 (Route 53에 의해 판단 된대로)을 게시 된 API에 매핑 할 수 있습니다. 이 코드는 위 표의 Route 53 설정을 고려하고 2 개의 GraphQL API 항목 (아일랜드와 하나는 시드니 용)으로 간주합니다. 지역 API 엔드 포인트의 설정과 일치하도록이 코드를 변경해야합니다.

영역 = []; // 소문자 사용. 지역 [ '아일랜드'] = < "Host": "" >; 지역 [ '시드니'] = < "Host": "" >; 함수 get RegionalSettings (Bestregion)

다음 코드는 GetBestregion 함수를 사용하여 최고의 AWS 영역 (Route 53에 따라)을 찾은 다음 getRegionalSettings 함수를 사용하여 API의 도메인 및 비밀에 맵핑하고 마지막으로 요청 헤더를 변경하여 선택한 API로 요청을 전달합니다.

수출.handler = async (이벤트, 컨텍스트, 콜백) => < const request = event.Records[0].cf.request; let bestRegion = await getBestRegion(); let map = getRegionalSettings(bestRegion); let target_domain = map["Host"]; // Forward GraphQL subscription requests for WebSockets. request.origin.custom.domainName = target_domain; // Forward REST and GraphQL query/mutation requests. request.headers["host"] = [< key: "host", value: target_domain >]; // 콘솔.log (`요청 헤더는 "$"`) 콜백 (null, request); >;

엔드 투 엔드 흐름

다음 다이어그램 (그림 3)은 솔루션 간의 엔드 투 엔드 커뮤니케이션 흐름을 보여줍니다&rsquo;S 구성 요소.

클라이언트의 요청이 먼저 Route 53 (또는 다른 DNS 서버)에 의해 먼저 번역 된 다음 DNS에 등록 된 Cloudfront 배포로 전송되는 방법을 시각적으로 설명합니다. 그런 다음 CloudFront가 요청을 확인합니다&rsquo;S ACM을 사용한 S 인증서를 사용한 다음 Lambda@Edge를 활용하여 클라이언트에 가장 낮은 대기 시간을 사용하여 원점을 API 엔드 포인트로 변경합니다. 마지막으로 요청은 최고의 지역 API 엔드 포인트와 API로 전송됩니다&rsquo;S 응답은 CloudFront에 의해 클라이언트에게 다시 전달됩니다.

메시지 흐름 다이어그램

그림 3 : 메시지 흐름도

다중 지역 활성/활성 솔루션 테스트

이 기사에 설명 된 시험에서, 당신은 당신입니다&rsquo;ll 이전 Route 53 샘플 구성에서 사용 된 동일한 아일랜드 및 시드니 지역을 사용하십시오. 테스트 단계는 당신을 가정합니다&rsquo;VE는 이미이 기사에서 언급 된 이전 단계를 수행했습니다&rsquo;다중 지역 솔루션을 구축하기위한 이전 장.

어떤 지역을 제어하기 위해&rsquo;테스트하는 동안 히트, 당신&rsquo;VPN 프록시 클라이언트 또는 이와 유사한 것이 필요합니다. 이 기사의 테스트 단계는 스웨덴에 기반을 둔 오픈 소스 상업용 VPN 서비스 인 Mullvad를 사용하여 수행되었습니다.

다중 지역 활성/활성 그래프 api 테스트

다음 단계에 따라 GraphQL API 엔드 포인트에서 다중 지역 솔루션의 테스트를 준비하십시오.

이 섹션에서는 AppSync에 대한 이전 경험이 없더라도 처음부터 AppSync 테스트 환경을 처음부터 구축 할 수 있습니다. 너&rsquo;ll 다음 두 섹션에서 GraphQL 쿼리 및 구독을 테스트하기 위해이 환경을 사전 조건으로 사용합니다.

  1. 아일랜드와 시드니 지역에서 샘플 그래프 QL API를 시작하십시오. 이것은 지역 DynamODB 데이터베이스에서 지원하는 샘플 스키마와 함께 완벽한 기능적 appsync API 엔드 포인트를 배포합니다.
    1. 테스트에서 어떤 지역에 부딪히는 지에 대한 의구심을 제거하려면 Don&rsquo;t DynamoDB 글로벌 테이블 활성화-그렇지 않으면, 실시간 간 교차 지역 데이터 및 구독 복제를 활성화하려면 Amazon DynamoDB 글로벌 테이블을 사용하여 AWS AppSync의 멀티 영역 배포를 따르십시오. 이 기사의 테스트는 당신이하지 않는다고 가정합니다&rsquo;t 활성화 복제.
    1. 아일랜드-아일랜드를 사용하십시오.예.예를 들어, 아일랜드로서 com&rsquo;S 사용자 정의 도메인 이름;
    2. Sydney-Appsync를 사용하십시오.예.예를 들어, Com은 시드니입니다&rsquo;S 사용자 정의 도메인 이름;
    3. API를 사용자 정의 도메인 이름에 연결해야합니다.

    지역 [ '아일랜드'] = < "Host": ".cloudfront.net" >; 지역 [ '시드니'] = < "Host": ".cloudfront.net" >;

    1. 테스트 목적으로 다음 노드를 사용하여 GraphQL API에 대해 간단한 Lambda 권한 제자 기능을 만듭니다.JS 샘플 코드 및 두 지역에 배포. 이 함수는 문자열을 수락합니다 &ldquo; 사용자 정의 승인 &rdquo; 유일한 유효한 승인 토큰으로. 하드 코딩 된 인증 토큰이 있습니다&rsquo;좋은 연습, 그리고 우리&rsquo;테스트 단순성을 위해 여기에서만 사용합니다. 대신 AWS Secrets Manager에 토큰을 저장하는 것을 고려하십시오.

    수출.핸들러 = 비동기 (이벤트) => < const < authorizationToken >= 이벤트 리턴 < isAuthorized: authorizationToken === 'custom-authorized', resolverContext: <>>; >; 

    1. Lambda Austorizer 기능을 지역 AppSync API 엔드 포인트의 기본 승인자로 설정하고 (여기서 방법 참조) AppSync 구성에서 API 키를 제거하십시오. 이렇게하면 테스트를 수행하는 동안 간단한 토큰으로 API를 공개적으로 제공하여 테스트를보다 쉽게 ​​실행할 수 있습니다. 그러나 이것이 정확히 원하는 것이 아니라면 AppSync API를 보호하기 위해 사용 가능한 모든 옵션을 살펴 보는 것이 좋습니다.
    2. 아일랜드 지역에서 돌연변이를 만들어 샘플 레코드를 추가합니다 (자세한 내용은이 페이지 참조) :
      1. 아일랜드로 이동하십시오&rsquo;S aws appsync 콘솔.
      2. 아일랜드로 이동하십시오&rsquo;이전 단계에서 만든 s appsync api.
      3. 왼쪽에서 쿼리 탭을 선택하십시오.
      4. 인증 토큰 필드에서 사용자 정의 승인을 입력하십시오 (Lambda 승인자와 같이).
      5. 다음 돌연변이 명령을 실행하십시오
        돌연변이 생물 < createEvent( name: "Ireland" when: "" where: "" description: "" ) < id name >>

      당신을 가정합니다&rsquo;VE는 이미 Global-API를 설정했습니다.예.com이 게시물의 단계를 사용하여 리디렉션 한 다음&rsquo;앉다! 너&rsquo;다중 지역 앱 동기 엔드 포인트를 테스트 할 준비가되었습니다.

      다중 지역 활성/활성 그래프 Ql 쿼리 테스트

      당신을 가정합니다&rsquo;VE는 이미 이전 섹션에서 설명한대로 멀티 지역 AppSync 테스트 환경을 처음부터 구축하는 데 필요한 단계를 이미 따랐습니다.

      1. VPN 클라이언트에서 아일랜드 근처의 VPN 서버에 연결을 설정합니다 (E.g., 영국 런던).
      2. API를 CURL 명령으로 다음과 유사한 CURL 명령을 쿼리하여 샘플 데이터를 표시하고 도메인 이름을 자신의 것으로 바꾸고 Lambda 인증자가 허용하는 권한 토큰을 전달합니다.
        $ curl -xpost -h "권한 : 사용자 정의 승인"-d ' < "query": "query < listEvents < items < name >>> "> 'https : // global-api.예.com/graphql/
      3. 컬 반응이 있는지 확인하십시오
        < "data": < "listEvents": < "items": [ < "name": "Ireland" >] >>>
      4. VPN 클라이언트에서 시드니 근처의 VPN 서버에 연결을 설정합니다 (E.g., 호주 멜버른).
      5. 컬 명령을 다시 실행하십시오 - 이제 응답은
        < "data": < "listEvents": < "items": [ < "name": "Sydney" >] >>>

      보시다시피, 세계의 다른 위치에서 컬 명령을 실행하면 다른 appsync 엔드 포인트가 응답 할 수 있습니다&rsquo;동일한 다중 지역 GraphQL API 엔드 포인트를 강타합니다.

      다중 지역 활성/활성 그래프 QL 구독을 테스트합니다

      GraphQL 구독을 테스트하려면 다음 단계를 따라 Websockets를 사용하여 테스트하십시오.

      이 섹션은 또한 귀하를 가정합니다&rsquo;VE는 이미 이전 섹션에서 설명한 것처럼 다중 지역 앱 동기 테스트 환경을 처음부터 구축하는 데 필요한 단계를 이미 따랐습니다.

      다음 테스트 방법은 Post, Get 및 Websockets를 사용하여 API와 상호 작용할 수있는 응용 프로그램 인 Postman을 사용합니다. 다음 테스트에 사용 된 일련의 단계는 AWS AppSync의 실시간 WebSocket 클라이언트를 구축하는 지침을 기반으로합니다.

      1. WebSocket 연결을 열 때 보낼 핸드 셰이크 페이로드 생성. 명령 줄 도구에서 다음 명령을 실행하여 도메인 이름을 자신의 것으로 바꾸고 Lambda Agustizer에 정의 된 토큰을 사용하십시오. 결과는 Base64 암호화 문자열이어야합니다.이 문자열을 메모장에 저장하십시오&rsquo;나중에 우체부에게 필요합니다&rsquo;s 구성.
        $ echo '| 베이스 64
      2. Postman 에서이 페이지의 지침에 따라 새로운 WebSocket 연결을 만듭니다. 새 버튼을 선택한 다음 WebSocket 요청 버튼을 선택하여 수행 할 수 있어야합니다.
      3. 서버 URL 상자에 다음 URL을 입력하여 도메인 이름을 바꾸지 않도록하십시오
        WSS : // Global-API.예.com/graphql/실시간
      4. Params 섹션에서 다음 매개 변수를 추가하십시오
        1. 키 : 페이로드, 값 : e30 = (이것은 빈과 동일합니다 <>)
        2. 키 : 헤더, 값 : (첫 번째 단계에서 만든 Base64 문자열)
        1. 키 : Sec-Websocket-Protocol, 값 : GraphQL-Ws
        1. 우체부를 찾아 연결이 설정되었는지 확인하십시오&rsquo;메시지 섹션의 연결된 녹색 레이블과 WSS에 연결된 것을 찾아 : //. 같은 섹션의 메시지.

        < "id":"test", "payload": < "data": "", "extensions": < "authorization": < "Authorization":"", "host": "", > >>, "type": "start">

        신청 < subscribeToEventComments(eventId: "Ireland") < content >>

        1. Postman의 Start_ack 응답 메시지를 찾아 구독이 성공적으로 생성되었는지 확인하십시오&rsquo;S 메시지 섹션. 위의 구독 메시지의 경우 응답은 .

        돌연변이 < commentOnEvent( content: "test-comment", createdAt: "2000-01-01", eventId: "Ireland" ) < commentId eventId createdAt content >>

        보시다시피, 돌연변이는 영역에서 수행됩니다 (E.g., 아일랜드) 해당 지역에 연결된 구독을 트리거합니다. 단일 지역 돌연변이가 모든 지역에서 클라이언트 구독을 유발하는 경우 (E.g., 아일랜드와 시드니), 당신은 돌연변이 전파로 지역 간 복제를 설정해야합니다. Amazon DynamoDB 글로벌 테이블과 함께 AWS AppSync의 게시물 멀티 지역 배포를 따르려면이 작업을 수행하는 방법을 배우십시오.

        멀티 지역 GraphQL API를 테스트하기위한 증폭 응용 프로그램 구축

        이제 당신&rsquo;다중 지역 Active/Active GraphQL API가 쿼리와 구독 모두에서 작동한다고 확신하면 AWS Amplify를 활용하여 API의 테스트 클라이언트를 생성 할 수 있습니다.

        이 기사에서는 vue를 사용합니다.간단한 클라이언트 애플리케이션을 구축하기 위해 JavaScript를 증폭시킨 JS이지만 라이브러리는 iOS, Android 및 Flutter 클라이언트를 지원하므로 이러한 다양한 런타임에서 동일한 기능을 제공합니다. 지원되는 Amplify 클라이언트는 AppSync WebSocket 기능과 완전히 호환되는 내장 된 WebSocket 기능을 포함하여 몇 줄의 코드로 AppSync GraphQL API 백엔드와 상호 작용하는 간단한 추상화를 제공합니다.

        이 단계 시퀀스를 따라 테스트 응용 프로그램을 구축하십시오.

        1. 노드가 있는지 확인하십시오.JS 설치 - 다음 단계에 필요합니다.
        2. vue를 만듭니다.JS는 이러한 단계를 실행하여 아일랜드 지역의 응용 프로그램을 증폭시킵니다.
        3. 응용 프로그램을 아일랜드에 연결하십시오&rsquo;S API.
          1. 신청서를 아일랜드에 바인딩하기 위해 다음 명령을 실행하십시오&rsquo;s appsync endpoint, 대체 및
            Add CodeGen -apiid -profile을 추가하십시오
          2. 다음 명령을 실행하여 쿼리 및 구독에 대한 관련 코드를 생성하십시오
            Codegen을 증폭시킵니다
          1. 명령 줄 도구에서 NPM 실행 서브를 실행하십시오.
          2. 거기에 있는지 확인하십시오&rsquo;t 모든 오류.
          3. http : // localhost : 8080/ -로 이동하여 기본 vue가 표시됩니다.JS 응용 프로그램.

          ListEvents (필터 : $ 필터, 한도 : $ 한도, NextToken : $ NextToken) < items < id name where when description comments < items < content commentId >>> NextToken>

             

          1. 명령 줄 도구에서 NPM 실행 서브를 실행하십시오.
          2. 거기에 있는지 확인하십시오&rsquo;t 모든 오류.
          3. http : // localhost : 8080/ - - 이제 세상 어디에서나 테스트에서 작성한 아일랜드 이벤트가 나열되어 있어야합니다&rsquo;응용 프로그램을 실행합니다. 이것은 당신 때문입니다&rsquo;아일랜드에 직접 연결됩니다&rsquo;S 지역 종말점.
          4. 다음 단계를 앞두고 아일랜드 이벤트를 복사하십시오&rsquo;메모장에 대한 s id (이것은 임의의 36-character-lenght uuid입니다).

          돌연변이 < commentOnEvent( content: "test-comment", createdAt: "2000-01-01", eventId: "" ) < commentId eventId createdAt content >>

          1. SRC/AWS-Exports를 수정하십시오.JS 파일, 아일랜드에서 aws_appsync_graphqlendpoint 매개 변수의 값 변경&rsquo;글로벌 진입 점에 대한 S API 엔드 포인트 (e.g., https : // global-api.예.com/GraphQL).
          2. 애플리케이션은 전 세계 어디에 있는지에 따라 아일랜드 품목 또는 시드니 항목을 나열하여 자동으로 새로 고침해야합니다.

          멀티 지역 그래프 QL API에 대한 증폭 응용 프로그램을 테스트합니다

          다음 단계에 따라 Amplify Application을 사용하여 멀티 지역 GraphQL API 엔드 포인트를 테스트하십시오.

          1. VPN 클라이언트에서 시드니 근처의 VPN 서버에 연결을 설정합니다 (E.g., 호주 멜버른).
          2. 웹 브라우저에서 Amplify 응용 프로그램으로 이동하십시오 (E.g., http : // localhost : 8080). 이제 테스트에서 이전에 만든 시드니 이벤트 나열판을 볼 수 있습니다.
          3. 시드니 이벤트에서 아일랜드와 같은 방식으로 댓글을 추가하기 위해 돌연변이 명령을 실행하십시오.
          4. 시드니 이벤트 바로 아래의 신청서에 새 의견이 자동으로 나타나는지 확인하십시오.

          보시다시피, 응용 프로그램은 단일 글로벌 API 엔드 포인트에 연결하면서 쿼리 및 구독 모두에 대한 가장 가까운 AppSync API 엔드 포인트를 완벽하게 누릅니다.

          정리

          생성 된 인프라를 정리하려면 AppSync API, Cloudfront Distribution, Lambda@Edge 함수 및이 테스트를 위해 만든 Route53 레코드를 삭제합니다.

          결론

          이 게시물에서는 최종 사용자의 대기 시간을 줄이는 동시에 응용 프로그램을 늘리는 방법을 설명했습니다&rsquo;여러 AWS 지역에서 API 엔드 포인트를 제공하여 S 가용성.

          솔루션은 Cloudfront, Route 53 및 ACM을 활용하여 글로벌 API를 지원합니다&rsquo;S 사용자 정의 도메인 이름 및 Lambda@Edge를 사용하여 요청자의 네트워크 대기 시간을 기반으로 수신 요청을 최고의 API 엔드 포인트로 전달합니다.

          GraphQL API 개발자에 대한 솔루션을 설명하기 위해 여기에서 PDF로 다운로드 할 수있는 참조 아키텍처의 심층적 인 연습을 제공했습니다. 만약 너라면&rsquo;RE REST API DEVELOGER, Multi-Region Active-Active Architecture를 위해 Amazon Cloudfront와의 대기 시간 기반 라우팅을 사용하여 유사한 결과를 얻을 수 있습니다.

          테스트를 단순하게 유지하기 위해 우리는 그랬습니다&rsquo;t 지역 간 데이터 복제를 활성화합니다. 만약 너라면&rsquo;d 지역 간 데이터 및 가입 복제를 통해 다중 지역 활성/활성 그래프 QL 엔드 포인트를 구축 한 다음이 기사에서 배운 내용을 AWS AppSync의 포스트 멀티 영역 배포와 Amazon DynamoDB Global Tables와 결합합니다.

          Aaron SEMPF

          Aaron SEMPF. AWS GSI 파트너와 협력하지 않을 때는 자율 로봇, IoT 장치 및 분산 솔루션을위한 코딩 프로토 타입을 찾을 수 있습니다.

          페르난도 이바네즈

          Fernando Ibanez는 고등 교육 팀의 노스 캐롤라이나 기반 솔루션 건축가입니다. Fernando는 고객이 클라우드 사용을 더 간단하게 만들기 위해 자동화 솔루션을 설계하고 구현하는 데 도움이됩니다. 여가 시간에 페르난도는 극장에 가서 새로운 요리를 시도하고 가족과 함께 시간을 보내는 것을 즐깁니다.

          호르헤 폰세카

          Jorge는 20 년 이상의 Solutions Architect로 2 개의 마스터 학위 및 모든 AWS 인증을 보유하고 있습니다. AWS에서 그는 복잡한 도전을 기술 및 비즈니스 청중을위한 실행 가능한 로드맵으로 전환함으로써 클라우드 여행을 통해 고객을 돕습니다.

          랄프 리차드

          Ralph는 런던에 본사를 둔 Amazon Web Services의 솔루션 아키텍트입니다. 그는 Enterprise Software & SaaS 고객과 함께 클라우드에서 비즈니스 목표를 달성 할 수 있도록 기술 고문으로 일합니다. 그는 또한 컨테이너 기술을 전문으로하며 마이크로 서비스 접근법을 사용하여 현대적인 응용 프로그램을 구축하는 데 관심이 있습니다. 직장 밖에서 그는 사진을 찍고 도로 여행에서 새로운 장소를 읽고 탐험합니다.

          доставля 례 контент брро, с низкой задереркой и высокой скоростью передаччи

          Amazon CloudFront - frто сервис сети доставки 처신 관어 (cdn), созданн 효과 я Высокой прои одительности, бе сносси 견 В.

          пример и использования

          предоставля 례 бре брые бе безопасные веб-сайты

          оыват로 авайте зрителей по по всему миру в течение миллисекунд благодаря встроено 처덕 딛고 соено 처 сососососо 울거리 сососососо 법 лений и и ф 치프트 팬리티 уровне поля.

          ускоря доставку динамического контента и api

          оптим 작성자 доста술은 динами ческого веб- нонта с помо칭 фраструктуры aws, которая под혁 реререререререререререререререіивает периферийное з hершение и websockets.

          потоковая переда а видео в режиме реально꺼벨

          оперативно запускайте потоко 기호 у передачу, воспросросросросрол 기술 е е 우리.

          распространя 례 исправления и обновления

          автоматати 대한 сески мататабиру뿐 й сети (OTA).

          관어 뇨

          история клиента 킹

          как накать работу

          уенайте о прин칭 ay rathon 클라우드 프론트

          протитате руковод Vство о оначале работы и узнате, что cloudfront может сделать для 기어 추.

          начать работу с помо칭은 практического пособия

          уенате, как с помомо칭은 아마존 Cloudfront наладить доставку контента ускорить работу интетет-рериложений доне buntantantrantantrantantrantantrantantrantantrantantrom ¢ ¯ не raj.

          попробуйте Cloudfront бесплатно

          начните разработку на aws уже сегодня благодаря беспп 있는지 успп 있는지 тной ис х 버림 추 칭통 перере да협 дан 익 ·, об 제공.

          подробнее об aws

          подробнее об aws

          • что такое aws?
          • что такое обл 있는지 облачные вычисления?
          • инклюзивность, мноообра칭 и равенство aws
          • devops?
          • что такое контейнер?
          • что 감척 озеро данных?
          • 미치는 безопасность облака aws
          • нов е возможности
          • блоги
          • пресс − релизы

          ресурсс для работы с aws

          • начало рабо혁터
          • обунение и серификация
          • библиотека решений aws
          • центр архитек 전폐
          • Вопросп и ответы по проду관 탈퇴 и техническим 례입니다
          • анали 감척 Âеские отчеты
          • партнеры aws

          разработчики на aws

          • центр разработчика
          • пакете SDK и инструментарий
          • .NET на aws
          • Python на aws
          • Java на aws
          • PHP на AWS
          • JavaScript на aws

          поддердка

          • святитесь с нами
          • получение помо칭자 специаалиста
          • обратиться В слу 갑격자 поддер жки
          • центр ннаний
          • AWS Re : 게시물
          • &#61623; AWS 지원
          • ю rect rat rest. информация
          • работа В aws

          아마존.com - работодатель равных возможностей. м주는 предоставляем равные права преставителям пнсен깔은 женщинам, женщинам, лицам с ограниченн칭 и воз ¢ ностямтя랬습니다. ендернд групп 랜바 Â Â сексуальной ориентации независимо и возраста.

          • конфиден뷰 циальность
          • |
          • условия пользования сайтом
          • |
          • параметры фа - 쿠키
          • |
          • © 2023 г. Amazon Web Services, Inc. и ее дочерние предприятия. Все права з з رщены.

          ваш браузер устарел. рекомендуем выполнить перейти на дрру 말 совренный браузер для более 견.

          прекраеение под, 인터넷 익스플로러

          поддер дка aws для 인터넷 익스플로러 заканчивается 07/31/2022. подереререререререререререререререререререререрау браузеры : Chrome, Firefox, Edge и Safari. подроб 변태 &raquo;