Рубрики
Uncategorized

AWS FARGATE: От начала до Devsecops

Проверьте, откатитесь и разверните: во время этого блога я пройду каждый сервис AWS, который был … Tagged with AWS, DevOps.

Проверьте, откатитесь и разверните:

Во время этого блога я буду проходить каждую услугу AWS, которая была использована для создания надежной инфраструктуры, такой как Amazon ECS на AWS Fargate, AWS Codepipeline, AWS Codebuild, AWS CodeDeploy, AWS CDK и многие другие услуги, которые мы обсудим позже в этой статье. Вместе эти сервисы помогают вам безопасно хранить, версии управляют исходным кодом приложения Node.js, автоматически создавать, тестировать и развернуть ваше приложение в AWS.

Для начала, вместо того, чтобы вручную создавать все услуги, о которых мы упомянули выше, AWS CDK (TypeScript) использовался для автоматизации предоставления инфраструктуры, показанной на диаграмме ниже при использовании обзоров кода и элементов управления ревизией для проверки изменений стека и сохранения Точная история беговых ресурсов. AWS CDK-это структура разработки программного обеспечения с открытым исходным кодом для определения ваших ресурсов облачных приложений с использованием знакомых языков программирования.

Теперь мы рассмотрим процесс обеспечения этого приложения и объясним, как была создана полнофункциональная производственная среда с помощью стеков AWS CDK для достижения успешного развертывания с минимальными усилиями. Было создано три стека, где первый будет отвечать за создание всех сетевых компонентов этой инфраструктуры (VPC, подсети, Nat Gateway, интернет -шлюз и т. Д.), Второй создаст кластер ECS вместе с определением задачи и и Сервис ECS и балансировщик нагрузки приложения с двумя целевыми группами. Наконец, третий стек будет отвечать за создание конвейера CI/CD со всеми необходимыми конфигурациями, необходимыми для завершения этой настройки. Здесь можно упомянуть, что CDK для CodeDeploy в настоящее время не поддерживает развертывание синего/зеленого с помощью функции CodeDeploy, поэтому это должно было быть настроено из консоли вручную.

Первый этап трубопровода принесет последнюю версию GIT Dockerized Application от GitHub и выполнить стадию сборки. Теперь, когда у исходной стадии CodePipeline есть последняя версия GIT, AWS Codebuild теперь готова запустить задачи сборки, которые сначала построят наше изображение Docker, и автоматически сканируют его на наличие известных уязвимостей, а также серьезности устаревших библиотек или CVE Records Сразу после того, как он подтолкнул к Amazon ECR. Этот метод сборки автоматически сканирует изображение Docker на предмет известных уязвимостей, поэтому, как только мы раздвигаем сборку, Amazon ECR вернет все обнаруженные уязвимости, а также серьезность устаревших библиотек или CVE Records. Итак, что, если была обнаружена уязвимость с высоким или средним риском? В этом случае сценарий BASH будет выполняться в файле BuildSpec.yml для проверки уязвимостей с высокой и средней тяжестью и автоматически сбой в сборке в случае обнаружения угрозы безопасности, предотвращающего начало стадии развертывания, иначе он будет продолжаться на стадию развертывания.

После успешного завершения сборки CodedePloy запускается и начинается с развертывания набора задач замены (или зеленого набора задач), который имеет последнее определение задачи и прикрепленное изображение Docker. После того, как статус задачи ECS будет «запущен» CodeDeploy, будет использовать метод Allatonce для перенаправления производственного трафика в новую задачу замены через целевую группу Green ALB и автоматически возвращается к последней известной версии ревизии приложения, если развертывание не удалось Анкет Наконец, CodedePloy будет ждать 1 час, прежде чем завершить исходный набор задач (или синий набор задач).

В заключение:

AWS предоставляет пользователям несколько стратегий развертывания, которые наилучшим образом соответствуют случаю и сценарию пользователя (Canary, Linear, All-At Once). Кроме того, ECS Blue/Green Deployments с CodeDeploy также поддерживает добавление порта прослушивателя тестового прослушивателя, если вы хотите проверить свою замену версию перед перенаправлением трафика к нему. Это позволит вам запустить проверки проверки с помощью функции Lambda Lifbda «ApplowTestTraffic», которая может быть обновлена в вашем файле appspec.yml. Я думаю, что очень интересно начать испачкать руки с помощью этих развертываний и постепенно улучшать ваши варианты использования, чтобы получить полностью стратегию Devsecops, которая наилучшим образом соответствует вашей организационной культуре.

Счастливого развертывания!

Оригинал: «https://dev.to/bassel_alannan/aws-fargate-from-start-to-devsecops-3l1k»