AWS CloudFront — это CDN (Content Delivery Network) облачного провайдера AWS. Он позволяет ускорить доступ к файлам через Интернет. Работает с помощью кеширования файлов на серверах в точках присутствия (Point of Presence — POP) которые которые расположены близко к клиентам.
Этот сервис не привязан к конкретному региону и всегда базируется в первом по счету регионе: us-east-1.
Хороший CDN имеет много точек присутствия (Point of Presence, POP).
Хороший CDN имеет хорошие магистральные каналы связи.
Примеры CDN:
Создайте в текстовом редакторе файл:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<video width="1280" height="720" controls>
<source src="clip.webm" type="video/webm">
Your browser does not support the video tag.
</video>
</body>
</html>
и сохраните его в файле index.html.
Откройте Vk Видео и найдите ролик длительностью 2-5 минут.
Войдите в AWS Console с логином и паролем предоставленным преподавателем.
Перейдите в регион South America (São Paulo) sa-east-1.
Откройте командную строку CloudShell (кнопка в левом нижнем углу веб-консоли).
Создайте S3 бакет с именем <группа>-<фамилия>:
aws s3 mb s3://<группа>-<фамилия>/ --region sa-east-1
Убедитесь, что бакет создан, проверив их список:
aws s3 ls
Включите режим работы веб-сайта:
aws s3 website s3://<группа>-<фамилия>/ --index index.html
Скачайте ролик:
pip3 install yt-dlp
yt-dlp -F "<ссылка на ролик>"
yt-dlp -f dash_webm-4 -o "clip.webm" "<ссылка на ролик>"
Загрузите ролик в бакет:
aws s3 cp clip.webm s3://<группа>-<фамилия>/
Закройте CloudShell и вернитесь в веб-консоль.
Откройте сервис S3. Откройте бакет в веб-консоли и загрузите index.html в бакет.
Включите публичный доступ:
Permissions, в разделе Block public access, нажать Edit, убрать галочку и сохранить изменения.Permissions, в разделе Object Ownership, нажать Edit, разрешить использование ACL и сохранить изменения.Objects, выделите все файлы, Actions, Make public using ACL, Make publicОткройте сервис CloudFront создайте новый Distribution:
<имя группы>-<фамилия студента>*.kit-imi.infoindex.htmlПосле создания скопируйте доменное имя Distribution.
Откройте сервис Route53, раздел Hosted zones и зону kit-imi.info. Cоздайте доменное имя типа CNAME которое указывает на доменное имя вашего Cloudfront Distribution (без https://). В качестве доменного имени впишите <имя группы>-<фамилия студента>.
Откройте Git Bash и выполните команду:
curl -v <URL файла clip.webm с S3> -o clip.webm
Обратите внимание на скорость скачивания.
Сделайте скриншот результата.
Откройте новое окно Git Bash. Несколько раз выполните команду (используйте http-вариант ссылки)
curl -v <URL файла clip.webm с CloudFront> -o clip.webm
Когда заголовок X-Cache изменится на Hit from cloudfront остановите попытки.
Сделайте скриншот результата и сравните скорость со скоростью скачивания с S3.