AWS Cloud: найперші кроки та як їх зробити правильно
Усі статті, обговорення, новини про DevOps — в одному місці. Підписуйтеся на DOU | DevOps!
Мене звати Олексій Надточій і я співпрацюю з EPAM Україна у ролі архітектора рішень. У цьому матеріалі я розповім, які ресурси доступні в AWS Cloud одразу після реєстрації, які перші кроки компанія рекомендує зробити, за допомогою чого можна працювати з AWS і які інструменти можна використати, щоб зроби навігацію по сервісах AWS зручнішою.
У статті є певна кількість скриншотів, важливі частини яких помічені жовтим маркером. Сподіваюсь, що текст і скриншоти дадуть повну картину для початківців і допоможуть розпочати роботу з хмарою AWS.
Ура, зайшов!
Реєстрація в AWS Cloud досить стандартна, за винятком того, що окрім email та пароля ще буде потрібно вказати дані банківської картки. AWS спробує списати з неї 0, щоб протестувати, що вона працює. Надалі ця картка буде використана як основний канал, за допомогою якого AWS буде стягувати кошти за використані сервіси. Якщо в майбутньому потрібно дані картки змінити, то це можна зробити за допомогою сервісу AWS Billing, розділу Payment preferences.
З першого дня реєстрації запускається програма AWS Free Tier, яка дає можливість протягом наступних 12 місяців користуватись частиною сервісів AWS безкоштовно в межах визначених лімітів. Відповіді на основні питання, як це функціонує, можна знайти тут.
На практиці це означає, що якщо ви стартуєте сервіс, то є сенс пошукати мітку «Free tier eligible», як на цьому скриншоті частини сторінки запуску EC2-сервера:
За допомогою реєстрації був створений перший і єдиний користувач рівня «бог», або в термінології операційної системи Linux root-користувач. Так, цьому користувачу можна робити в системі все, що завгодно, без жодних обмежень.
Це накладає велику відповідальність, тому AWS наполегливо рекомендує не використовувати такого користувача частіше ніж це потрібно, навіть якщо акаунт був створений для навчальних цілей.
Надалі, коли ви будете заходити до AWS, вікно логіна виглядатиме ось так:
Де:
- «Root user» — можливість зайти за допомогою e-mail, який був вказаний при реєстрації AWS-акаунту;
- IAM user — можливість зайти за допомогою користувача AWS-акаунту, вказавши його ID (це 12 цифр, які генерує AWS), імені, та пароля.
Створюємо «адміна»
Щоб зробити того самого користувача, за допомогою якого ми будемо робити перші кроки, потрібно перейти до сервісу IAM (Identity and Access Management). Тут нам прийде на допомогу рядок універсального пошуку, який знаходиться в самому верху сторінки ближче до лівого краю. Набираємо там «IAM» і переходимо за першим знайденим посиланням:
Додаткові розділи будь-якого сервісу знаходяться на лівій частині браузера. Щоб створити користувача, нам знадобиться розділ Users:
Далі у цьому розділі за допомогою кнопки «Add users» ми переходимо до сторінки створення нового користувача, де вводимо ім’я адміна (нехай буде admin :)):
Як бачите, вказати ім’я недостатньо, ще потрібно обрати купу параметрів, які вимкнені, коли сторінка з’являється на екрані вперше. Так зроблено, тому що AWS використовує принцип «мінімальних прав» (at least privilege), що означає надання користувачу тільки тих прав, які йому потрібні.
Тому після того, як ім’я користувача було введено, потрібно обрати наступні параметри:
- «Provide user access to the AWS Management Console» — опція дає змогу користуватись Web Console. Насправді якщо ви розробляєте програму, автоматизований скрипт якої буде працювати з ресурсами AWS за допомогою AWS CLI або AWS SDK, то в такій конфігурації доступ до Web Console надавати не треба.
- «I want to create an IAM user» — це означає, що користувач буде зберігатися у внутрішній базі AWS.
- Console password — задаємо або генеруємо пароль для користувача.
- «User must create a new password at next sign-in (recommended)» — в процесі першого входу AWS вимагатиме одразу змінити пароль. Якщо ви створюєте користувача для своїх цілей, то вибирати цю функцію, може, і не треба. Але якщо ви створюєте доступ для нового співробітника, для якого всі дані будуть надіслані через електронну пошту, то є сенс обрати цей пункт задля підвищення безпеки.
Далі ми можемо або додати користувача до групи, або скопіювати права доступу з іншого користувача, або прямо задати права. Ні першого, ні другого ще не має, адже ми щойно зареєстрували акаунт в AWS, тому, користуючись третім, «Attached policies directly», підключаємо до користувача політику «AdministratorAccess»:
Натискаємо кнопку «Next», ще раз перевіряємо, що все обрано і задано вірно, і натискаємо кнопку «Create user», щоб створити користувача. Потім перезаходимо за допомогою щойно створеного користувача. Тут AWS запропонує ‘Console sign-in URL’, що дозволяє спростити вхід, вводячи тільки ім’я та пароль:
Озираємось
Взагалі-то існує три способи роботи з AWS:
- Web-консоль.
- Командний рядок AWS CLI.
- Програмні бібліотеки AWS SDK.
З точки зору того, що можна робити між ними, не існує ніякої різниці, але два останні потребують створення aws_access_key_id та aws_secret_access_key і додаткового налаштування локального комп’ютера, включаючи інсталювання програмного забезпечення від AWS.
Web-консоль своєю чергою потребує тільки браузера, тому це — найзручніший спосіб почати працювати в AWS.
Як і будь-який сайт, AWS має свою «домашню сторінку» або Console Home — місце, куди ви потрапляєте одразу після логіна. Тут зображені різні віджети, чисельність, розташування та форму яких можна конфігурувати:
AWS пропонує конфігурацію за замовчуванням, але рекомендую ознайомитись з нею і періодично повертатись, щоб переглядати конфігурацію згідно з своїми завданнями.
Навігація по сервісах виконується за допомогою рядка універсального пошуку, яким ми вже користувались, або меню Services:
З лівого боку окрім «Recently visited», «Favorites» та «All services» знаходяться групи сервісів. AWS оперує більш ніж 200 сервісами, тому заради зручності навігації і розуміння домену, до якого вони відносяться, їх було згруповано.
Наведення на групу призводить до того, що вміст правої частини змінюється на список сервісів, які доступні в даній групі. Деякі із сервісів позначені «зірочкою», що додає їх до переліку улюблених сервісів («Favorities»), які потім з’являються на панелі швидкої навігації, що знаходиться нижче, одразу після головної панелі:
Щоб додати сервіс до улюблених, потрібно використати контур зірочки, яка з’являєтеся, коли курсор миші знаходиться над назвою сервісу:
Останнім дуже корисним ресурсом, про який варто згадати, є AWS CloudShell. Як я вже зазначив раніше, з AWS можна працювати трьома різними методами, два з яких потребують встановлення додаткового програмного забезпечення.
Але якщо такої можливості немає, то AWS CloudShell дає змогу запускати команди AWS CLI за допомогою командного рядка з Web консолі. Консоль відкривається внизу екрана браузера за допомогою іконки, що розташована слідом за рядком універсального пошуку:
Що вже є
Одразу після реєстрації AWS автоматично створює Virtual Private Cloud (або VPC), який можна побачити в розділі сервісу VPC:
VPC розташована в 3 зонах доступності (availability zones), що означає існування 3 мереж:
Зона доступності будується за допомогою одного, чи декількох фізичних центрів обробки даних, які розташовані на відстані не більше ніж 100 км один від одного. Таким чином, якщо ваша система потребує високої доступності та відмовостійкості, зони доступності — саме той інструмент.
Наступним рівнем після зони доступності є регіон. Його можна обрати за допомогою верхньої панелі Web-консолі (на скриншотах це — Frankfurt). Також кожна команда з набору AWS CLI дозволяє за допомогою параметра задати регіон. Виключенням є сервіси, які існують глобально, наприклад IAM, який ми розглядали трохи вище.
Приватна мережа AWS розповсюджена у всьому світі, тому коли постає питання вибору регіону, слід йти за кастомерами: розташовувати ресурси в тому регіоні, де найбільша кількість клієнтів вашої програмної системи. Також слід пам’ятати, що ціни та кількість сервісів різняться в залежності від регіону. Але якщо ви будуєте систему глобального рівня на кшталт Booking, AirBnB або Netflix, то регіони AWS — також хороший інструмент.
Але повернімось до ресурсів, які доступні одразу після реєстрації. Щоб ресурси, розташовані в мережах зон доступності, мали змогу «розмовляти» один з одним, сконфігурована головна таблиця маршрутизації:
В таблицю входить сконфігурований Internet Gateway (igw-xxxxxxxxx), що дозволяє, наприклад, запустити сервер EC2 в будь-якій мережі і одразу мати доступ з нього до інтернету.
Щоб цей сервер був доступний з всесвітньої мережі, потрібно орендувати реальну IP-адресу для нього. Наявність в таблиці маршрутизації мережі Internet Gateway і маршруту через неї у світ (0.0.0.0/0) робить її публічною. Якщо мережа не має такої конфігурації, вона вважається приватною, і її ресурси можуть мати доступ до інтернету, але вже за допомогою NAT Gateway, який розташований в публічній мережі.
Можна створити стільки таблиць маршрутизації, скільки потрібно, та окремо прив’язати мережу до них. До головної таблиці маршрутизації прив’язуються ті мережі, які не прив’язані до будь-якої іншої таблиці.
Висновки
AWS намагався зробити свій ресурс якомога зручнішим у використанні навіть тими людьми, які тільки починають з ним працювати. Слід пам’ятати рекомендацію AWS не використовувати root-користувача без нагальної потреби, а зробити окремого IAM-користувача для постійних задач.
Також AWS дуже рекомендує включити двофакторну авторизацію. Це все збереже ваші кошти, якщо доступ отримають зловмисники, і хтось впродовж місяця буде активно користуватись ресурсами AWS вашим коштом.
Після реєстрації root-користувача протягом 12 місяців є можливість користуватись ресурсами Free tier, які не потребують оплати, якщо ви не виходите за ліміти. Ресурсів і лімітів достатньо, щоб навчитися професійно використовувати AWS.
Також AWS автоматично конфігурує простий Virtual Private Cloud, що використовує 3 зони доступності і дозволяє запускати базові сервіси на кшталт серверів EC2, що автоматично мають доступ до інтернету.
Окрім Web консолі існує ще два способи роботи з AWS: AWS CLI та AWS SDK. Обидва потребують додаткових налаштувань і встановлення програмного забезпечення, про що ми поговоримо наступного разу.
13 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів