AWS: сопоставление домена для содержимого S3 Stati c, а также конечных точек шлюза api - PullRequest
1 голос
/ 16 января 2020

Я пытаюсь получить следующие сопоставления доменов / путей:

foo.com -> stati c веб-контент, размещенный на AWS S3

foo.com / dogs - > Конечная точка шлюза API

foo.com / cats -> Конечная точка шлюза API

foo.com / birds -> Конечная точка шлюза API

Какие услуги мне нужны использовать для достижения вышеуказанного? Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 января 2020

У вас есть пара вариантов для этого. Поскольку вам нужно одно имя хоста, foo.com, вам нужно начать с одной службы, которая может направлять трафик клиента c на s3 и на шлюз API.

Option1: Amazon Cloudfront

У этого есть преимущество масштаба.

              | -> S3
cloudfront -> |
              | -> api gateway

Как настроить облачный фронт для API-шлюза

Как настроить облачный фронт с помощью S3

И так как у вас есть Cloudfront вы можете увидеть, если вы можете использовать Lambda@Edge.

Опция 2: AWS Усиление

Если вы не Я имею большой опыт работы с сервисом AWS или даже если вы сделаете это, это хороший вариант, я бы рекомендовал сначала взглянуть на него, так как он упрощает многие настройки и имеет некоторые приятные [функции] (https://aws.amazon.com/amplify/features/ ). Думайте об Amplify как о сервисе сервисов для разработчиков приложений.

Check (Amplify API) [https://aws-amplify.github.io/docs/js/api] , который используется для создания конечных точек REST или GraphQL.

Я должен упомянуть, какие фреймворки поддерживают Amplify: iOS, Android, ReactNative, и для веб-сайтов он имеет глубокую интеграцию с React, Ioni c, Angular и Vue. js.

И да, вы, вероятно, в конечном итоге выберете то же решение, используя Amplify, как вариант 1, именно тот рабочий процесс, который вам больше подходит.

Вариант 3 разделит службу:

Создать 2 DNS-записи для foo.com и api.foo.com

          | -> (foo.com) cloundfront -> S3
client -> |
          | -> (api.food.com) api-gateway

В этом решении можно удалить облачный фронт и просто использовать S3 stati c

Примечание. на Route53: Вам не нужно использовать Route53, так как любая служба DNS будет работать. Если у вас go с опцией 1 cloudfront, создать CNAME в любых службах DNS также просто. Однако, если вы используете Amplify, то перемещение службы DNS на AWS Route53 автоматизирует управление DNS.

0 голосов
/ 16 января 2020

AWS услуг, необходимых для вышеуказанных требований:

  1. Маршрут 53
  2. S3
  3. Шлюз API
...