Как я могу использовать одну запись route53 для указания на два сегмента S3?
У меня есть два сегмента a и b с включенными статическими веб-сайтами, которые перенаправляют на исходные сегменты A и B. Я создал два набора записей route53 (записи A) slave-1 и slave-2, указывающие на каждый сегмент a и b. Затем я создал основной набор записей (запись A) с переключением при сбое, slave-1 в качестве основного и slave-2 в качестве вторичного. Когда я пытаюсь получить доступ к содержимому S3 с помощью мастера, я получаю 404 "Нет такого ведра". Есть ли способ, которым я могу настроить это на работу? Если есть какие-либо обходные пути для конфигураций как это?
1 ответ
S3 поддерживает прямой доступ к сегменту только с использованием одного из имен хостов конечной точки (например, example-bucket.s3.amazonaws.com) или записи DNS, указывающей на конечную точку сегмента, когда имя сегмента соответствует полному имени хоста, представленному в Host:
заголовок (имя хоста my-bucket.example.com работает с контейнером с именем "my-bucket.example.com").
Если ваш инструмент будет подписывать запросы для корзины, простого и практичного обходного пути нет, так как подписи не будут совпадать по запросу. (Технически это можно сделать с помощью прокси-сервера, который знает ключи и секреты, проверяет оригинальную подпись, удаляет ее, затем повторно подписывает запрос, но это сложное решение.)
Если вам просто нужно извлечь содержимое из корзины, используйте CloudFront. Когда CloudFront настроен перед корзиной, вы можете указать доменное имя на CloudFront и указать один или несколько сегментов для обработки запросов на основе сопоставления с шаблоном в путях запросов. В этой конфигурации имена сегментов и регионы не важны и не зависят от имени хоста, связанного с дистрибутивом CloudFront.