Розпочинаємо роботу з Terraform та AWS: покроковий посібник для початківців

pic

Ласкаво просимо назад.

У попередній статті я розглянув концепцію "Інфраструктура як код" (Infrastructure as Code), її переваги та різноманітні інструменти для цього.

У цій статті я розгляну, як почати працювати з Terraform і як за допомогою Terraform розгорнути ресурси в AWS. В кінці цього посібника ви зможете:

  • Встановити Terraform
  • Створити обліковий запис AWS
  • Створити користувача IAM
  • Встановити AWS CLI
  • Налаштувати доступ до AWS для Terraform
  • Описати ресурси
  • Ініціалізувати Terraform
  • Переглянути зміни

Встановлення Terraform

Бінарний файл Terraform можна завантажити зі сторінки завантажень офіційного сайту Terraform.
Ця стаття містить детальну покрокову інструкцію для налаштування Terraform на вашій операційній системі (OS).
Щоб перевірити, чи успішно встановлений Terraform, виконайте команду нижче в терміналі.

terraform --version

Створення облікового запису AWS

AWS пропонує щедрий безкоштовний рівень на 12 місяців з моменту створення вашого облікового запису, щоб ви могли на практиці освоїти AWS та його хмарні сервіси. Для того, щоб скористатися цією пропозицією, потрібно створити обліковий запис AWS за допомогою вашої електронної пошти.
Цей блог містить детальну інструкцію, як створити обліковий запис AWS за менше ніж 5 хвилин.

Створення користувача IAM

Доступ до вашого облікового запису AWS як корінний користувач (root user) з міркувань безпеки суворо не рекомендується. Як кращу практику безпеки, ми створимо користувача IAM, якого будемо використовувати протягом цього посібника.
Користувач IAM (IAM user) — IAM означає Iдентифікація та Aксес Mенеджмент (Identity and Access Management). IAM дозволяє керувати доступом до сервісів та ресурсів AWS безпечно. Користувач IAM представляє людину або робоче навантаження, яке взаємодіє з ресурсами AWS.

Щоб створити користувача IAM:
1. Перейдіть до Консолі управління AWS та увійдіть в обліковий запис AWS як корінний користувач.
2. Перейдіть до сервісу IAM. Після входу в обліковий запис, знайдіть "IAM" у пошуковому рядку та натисніть на нього, щоб відкрити панель управління IAM.

  1. Створіть нового користувача. У лівому меню панелі натисніть "Користувачі" (Users) та натисніть кнопку "Створити користувача" (Create user) вгорі.

pic

  1. Введіть деталі користувача. Виберіть унікальне ім’я для користувача. Я вибрав terraform-user для цього посібника.

pic

  1. Призначте дозволи. Виберіть "Прикріпити політики безпосередньо" (Attach policies directly). Знайдіть політику "AdministratorAccess". Ця політика надає повний доступ до всіх сервісів і ресурсів AWS. Поставте галочку біля "AdministratorAccess", щоб прикріпити її до користувача.

pic

  1. Перевірте та створіть. Натисніть "Далі" (Next). Перевірте деталі користувача, щоб переконатися, що все вірно. Натисніть "Створити користувача" (Create User).

pic

  1. Створіть ключ доступу для програмного доступу

Після створення користувача, наступним кроком є створення ключів доступу, які ми будемо використовувати для доступу до сервісів AWS через AWS CLI. Для цього виконайте наступні кроки:

  • Натисніть на щойно створеного користувача. Поверніться до розділу Користувачі (Users) в панелі IAM. Знайдіть нового користувача в списку та натисніть на ім’я користувача, щоб відкрити деталі користувача.

pic

  • Перейдіть на вкладку "Ключі безпеки" (Security credentials). Прокрутіть вниз, щоб побачити ключі доступу.

pic

  • Натисніть "Створити ключ доступу" (Create Access Key).
    Виберіть опцію CLI, потім натисніть "Далі" (Next)

pic

  • Завантажте ключ доступу (Access Key) та секретний ключ (Secret Key) у вигляді CSV файлу та збережіть його в безпечному місці.

pic

Встановлення AWS CLI

Оскільки ми будемо працювати з AWS для розгортання нашої інфраструктури за допомогою Terraform, нам потрібно буде встановити AWS CLI.

AWS CLI — це Amazon Web Services Command Line Interface. AWS CLI надає єдиний інструмент для керування вашими сервісами AWS з командного рядка.

Terraform використовує AWS CLI для виконання викликів до AWS, щоб здійснити будь-яку роботу з розгортання.

Щоб встановити AWS CLI, дотримуйтесь кроків, наведених тут, щоб встановити останню версію AWS CLI для вашої ОС. Щоб перевірити, чи вдалося встановити, виконайте команду нижче в терміналі.

aws --version

Встановлення редактора коду

Усі наші коди будуть написані та відредаговані в редакторі коду. Є кілька безкоштовних редакторів коду на вибір, і для цього посібника ми використовуватимемо Visual Studio Code.

