Как перейти с одного дистрибутива облачного фронта на другой - PullRequest
0 голосов
/ 29 апреля 2019

Мы используем cloudfront для внешнего интерфейса веб-приложения (myapp.com с s3, lambda, athena и т. Д.) Перед новым выпуском мы создаем новый дистрибутив (next.myapp.com) с новым кодом и контентом, тестируем, а затем хотим сделать его живой версией myapp.com. Но это кажется невозможным.

Несколько дистрибутивов Cloudfront не могут иметь одинаковые CNAME, поэтому мы не можем изменить запись DNS для myapp.com, чтобы она указывала на новую службу. Смена дистрибутива означает задержку, так как новый конфиг заполняет весь мир.

Можно ли сделать это с помощью инфраструктуры amazon? Или я делаю это совершенно неправильно? Хотелось бы иметь возможность перенести работающую службу как можно скорее, но при этом иметь доступную версию для ручного восстановления после отказа, если релиз что-то ломает

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Это возможно только при очень коротком периоде простоя, если вы выполните следующие действия.

Создайте новый дистрибутив с правильным сертификатом, но без альтернативного имени домена, и дайте ему стабилизироваться.

Измените DNS для сайта, чтобы он указывал на новый дистрибутив.Это не окажет такого негативного влияния, как вы предполагаете, поскольку сайт продолжает работать с существующим дистрибутивом.CloudFront не делает различий между конечными точками прибытия - он только смотрит на заголовок SNI и хоста, сопоставляя их с альтернативным доменным именем - поэтому старый дистрибутив будет продолжать обрабатывать трафик.

Изменить существующий дистрибутив наудалите альтернативное имя домена.Вам не нужно ждать, пока он вернется в состояние «Развернуто».

Отредактируйте новый дистрибутив, добавив альтернативное имя домена.Возможно, вам придется делать это несколько раз, но в конечном итоге это будет принято.

0 голосов
/ 29 апреля 2019

Хитрость заключается в том, чтобы использовать *.myapp.com в качестве CNAME для нового дистрибутива, переключить записи DNS, чтобы они указывали на новый дистрибутив, и когда коммутатор вступит в силу, вы все очистите.

См. Перемещениеальтернативное доменное имя для другого дистрибутива CloudFront .

Это невозможно сделать для домена второго уровня (myapp.com) без обращения в AWS.Решение состоит в том, чтобы использовать www.myapp.com для активной версии и иметь другой дистрибутив только для перенаправления HTTPS от myapp.com до www.myapp.com (или перенаправления с S3, но только по HTTP).CNAME для этого дистрибутива никогда не нужно будет обновлять.

...