Таким образом, вместо https://s3.amazonaws.com/static.my-company.com/media/my-file.jpg
, я хочу, чтобы он рассматривался как https://static.my-company.com/media/my-file.jpg
. Как я могу это сделать?
Здесь есть три отдельных вопроса.
Если вы включили функцию хостинга веб-сайта для своего ведра, то как @Deif иллюстрирует в другом ответе здесь, вы можете указать имя хоста в Route 53 на конечную точку веб-сайта ведра с использованием псевдонима или CNAME, и это работает. Но он не поддерживает HTTPS.
HTTPS требует, чтобы веб-сервер идентифицировал себя с браузером с сертификатом SSL (TLS), который включает имя хоста, соответствующее имени в поле адреса браузера. Сертификаты S3 в конечной точке REST соответствуют различным перестановкам s3.amazonaws.com
- они не соответствуют вашему домену.
Для этого вам нужен сертификат SSL. Если у вас его уже есть, загрузите его в диспетчер сертификатов Amazon (ACM) в регионе us-east-1. ¹ Если нет, ACM может создать его для вас бесплатно.
Затем создайте новый дистрибутив CloudFront, используя свой поддомен в качестве альтернативного доменного имени, используя вышеуказанный сертификат ACM и используя имя хоста конечной точки веб-сайта в качестве исходного сервера.
Затем укажите ваш поддомен в маршруте 53 на распределение CloudFront.
Теперь https://subdomain.example.com/pics/funny/cat.jpg
переходит на CloudFront, который обеспечивает SSL и выбирает содержимое из соответствующего ведра.
Почему необходим CloudFront? Это официальное решение для использования пользовательского имени домена с поддержкой SSL с S3. S3 не поддерживает возможности изначально. Использование CloudFront имеет сопутствующие затраты, но это значительно снижает стоимость самого S3. Когда загрузка происходит через CloudFront, S3 заряжает $ 0 для полосы пропускания, используемой для загрузки, а CloudFront вместо этого использует полосу пропускания.Цена CloudFront для полосы пропускания во многих случаях ниже (предположительно потому, что CloudFront может масштабироваться горизонтально, чтобы облегчить перегрузку, а S3 может масштабироваться только вертикально - это ограничение местоположения по дизайну).
¹ В АКМ, то us-east-1
область всегда используется для настройки я описываю здесь, независимо от места нахождения ведра, потому что CloudFront управляется из нас-восток-1 и нам нужен этот сертификат, чтобы быть доступным для CloudFront ,
Правильно, за исключением того, что это не поддерживает HTTPS, а 'us-east-1' будет отличаться в зависимости от региона, в котором было создано ведро. Правильная конечная точка для ведра найдена [в консоли] (http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html). –