У цьому складному проєкті я взяв на себе відповідальність за розгортання SaaS-додатку HumanGov на платформі Amazon Web Services (AWS), з особливим акцентом на використання Elastic Kubernetes Service (EKS) для оркестрації. Крім того, я працював з Route 53 для керування доменами, Application Load Balancer (ALB) для ingress та AWS Certificate Manager для шифрування SSL для точок доступу.
Ось архітектура рішення:
Архітектура рішення
Проєкт почався з налаштування VPC у AWS та створення кластера EKS. Далі я встановив і налаштував kubectl та eksctl у середовищі Cloud9, використовуючи ці інструменти для прямої взаємодії з кластером EKS.
Наступним кроком стала контейнеризація додатку за допомогою Docker. Для цього я створив та вдосконалив Dockerfile, оптимізуючи процес побудови додатку HumanGov. Після контейнеризації, образи були завантажені в Amazon Elastic Container Registry (ECR), забезпечуючи їх готовність до розгортання.
Коли ECR було налаштовано, я розробив маніфести для розгортання (deployment) та сервісів (services) у Kubernetes. Ці маніфести визначили очікуваний стан додатку, вказавши кількість pod-ів, розподіл ресурсів та необхідні змінні середовища для його роботи.
Для забезпечення керування доменом та маршрутизації трафіку я налаштував хостинг-зону в Route 53, створивши необхідні записи для дозволу домену та надання зручної та доступної URL-адреси.
Налаштування Application Load Balancer (ALB) та ресурсів ingress стало важливим кроком для маршрутизації трафіку, забезпечуючи правильне направлення запитів до внутрішніх сервісів кластера EKS. Цей крок також дозволив здійснити термінацію SSL безпосередньо на рівні ALB.
Я використовував AWS Certificate Manager для створення та управління сертифікатами SSL, гарантувавши, що комунікація між клієнтом та додатком буде зашифрована та безпечною.
В результаті ми отримали масштабовану, безпечну та високо доступну SaaS-аплікацію HumanGov, успішно розгорнуту в AWS EKS та доступну через захищений домен. Комбінація рішень Kubernetes з мережевими та безпековими сервісами AWS показала потужність та ефективність цієї платформи.
Піддомен Каліфорнія
Піддомен Флорида
Найцінніші уроки цього проєкту включають поглиблене використання Kubernetes в екосистемі AWS, управління DNS та трафіком за допомогою Route 53, шифрування SSL з перевіркою, а також освоєння циклу життя контейнеризації — від створення образів до версіонування та пушу в AWS ECR. Досвід розробки Kubernetes маніфестів для визначення pod-ів, ресурсів та змінних був вирішальним для ефективного розгортання в EKS.
Цей проєкт став великим кроком у моєму розвитку як інженера DevOps, надаючи практичні і реальні інсайти щодо впровадження хмарних рішень і зміцнюючи мій шлях до спеціалізації в оркестрації середовищ та Multicloud.
Перекладено з: Implantação do HumanGov SaaS na AWS EKS