AWS Vocabulary for Developers: 40 Core Terms Explained (англійською)
Вивчіть основний словник AWS — IAM, VPC, EC2, S3, Lambda, RDS, DynamoDB, CloudFormation, CloudWatch і 30+ інших термінів, пояснених для розробників, що працюють з AWS.
Amazon Web Services є домінуючим хмарною платформою, і її словник пронизує майже кожну розмову з розробниками в компаніях, які її використовують. Навіть якщо ви не є інженером з інфраструктури, вам слід розуміти основні терміни, щоб брати участь у обговоренні архітектури, читати підручники з програмування і інтерпретувати звіти про витрати. Цей посібник охоплює 40 основних термінів AWS.
Ідентифікація та доступ
IAM (Менеджер ідентифікацій та доступу)
IAM контролює, хто (користувачі, ролі, служби) може робити що (дії) на яких ресурсах AWS. ** Ролі ** IAM приймаються службами (наприклад, функція Lambda читає з S3). ** Правила ** визначають права доступу в JSON.
Функція Lambda не може записувати в S3 — перевірте її роль IAM і переконайтеся, що політика дозволяє
s3:PutObject“Ніколи не використовуйте улікові дані адміністратора. Створити користувача або роль IAM з мінімальними необхідними правами доступу»
Amazon (англійською)
ARN є унікальним ідентифікатором для будь-якого ресурсу AWS. Формат: arn:aws:service:region:account-id:resource.
«Вставити ARN S3 bucket в IAM policy, щоб отримати права доступу до цього конкретного bucket»
Networking
Віртуальна приватна мережа (VPN)
** VPC ** - це ваша власна ізольована мережа в AWS. Всі ваші ресурси (EC2, RDS, Lambda тощо) знаходяться всередині VPC.
«Впровадити базу даних в приватну підмережу — вона не повинна бути доступною з інтернету»
Subnet
** Підмережа ** — це діапазон IP- адрес у вашому VPC. ** Публічні підмережі ** мають маршрут до інтернет- шлюзів; ** приватні підмережі ** — ні.
«Прикладні сервери знаходяться в публічних підмережах; бази даних знаходяться в приватних підмережах»
Група безпеки
** група безпеки ** діє як віртуальний брандмауер для екземплярів EC2 та інших ресурсів. Він контролює вхідний і вихідний трафік за допомогою правил, заснованих на порту, протоколі і джерелі / призначення.
Відкрити порт 443 в групі безпеки, щоб ALB міг отримувати HTTPS-трафік Приклад RDS недоступний — перевірте, чи дозволяє група безпеки вхідний трафік з групи безпеки програми
Список контролю доступу до мережі (NACL)
** NACL ** — це брандмауер без стану на рівні підмережі. На відміну від груп безпеки, NACL не мають стану — вам слід явно дозволити як вхідний, так і вихідний трафік.
“Группа безопасности выглядит в порядке, но правило NACL может блокировать трафик. Перевірте NACL підмережі»
Маршрут 53
** Маршрут 53 ** - це служба DNS AWS. Він керує реєстрацією домену, маршрутизацією DNS (проста, зважена, заснована на затримці, відключення), і перевірками стану.
«Наведіть домен на новий балансувальник навантаження, оновивши запис Route 53 A.» «Налаштувати перевірку стану маршруту 53, щоб рух переходив до вторинного регіону автоматично.»
Львів: НБУ
- ** ALB (Application Load Balancer) ** працює на 7- му шарі (HTTP/ HTTPS). Він може маршрутизувати за допомогою шляху, заголовка вузла і параметрів запиту.
- ** NLB (балансування мережевого навантаження) ** працює на рівні 4 (TCP/ UDP). Це надзвичайно швидко і обробляє мільйони запитів на секунду.
«Використовуйте ALB для маршрутизації
/apiтрафіку до API-сервісу і/до фронтенду» «Сервіс WebSocket потребує NLB — ALB не обробляє також довготривалі TCP-з’єднання.»
Compute
2-й рівень (Elastic Compute Cloud)
** EC2 ** надає віртуальні сервери (приклади) в хмарі. Ви можете обрати тип екземпляра (ЦП, пам’ ять, мережа), операційну систему і місце зберігання.
«Застосунок працює на флоті
t3.mediumEC2 примірників за балансувальником навантаження.»
Lambda
** Lambda ** - це служба обчислень без сервера AWS. Ви розгортаєте функцію, і AWS запускає її у відповідь на тригери (запити HTTP, події S3, повідомлення SQS тощо), без керування якими- небудь серверами.
«Ми замінили завдання cron функцією Lambda, яку запускає EventBridge — немає серверів для підтримки» Lambda має 15-хвилинний максимальний час виконання — він не підходить для довготривалих завдань
ECS (Еластична Контейнерна Служба)
** ECS ** - це служба оркестрації контейнерів AWS. Він запускає контейнери Docker на екземплярах EC2 (тип запуску EC2) або безсерверній інфраструктурі (тип запуску Fargate).
«Ми розгортаємо наші послуги як завдання ECS на Fargate — немає EC2-прикладів для управління»
EKS (Elastic Kubernetes Service) — служба
EKS - це служба Kubernetes, якою керує AWS. За допомогою цієї програми можна запустити планку керування Kubernetes; ви керуєте робочими вузлами (або використовуєте Fargate).
«Ми мігрували з ECS до EKS, тому що команда вже знає Kubernetes і ми хотіли використовувати Helm charts»
Зберігання і бази даних
S3 (Проста служба зберігання)
** S3 ** — це об’ єктне зберігання — файли, зображення, резервні копії, статичні активи, журнали. Об’ єкти зберігаються в ** buckets ** і доступні через URL. S3 дуже міцний (11 дев’яток) і дешевий.
«Відправити артефакти збирання до S3 після збирання CI» «Ніколи не роби S3 bucket публічним, якщо ти явно не хочеш — перевір політику bucket»
Аурора (англ. Aurora; нар
RDS (Relational Database Service) — це керована реляційна база даних — Postgres, MySQL, MariaDB, Oracle, SQL Server. Aurora — це власна високопродуктивна платформа AWS, сумісна з MySQL і Postgres, з автоматичним масштабуванням і реплікацією на декількох базах даних.
«Ми використовуємо Aurora Postgres — він обробляє автоматичний відключення і нам не потрібно керувати резервними копіями вручну.»
DynamoDB
DynamoDB — це керована база даних NoSQL AWS. Вона забезпечує однозначну затримку мілісекунди в будь-якому масштабі. Дані розділені за допомогою первинного ключа, і ви платите за пропускну здатність читання/ запису, яку ви надаєте (або використовуєте режим за запитом).
«Дані сеансу йдуть до DynamoDB — нам потрібна низька затримка і не потрібні складні запити» «Упевніться, що ваш шаблон доступу DynamoDB використовує ключ розділу ефективно — повне сканування таблиць є дорогим»
Інфраструктура як код і операції
Програмне забезпечення / CD-ROM
CloudFormation визначає інфраструктуру AWS як шаблони YAML або JSON. CDK (Cloud Development Kit) дозволяє визначити інфраструктуру на реальній мові програмування (TypeScript, Python тощо), яка компілюється до CloudFormation.
«Ми використовуємо CDK, щоб визначити нашу інфраструктуру — це набагато легше управляти, ніж сирим CloudFormation YAML» «Стек не вдалося розгорнути — перевірте події CloudFormation в консолі.»
CloudWatch
** CloudWatch ** - це служба моніторингу та спостереження AWS. Він збирає метричні дані, зберігає журнали і вмикає нагадування. Майже кожна служба AWS відсилає метрики до CloudWatch автоматично.
«Налаштувати попередження CloudWatch, щоб повідомити нас, якщо рівень помилок перевищує 1% протягом 5 хвилин поспіль» Процитовано 2013-09-19. Check CloudWatch Logs for the Lambda execution logs
С.-Петербурзьк
- ** SNS (Simple Notification Service) ** — це служба обміну повідомленнями pub/ sub. Видавці надсилають повідомлення до ** теми **; підписники (Lambda, SQS, електронна пошта тощо) отримують їх.
- ** SQS (Simple Queue Service) ** — це керована черга повідомлень. Продуценти надсилають повідомлення; споживачі опитують і обробляють їх.
«Ми використовуємо SQS для від’єднання обслуговування замовлень від обслуговування виконання — черга буферизує запити, коли споживач повільний» «SNS роздає подію на декілька черг SQS, щоб різні служби могли обробляти її незалежно.»
API ворота
** API Gateway ** — це повністю керована служба для створення і керування HTTP, REST і WebSocket API. Він безпосередньо інтегрується з Lambda, надаючи вам безсерверний API без будь-яких серверів.
HTTP API побудований з API Gateway перед функціями Lambda — без серверів, без проблем з масштабуванням
Міста і регіони
Регіони та зони доступності (AZs)
AWS поділяється на ** регіони ** (географічні області, такі як eu-west-1 для Ірландії). Кожен регіон містить декілька Availability Zones — фізично відокремлені центри даних. Розгортання по AZ забезпечує високу доступність.
«Впроваджувати щонайменше в двох AZ, щоб програма залишалася в режимі очікування, якщо один центр даних має відключення.» Ми в
eu-west-1— переконайтеся, що всі нові ресурси створюються в тому ж регіоні, щоб уникнути витрат на перенесення даних між регіонами
Експлорер (Explorer)
** Cost Explorer ** це інструмент AWS для візуалізації та аналізу ваших витрат AWS з часом. Ви можете розбити вартість за службою, регіоном, міткою тощо.
«Використовуйте Cost Explorer, щоб побачити, яка служба призводить до зростання вартості цього місяця»
Планування заощаджень
** Плани економії ** — це модель ціноутворення, за якої ви зобов’ язуєтеся використовувати постійний рівень обчислювальних ресурсів (у доларах за годину) протягом 1 або 3 років у обмін на значні знижки у порівнянні з ціноутворенням за запитом.
«Ми купуємо Compute Savings Plan на 12 місяців — це скоротить наші витрати на EC2 і Lambda приблизно на 30 %»
Як використовувати цю функцію в прикладі
** В архітектурному огляді: **
Чи має ця Lambda записувати безпосередньо в RDS, чи ми повинні використовувати SQS між ними, щоб від’єднати їх і обробляти зворотний тиск?
В ответ на инцидент:
Процитовано 2013-09-10. Перевірте метрику CloudWatch для ALB — погляньте на
5XXCountіTargetResponseTime, щоб звузити, де проблема
В перегляді безпеки:
“ЕК2 екземпляр має роль IAM, яка може отримати доступ до кожного S3 контейнера в обліковому записі. Розширіть його до тих відсіків, які йому потрібні»
** В планах: **
«Давайте використаємо S3 + CloudFront для статичних активів замість того, щоб обслуговувати їх з EC2 — це швидше, дешевше і масштабується автоматично»
Словниковий запас AWS - це професійна навичка. Навіть базове розуміння цих термінів допоможе вам брати участь у прийнятті рішень щодо інфраструктури, читати підручники з розгортання і чітко спілкуватися з колегами з DevOps і SRE.