Якщо у вас ще немає VS Code на вашій системі, дотримуйтесь цієї детальної документації, щоб його встановити.

Налаштування AWS CLI
Нам потрібно налаштувати облікові дані для користувача IAM, якого ми отримали в AWS, у встановленому AWS CLI. Для цього:

  • Відкрийте редактор коду, потім відкрийте термінал і виконайте команду нижче, щоб налаштувати облікові дані AWS.
aws configure
  • Скопіюйте ID ключа доступу (Access Key ID) і вставте його в термінал.
  • Виконайте те саме для секретного ключа доступу (Secret Access Key ID).
  • Введіть ім’я регіону за умовчанням. У цьому випадку я вибрав us-east-1. Формат виводу за умовчанням залиште як "none".

pic

Вуаля! Ми успішно налаштували наше середовище для роботи з Terraform та AWS

Створення першого скрипту Terraform

Файл Terraform позначається розширенням .tf.

Давайте розпочнемо!

Крок 1: Створіть папку

У вашій улюбленій директорії на комп'ютері створіть папку, яку ми будемо використовувати в цьому та наступних посібниках. Ви можете назвати її terraform-projects.

Відкрийте папку у VS Code.

Крок 2: Створіть файл з розширенням .tf
Створіть файл в папці та назвіть його main.tf. Цей файл міститиме код Terraform, який вказує, які ресурси ви хочете створити та як вони повинні бути налаштовані.

Крок 3: Описати AWS Provider
Terraform є хмарно-агностичним інструментом, тобто він не обмежений лише одним постачальником хмарних послуг. Додайте блок провайдера до вашого конфігураційного файлу, щоб вказати, що ви використовуєте AWS як постачальника хмарних послуг.

provider "aws" {  
 region = "us-east-1"  
}

Крок 4: Описати ресурси
Використовуйте блок resource Terraform для опису ресурсів AWS, які ви хочете створити. У цьому посібнику ми створимо t2.micro instance. Ось код:

resource "aws_instance" "app-server" {  
 ami = ami-09e4ba81d75ebeb6a  
 instance_type = "t2.micro"  

 tags = {  
 Name = "terraformEC2"  
 }  
}

Пояснення коду
awsinstance_ — це ім’я ресурсу, який ми створимо в AWS
app-server — це ім’я інстанса, яке буде використовуватися в Terraform
ami — Це ID образу AMI, який ви отримуєте з консолі керування.
instancetype_ — t2.micro є відповідним для безкоштовного рівня.
tags — Name — Ім’я вашого інстанса, яке з’явиться в консолі

Крок 5: Ініціалізація Terraform
Відкрийте термінал у VS Code та виконайте команду terraform init. Це ініціалізує Terraform і завантажить усі необхідні плагіни.

terraform init

Ви помітите, що автоматично створяться ще два файли. Це файл terraform.tfstate та terraform.lock.hcl.
Файл terraform.tfstate зберігає інформацію про всі зміни, які будуть застосовані до вашої інфраструктури.

Крок 6: Перегляд змін

Виконайте команду terraform plan, щоб переглянути ресурси, які Terraform збирається створити, змінити або видалити. Команда terraform plan покаже вам, які ресурси будуть створені, змінені або знищені.

terraform plan

Крок 7: Застосування змін

Виконайте команду terraform apply, щоб створити ресурси, які ви переглядали. Вам буде запропоновано підтвердити зміни перед їх застосуванням. Альтернативно, ви можете виконати команду terraform apply -auto-approve, щоб створити ресурси без запиту на підтвердження.

terraform apply  
 або  
terraform apply -auto-approve

Ви повинні отримати підтвердження, що ваші зміни були застосовані.

Крок 8: Перевірка змін

Щоб перевірити, чи дійсно були створені ресурси, увійдіть до свого акаунту AWS і перейдіть до сервісу EC2. Ви повинні побачити, що новий інстанс з назвою terraformEC2 був створений.

pic

Очищення

pic

Щоб уникнути несподіваних витрат на невикористовувані інстанси, вам потрібно буде завершити роботу з інстансом EC2, який ми створили.

Для цього виконайте команду terraform destroy, щоб видалити створений ресурс.

terraform destroy

Зачекайте, поки процес завершиться. Наприкінці ви повинні отримати запит з повідомленням Destroy complete та кількістю ресурсів, які були знищені.

Висновок

У висновку, цей посібник надав всебічний огляд початку роботи з Terraform та AWS. Дотримуючись покрокових інструкцій, ви дізналися, як створити користувача AWS з програмним доступом, налаштувати AWS CLI, встановити Terraform та описати вашу першу конфігурацію Terraform для розгортання інстансу EC2.

Дякуємо, що дійшли до кінця. До зустрічі в наступному посібнику.

Перекладено з: Getting started with Terraform and AWS: A beginner’s step-by-step guide

Leave a Reply

Your email address will not be published. Required fields are marked *