Мой путь к выполнению резюме в облаке AWS (часть первая)
5 марта 2023 г.Я рыскал по Интернету в поисках подсказок о том, как составить свое облачное резюме и выделить его, поскольку я давно мечтал заняться облачной инженерией.
Затем я наткнулся на Cloud Resume Challenge. Копнув немного глубже, я обнаружил, что задача резюме познакомит меня с множеством сценариев реальных проблем, с которыми я могу столкнуться, работая в облаке. И прохождение через это придало бы мне уверенности в том, что я смогу справиться с этими проблемами, если/когда они придут.
Я намереваюсь познакомить своих читателей с приобретенными навыками, проблемами, с которыми они столкнулись, и решениями, найденными на этом пути. Конечная цель этой серии статей — получить роль в облаке, поэтому я буду обращаться к своим читателям с просьбой держать меня в курсе возможностей в этой области.
В первой части этой серии я настрою веб-сайт HTML и CSS для своего резюме, разверну его в корзине AWS s3, разверну на AWS Cloudfront, свяжу Cloudfront с персональным доменом с помощью AWS Route53 и, наконец, обеспечим это доменное имя защищено.
Не будучи слишком склонным к творчеству, я решил порыться в Интернете, чтобы получить шаблоны HTML, которые я могу редактировать и персонализировать. У меня есть разумное понимание того, как работают HTML и CSS. Я нашел красиво оформленное портфолио React, созданное Sachin Mittal. Я смог отредактировать файлы в соответствии с тем, что я хочу. Репозиторий отредактированного файла на Github можно найти здесь.
После того, как резюме было готово и работало в моей локальной системе, моей следующей целью было выяснить, как отправить файлы моего приложения для реагирования на мой AWS s3. Чтобы отправить файлы на S3, вы должны убедиться, что у вас есть готовая корзина S3. Вы можете посмотреть это видео в качестве руководства.
Поскольку мы работаем с реакцией, нам нужно сначала собрать приложение, а затем отправить папку сборки, созданную реакцией, в нашу корзину s3. Чтобы создать папку сборки, я выполнил следующие команды в папке, где у меня есть файлы реагирования.
# First install react dependencies for the react app
npm install
# Build the react resume project
npm run build
Я переместил свои файлы на s3 с помощью AWS CLI, вы можете ознакомиться с этой статьей< /a>, чтобы настроить его.
Это команда, которую я использовал для перемещения папки.
# s3://achebe-cloud-resume/ is my AWS s3 bucket
aws s3 sync build s3://achebe-cloud-resume/
Сделав это, я настроил необходимые политики для управления своими объектами в корзине s3.
С моим набором корзин s3 я использовал созданную конечную точку своего веб-сайта корзины s3 в качестве источника своего Cloudfront. Я создал общедоступный сертификат с помощью диспетчера сертификатов AWS и добавил его как CNAME в свои созданные зоны размещения Route53. Для своего доменного имени я создал его с помощью freehostia.
Вы можете ознакомиться с созданным резюме по этой ссылке.
Я столкнулся с парой проблем, которые мне нужно было найти, как решить. Первой проблемой, с которой я столкнулся, была эта ошибка при создании политики s3.
Action does not apply to any resources in statement
Это была политика, которую я использовал;
{
"Version": "2012-10-17",
"Id": "Policy1677839372704",
"Statement": [
{
"Sid": "Stmt1674835361089",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::achebe-cloud-resume/"
}
]
}
Ошибка была в этой строке;
"Resource": "arn:aws:s3:::achebe-cloud-resume/"
Правильная форма была;
"Resource": "arn:aws:s3:::achebe-cloud-resume/*"
Знак «*» обозначает все объекты в корзине.
Вторая проблема, с которой я столкнулся, заключалась в том, что при создании записи псевдонима в моем Route5e для Cloudfront запись могла получить мой созданный ресурс Cloudfront. Затем я начал копать, чтобы выяснить, почему, затем я обнаружил, что для того, чтобы запись нашла мой ресурс Cloudfront, мое доменное имя должно быть добавлено в качестве альтернативного доменного имени (CNAME) в настройках ресурса Cloudfront.
В следующей статье я буду создавать работающий бессерверный API AWS, который обновляет количество посетителей в базе данных.
Оригинал