Основи Linux для хмарних інженерів: Розгортання блогу на AWS EC2

Лінукс є основою сучасних хмарних платформ, сервісів та інструментів, таких як AWS, Azure, Docker та Kubernetes. Його потужний інтерфейс командного рядка, можливості скриптінгу та відкритий екосистемний підхід роблять його незамінним для широкого спектра завдань у хмарних обчисленнях.

З Лінуксом професіонали можуть оптимізувати налаштування серверів, автоматизувати рутинні операції, розгортати контейнеризовані додатки та керувати безпечними та масштабованими хмарними середовищами. Лінукс відіграє важливу роль у виявленні проблем, аналізі логів, оптимізації продуктивності та використанні передових мережевих та безпекових інструментів.

Як навичка, яка має високий попит в ІТ-індустрії, Лінукс не тільки підвищує технічну кваліфікацію, а й відкриває двері до кар'єрного зростання та нових можливостей. Чи то автоматизація процесів, масштабування інфраструктури, чи забезпечення економічної ефективності хмарних операцій — Лінукс залишається основною навичкою, що сприяє інноваціям та ефективності в хмарній екосистемі.

Налаштування середовища

Перш ніж ми почнемо, важливо налаштувати своє середовище для ефективного навчання та використання Лінукса. Віртуальна машина — це найкращий вибір для безпечної та ефективної практики команд Лінукса. Це налаштування дозволяє експериментувати з різними конфігураціями, виявляти проблеми та отримувати практичний досвід без ризику впливу на основну систему.

З віртуальною машиною ви можете легко симулювати різні дистрибутиви Лінукс, експериментувати з командами та здобувати практичні навички, які є важливими для хмарних обчислень. Цей підхід забезпечує безпечне та контрольоване середовище, де ви можете розвивати і вдосконалювати свої навички роботи з Лінуксом, що є фундаментальним для хмарних професіоналів.

У нашому випадку ми будемо використовувати AWS EC2 для цієї мети.

Знайомство з AWS EC2

EC2 (Elastic Compute Cloud) — це сервіс від AWS, який надає змінну обчислювальну потужність у хмарі, що робить його ідеальним для запуску віртуальних машин, включаючи ті, що працюють на операційних системах Лінукс. Він дозволяє користувачам орендувати віртуальні комп'ютери для запуску своїх додатків.

Налаштування віртуальної машини Linux на AWS

Щоб почати налаштування віртуальної машини Linux на AWS, спочатку потрібно увійти в свій обліковий запис AWS як IAM-користувач. Далі перейдіть на панель EC2, натиснувши на "EC2 instances". Потім натискайте "Launch Instance", щоб почати створення нашої віртуальної машини.

pic

Крок 1: Вибір Amazon Machine Image (AMI)

Дайте назву вашій машині та виберіть Amazon Machine Image (AMI). Для цього проекту ми використовуватимемо Amazon Linux 2 AMI, який підходить для безкоштовного тарифного плану. Це буде операційна система для нашої віртуальної машини.

Крок 2: Налаштування параметрів екземпляра

Для типу екземпляра виберіть t2.micro, який має 1 ГБ пам'яті та є ідеальним для цілей проекту. Цей тип екземпляра забезпечує достатньо ресурсів для тестування та розробки.

pic

Крок 3: Створення пари ключів

Наступним кроком натисніть "Create key pair", щоб створити пару ключів для вашого екземпляра, якщо у вас її ще немає. Створена пара ключів надасть вам файл .pem, який буде необхідний для безпечного підключення до екземпляра. Залиште інші налаштування за замовчуванням і натискайте "Launch Instance".

pic

Крок 4: Моніторинг запуску екземпляра

Екземпляр потребуватиме кілька хвилин для запуску. Натискайте "View all instances", щоб стежити за його статусом.
Чекайте, поки стан екземпляра зміниться з "Pending" на "Running" і переконайтеся, що статус перевірки показує "2/2 checks passed". Після завершення цих перевірок, Linux EC2 екземпляр офіційно працює в AWS, що означає, що ви успішно орендували Linux віртуальну машину в хмарі AWS.

pic

pic

Доступ до Linux EC2 екземпляра

Ваш новий екземпляр має інтерфейс командного рядка (CLI). Тепер давайте розглянемо методи доступу до цієї віртуальної машини через ваш локальний комп'ютер.

Методи підключення до вашого Linux EC2 екземпляра:

pic

  • EC2 Instance Connect: Це найпростіший метод, який дозволяє підключатися безпосередньо через AWS Management Console без необхідності використовувати стороннє програмне забезпечення. Він спрощує доступ, використовуючи облікові дані AWS безпосередньо в консолі.
  • Session Manager: Цей метод дозволяє підключатися без управління SSH ключами або використання складних імен користувачів та паролів. Ви можете підключитися до свого EC2 екземпляра через веб-браузер або AWS CLI, забезпечуючи безпечний доступ без необхідності налаштовувати мережеві порти або спеціальні налаштування SSH. Session Manager реєструє всі підключення, що полегшує аудит активностей.
  • SSH клієнт: Secure Shell (SSH) — це широко використовуваний і надійний метод для підключення до віддалених серверів. Він надає повний контроль над екземпляром, дозволяючи виконувати команди, передавати файли та керувати додатками через інтерфейс командного рядка (CLI). SSH використовує файл .pem як ключ безпеки, підключаючи оболонку вашого локального комп'ютера до оболонки вашої віддаленої Linux EC2 віртуальної машини. Переконайтеся, що вам відома IP-адреса сервера віртуальної машини, і слідуйте крокам у терміналі вашої локальної машини для підключення. Файл .pem, завантажений під час створення пари ключів, має бути у вашій папці Завантажень. Перейдіть до цієї папки за допомогою команди cd downloads та виконайте кроки, як вказано раніше. Ви повинні побачити анімоване відображення у вашому терміналі та підтвердити підключення за допомогою команди whoami, яка повинна вивести "ec2-user".

pic

  • EC2 Serial Console: Цей метод надає резервне підключення, якщо ваш екземпляр має проблеми з мережею або іншими підключеннями. Він служить прямим зв'язком з операційною системою, корисним для діагностики проблем.

Для цілей цього проекту ми будемо використовувати SSH підключення, яке забезпечує безпечний та гнучкий спосіб управління вашим Linux EC2 екземпляром.

Хостинг блогу на Linux сервері з AWS

Управління блогом на Linux сервері є фундаментальним проектом, який вводить у ключові концепції хмарних обчислень, управління серверами та команд Лінукса. Цей посібник проведе вас через процес хостингу статичного блогу на Amazon Linux 2 EC2 екземплярі на AWS, орієнтуючись на початківців, досвідчених розробників та рекрутерів, які шукають чітке демонстрування технічної компетентності.

Категорії команд Linux

Протягом цього проекту ми будемо використовувати команди Лінукса для управління файлами, директоріями та системними ресурсами. Ось категорії команд, які ми використовуватимемо:

  • Інформація про систему
  • Навігація
  • Операції з файлами
  • Права доступу до файлів
  • Управління користувачами та групами
  • Обробка тексту
  • Управління процесами
  • Управління пакетами
  • Мережеві налаштування
  • Стиснення та архівування
  • Управління системою

Корисно вести особистий запис команд та їх функцій, коли ви просуваєтесь.

Обсяг проекту

Цей проект імітує запуск блогу на Linux сервері. Для простоти ми використовуватимемо шаблон статичного вебсайту, а не розроблятимемо його з нуля.
Статичний вебсайт складається з фіксованих веб-сторінок, які відображають однаковий контент для всіх відвідувачів, без динамічних або інтерактивних елементів.

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

  • Навігація по директоріях і управління файлами.
  • Пошук та аналіз даних.
  • Налаштування користувачів та груп.
  • Моніторинг системних ресурсів.

Ці навички є важливими в області хмарної інженерії, управління серверами та ролях DevOps.

Архітектурна діаграма:

pic

Що нам потрібно?

Щоб розмістити наш статичний блог, нам будуть потрібні наступні компоненти:

  1. Веб-сервер (Nginx)
    Nginx — потужний і надійний веб-сервер, який буде зберігати та доставляти файли вебсайту. Він обробляє запити від веб-браузерів, таких як Chrome або Firefox, і відповідає на них запитуваним контентом (наприклад, веб-сторінки, зображення). Як контролер трафіку, Nginx ефективно обробляє численні запити від користувачів, не уповільнюючи сайт, забезпечуючи безперебійну роботу для відвідувачів.
  2. Віртуальний Linux EC2 екземпляр
    Наш Amazon Linux 2 EC2 екземпляр буде служити віртуальною машиною для хостингу сайту. EC2 екземпляри AWS ідеально підходять для розгортання масштабованих і надійних веб-додатків.
  3. Локальний комп'ютер
    Ми будемо використовувати наш локальний комп'ютер для підключення до EC2 екземпляра та управління ним через інтерфейс командного рядка (CLI).

Налаштування

Ми вже запустили Amazon Linux 2 EC2 екземпляр і встановили віддалене підключення з нашого локального комп'ютера. Наступний крок — встановити веб-сервер Nginx на екземплярі.

З цього моменту ми почнемо виконувати команди Linux для налаштування сервера та управління блогом. Почніть записувати команди та їхні призначення — вони слугуватимуть швидким посиланням для цього та майбутніх проектів.

Цей покроковий підхід забезпечить доступність і працездатність статичного вебсайту, імітуючи реальні завдання, з якими можна зіткнутися в ролях хмарної інженерії та адміністрування серверів.

Налаштування прав доступу та встановлення Nginx на ваш Linux EC2 екземпляр

Перевірка користувача та директорії

Після підключення до вашого Linux EC2 екземпляра через CLI термінал, перший крок — перевірити вашого поточного користувача. Використовуйте таку команду:

whoami

Ця команда виведе ім’я користувача, під яким ви увійшли. Ви повинні побачити ec2-user у відповіді. Це збігається з іменем користувача, вказаним у полі User Name вкладки EC2 Instance Connect на панелі AWS EC2.

pic

Далі, перевірте поточну директорію за допомогою команди:

pwd

Вивід має показати /home/ec2-user. Команда pwd, що розшифровується як "print working directory" (вивести робочу директорію), виводить абсолютний шлях поточної директорії, починаючи з кореневої директорії.

Перехід до користувача Root

За замовчуванням ви входите як звичайний користувач з обмеженими правами доступу, що допомагає захищати критичні системні файли. Щоб виконувати адміністративні завдання, вам потрібні підвищені привілеї. Перейдіть до користувача root за допомогою команди:

sudo su

Команда sudo su тимчасово надає доступ до суперкористувача. Ось як вона працює:

  • sudo: Виконує команду від імені суперкористувача.
  • su: Перемикається на іншого користувача, в даному випадку на користувача root.

Після виконання команда змінить підказку з $ на #, що вказує на доступ суперкористувача. Підказка також відобразить "root", підтверджуючи перемикання. Працюючи як root, будьте обережні, щоб не здійснити непередбачених змін у системі.

Ви можете переконатися, що ваша директорія не змінилася, виконавши команду pwd ще раз. Вивід має залишатися /home/ec2-user, що означає, що змінилися лише ваші привілеї, але не місце в файловій системі.

Встановлення веб-сервера Nginx

Маючи необхідні права, ви готові встановити веб-сервер Nginx.
Nginx зберігається в репозиторії програмного забезпечення і може бути завантажений за допомогою менеджера пакетів yum, який призначений для дистрибутивів на основі Red Hat Enterprise Linux (RHEL), таких як Amazon Linux 2.

Виконайте наступну команду:

yum install nginx

Команда yum працює наступним чином:

  • yum: Менеджер пакетів для встановлення, оновлення або видалення програмного забезпечення.
  • install: Дія, яку потрібно виконати.
  • nginx: Назва пакету для встановлення.

Натисніть Enter, а потім підтвердіть встановлення, набравши y, коли буде запропоновано.

Виправлення помилок при встановленні

Іноді може з'явитися помилка, яка вказує на те, що репозиторій Nginx знаходиться в певному репозиторії, наприклад nginx1. Якщо це трапиться, уважно перевірте синтаксис, запропонований в повідомленні про помилку, і виконайте рекомендовану команду для завершення встановлення.

Якщо встановлення пройшло успішно, Nginx буде готовий до використання на вашому Linux EC2 екземплярі.

Керування службою Nginx за допомогою systemctl

Команда systemctl — потужний інструмент Linux для керування службами, часто званими демонами. Ці фонові процеси працюють безперервно, виконуючи важливі системні завдання, забезпечуючи нормальну роботу та надаючи конкретні функціональності.

Розуміння systemctl

За допомогою systemctl ви можете:

  • Запускати, зупиняти або перезапускати служби.
  • Включати або вимикати служби при запуску.
  • Перевіряти стан служб.

Демони, такі як веб-сервер Nginx, потребують команд systemctl для керування своїм станом і функціональністю. Загальний синтаксис для використання systemctl виглядає так:

systemctl  

Наприклад:

  • systemctl start nginx запускає службу Nginx.
  • systemctl stop nginx зупиняє службу Nginx.
  • systemctl status nginx відображає поточний стан служби.

Перевірка статусу служби Nginx

Після встановлення Nginx важливо перевірити його статус. Використовуйте наступну команду:

systemctl status nginx

Вивід може показувати статус inactive або dead, що означає, що служба не запущена. Щоб запустити службу, виконайте:

systemctl start nginx

Ви можете перевірити, чи служба активна, виконавши команду статусу знову. Або ж можна використати стрілку вгору в терміналі, щоб швидко повторити попередню команду. Якщо все вдалось, статус має показувати active (running).

Доступ до веб-сервера Nginx

Після того, як служба Nginx запуститься, ви можете підтвердити її роботу, отримавши доступ до неї через публічну IP-адресу вашого EC2 екземпляра:

  • Перейдіть в консоль управління AWS.
  • Перейдіть на панель EC2 і виберіть ваш екземпляр.
  • Скопіюйте Public IPv4 address.

pic

  • Відкрийте веб-браузер, вставте IP-адресу в адресний рядок і натисніть Enter.

Якщо все налаштовано правильно, ви повинні побачити сторінку “Welcome to nginx!”. Однак, якщо сторінка не завантажується, це може бути через обмеження вхідних правил в групі безпеки, прикріпленій до вашого екземпляра.

Зміна вхідних правил групи безпеки

Щоб дозволити HTTP трафік і вирішити цю проблему:

  • У консолі AWS Management перейдіть до EC2 > Security Groups.
  • Виберіть групу безпеки, пов'язану з вашим EC2 екземпляром (наприклад, Default або іншу кастомну групу).
  • Перейдіть на вкладку Inbound rules.
  • Створіть нове правило з:
    • Вибір: HTTP
    • Source: 0.0.0.0/0 (це дозволяє доступ з усіх IP; для більшої безпеки розгляньте використання конкретних діапазонів IP).

pic

  • Збережіть зміни.

Застосування зміненої групи безпеки

  1. Поверніться до вашого EC2 екземпляра в консолі AWS Management.
  2. Натисніть Actions > Security > Change Security Groups.
  3. Додайте змінену групу безпеки до вашого екземпляра та збережіть зміни.

Тепер повторно відкрийте браузер і спробуйте знову отримати доступ до публічної IP-адреси.
Цього разу сторінка “Welcome to nginx!” повинна успішно завантажитись.

pic

Підготовка до хостингу блогу

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

Завантаження шаблону статичного сайту

Шаблони статичних сайтів можна знайти на відкритих платформах, таких як TemplateMo. Ось як слід діяти:

  1. Перейдіть на TemplateMo і ознайомтесь з доступними шаблонами.
  2. Виберіть шаблон на основі HTML, який підходить для вашого блогу.
  3. Завантажте шаблон на ваш комп'ютер.
  4. Розпакуйте завантажений файл і ознайомтесь з його вмістом.

pic

Завантаження шаблону на сервер Nginx

Розпаковані файли шаблону необхідно перемістити на сервер Nginx на вашому Linux EC2 екземплярі. Цей процес забезпечить хостинг блогу, щоб він був доступний через публічну IP-адресу вашого екземпляра.

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

Щоб перемістити шаблон сайту в папку HTML веб-сервера Nginx для доступу через веб-браузер, спочатку потрібно зрозуміти ієрархію файлової системи Linux. Файлова система Linux структурована деревоподібно, починаючи з кореневої директорії /.

Навігація файловою системою Linux

  • Перехід до кореневої директорії: Використовуйте команду cd /, щоб перейти до верхнього рівня файлової системи Linux. Це коренева директорія, позначена косою рисою /. Для підтвердження вашого місцезнаходження використовуйте команду pwd — вона має вивести /home/ec2-user, що означає, що ви перебуваєте в домашній директорії.
  • Перехід користувача: Оскільки нам потрібно бути root користувачем, використовуйте команду sudo su, щоб змінити користувача.
  • Перехід до верхнього рівня директорії: Тепер, коли ви стали root користувачем, використовуйте команду cd, щоб перейти до кореневої директорії, підтвердивши це командою whoami (повинно відобразити root). Щоб переглянути вміст кореневої директорії, використовуйте команду ls.
  • Список директорій: Команда ls виводить всі директорії та файли в кореневій директорії. Опції, як-от ls -l, надають детальну інформацію про файли, включаючи дозволи, власність і дати модифікації. Опція ls -a показує приховані файли та директорії, а ls -lh відображає розміри файлів у зручному для людини форматі. Також можна використовувати команду ls -R, щоб вивести вміст підкаталогів рекурсивно, отримуючи повний огляд файлової системи.
  • Навігація до конкретних директорій:
    • Щоб піднятись на один рівень у ієрархії директорій, використовуйте команду cd ...
    • Щоб перейти до конкретної директорії (наприклад, bin), використовуйте команду cd bin.
  • Розуміння навігації по директоріях: .. в команді cd .. означає батьківську директорію, а використання ../.. дозволяє піднятись на два рівні.
  • Доступ до веб-сервера Nginx:
    • Перейдіть до директорії var командою cd var.
    • Перейдіть до директорії log командою cd log.
    • Знайдіть директорію nginx у директорії log командою ls.
    • Нарешті, перейдіть до директорії nginx командою cd nginx.
  • Перевірка абсолютного шляху: Щоб підтвердити точне місцезнаходження, використовуйте команду pwd — вона має вивести /var/log/nginx.

Від основ Linux до практичного застосування

Перш ніж продовжити налаштування нашого статичного сайту, давайте зробимо невеликий відступ і розглянемо важливе основоположне поняття: ієрархію файлової системи Linux. Розуміння структури та призначення директорій Linux допоможе вам ефективно навігувати по вашому EC2 екземпляру, а також дасть змогу швидше вирішувати проблеми та оптимізувати продуктивність сервера в хмарі.

Після цього короткого відступу в основи Linux ми повернемося до нашої задачі — завершення налаштування і впевненого розгортання вашого статичного сайту.
Давайте заглибимося в тему!

Розуміння ієрархії файлової системи Linux

Ієрархія файлової системи Linux — це організована структура, що управляє файлами та директоріями в операційній системі Linux. Ця ієрархія забезпечує послідовний і логічний спосіб зберігання, доступу та управління різними типами файлів. Давайте розглянемо деякі ключові директорії:

  • / (Коренева директорія):
    Коренева директорія — це верхній рівень в ієрархії файлової системи Linux. Всі інші директорії, файли та пристрої відгалужуються від цієї директорії, що робить її точкою відліку для навігації.
  • /bin (Директорія бінарних файлів):
    Ця директорія містить основні виконувані програми, такі як ls, cp і mkdir. Ці бінарні файли є важливими як для користувачів, так і для системи для виконання основних завдань і доступні для всіх користувачів.
  • /boot:
    Директорія /boot містить критичні файли для процесу завантаження системи, включаючи ядро Linux, початковий RAM диск і конфігурації завантажувача.
  • /dev (Директорія пристроїв):
    Ця директорія містить файли пристроїв, що представляють апаратне забезпечення, таке як жорсткі диски, USB-пристрої та принтери, дозволяючи системі взаємодіяти з підключеними периферійними пристроями.
  • /etc:
    Ця директорія зберігає системні конфігураційні файли, такі як налаштування мережі, дані для аутентифікації користувачів і сценарії запуску.
  • /home:
    У кожного користувача є окрема домашня директорія в /home, що надає особистий простір для файлів і конфігурацій. Наприклад, команда pwd може вивести /home/ec2-user, що вказує на домашню директорію користувача.
  • /lib (Бібліотеки):
    Ця директорія містить необхідні бібліотеки, що використовуються програмами з /bin і /sbin, а також інші бібліотеки для виконання програм.
  • /media та /mnt:
    Ці директорії використовуються як точки монтування для знімних носіїв (наприклад, USB-дисків) і тимчасових монтувань файлових систем відповідно.
  • /opt:
    Резервується для додаткового програмного забезпечення та сторонніх пакетів, які не відповідають стандартній ієрархії.
  • /proc:
    Віртуальна файлова система, яка надає реальну інформацію про процеси та ресурси системи.
  • /root:
    Це домашня директорія для root користувача (адміністратора системи), який має необмежений доступ до системи.
  • /sbin:
    Ця директорія містить бінарні файли для адміністрування системи, такі як інструменти для управління мережею і резервного копіювання, що використовуються адміністраторами.
  • /tmp:
    Тимчасова директорія, доступна всім користувачам для зберігання короткочасних файлів.
  • /usr:
    Директорія /usr містить файли і програми, що відносяться до користувачів, організовані в підкаталоги, такі як /usr/bin (користувацькі бінарні файли) і /usr/lib (бібліотеки).
  • /var:
    Зберігає змінні файли, такі як логи, електронні листи та інші дані, які змінюються часто під час роботи системи.

Локація HTML файлу для NGINX

В більшості дистрибутивів Linux, стандартна директорія для HTML файлів, які обслуговує веб-сервер NGINX, знаходиться в /var/www.
Однак, для цієї інсталяції NGINX HTML файли знаходяться в директорії /usr/share/nginx/html.

Щоб перейти і переглянути вихідний код сторінки привітання NGINX:

  • Перейдімо до директорії usr :
cd /usr

Перегляньте її вміст за допомогою:

ls

pic

  • Перейдімо до директорії share :
cd share  
ls

Тепер знайдемо папку nginx:

pic

cd nginx  
ls

pic

  • Перейдімо до папки HTML:
cd html  
ls

pic

Файл за замовчуванням, index.html, містить вихідний код сторінки привітання.

  • Перегляньте вміст файлу:
    Використайте команду cat:
cat index.html

Ця команда відобразить вміст index.html безпосередньо в терміналі.

pic

Розуміння команди cat

Команда cat, що є скороченням від "concatenate", є універсальним інструментом для перегляду, створення і об’єднання файлів. Наприклад:

  • Переглянути вміст файлу:
cat filename
  • Звичні опції:
  • -n: Показує номери рядків.
  • -b: Нумерує ненульові рядки.
  • -s: Стискає кілька порожніх рядків.
  • -E: Показує $ в кінці кожного рядка.
  • -T: Показує символи табуляції як ^I.

Розуміючи ці основи, ви можете впевнено навігувати в файловій системі Linux та виконувати основні завдання за допомогою команд типу cat.

Налаштування та розгортання вебсайту на EC2 інстансі

У цьому посібнику ми будемо розгортати вебсайт на EC2 інстансі, використовуючи команди Linux для управління файлами та налаштування сервера. Кожен крок детально пояснюється, щоб ви зрозуміли як синтаксис, так і призначення використаних команд.

Об’єднання та відображення файлів

Команда cat часто використовується для відображення вмісту файлів. Наприклад, щоб об’єднати і відобразити вміст двох файлів, index.html і poweredby.png, в терміналі, використовуйте:

cat index.html poweredby.png
  • cat: Об’єднує і відображає вміст файлів.
  • index.html та poweredby.png: Джерела файлів, вміст яких ми хочемо переглянути.

Ця команда об’єднує вміст index.html і poweredby.png і відображає їх в терміналі. Хоча це безпосередньо не впливає на розгортання вебсайту, це допомагає зрозуміти, як кілька файлів можуть бути відображені разом, що може бути корисно для відлагодження чи ведення журналу в майбутньому.

pic

Якщо ви хочете побачити вміст з номерами рядків для кращої наочності, використовуйте:

cat -n index.html

Додавання номерів рядків при перегляді вмісту файлів, таких як index.html, може допомогти при перевірці коду, особливо коли потрібно виправити помилки чи переконатися, що певні блоки коду на місці.

Об’єднання файлів і збереження результату

Пряме відношення до проекту:

  • Зберегти об’єднаний вміст у новий файл:
cat index.html poweredby.png > newfile.txt
  • >: Перенаправляє об’єднаний вміст з cat у новий файл замість відображення його в терміналі.
  • newfile.txt: Файл-мішень, куди збережено об’єднаний вміст.

Ця команда використовується для об’єднання вмісту index.html і poweredby.png та збереження їх у новому файлі newfile.txt. Хоча ця команда не є частиною основного процесу розгортання, вона добре демонструє, як можна об’єднати файли в один.
Це важлива навичка в Linux при управлінні вмістом файлів.

Перед виконанням вище вказаної команди, створіть новий файл за допомогою команди touch :

touch newfile.txt
  • touch: Створює порожній файл або оновлює часові мітки існуючого файлу.

Цей процес не є специфічним для нашого проекту, але є поширеним способом управління вмістом файлів.

Розуміння команди touch

Ілюстраційна практика:

  • Створення кількох файлів:
touch file1 file2 file3

Використання команди touch для створення кількох файлів — це базова, але важлива навичка в Linux. Хоча вона не впливає безпосередньо на цей проект, вона корисна для розуміння маніпуляцій з файлами в системі.

Видалення файлів

Далі ми видалимо файл за замовчуванням index.html з директорії HTML NGINX, щоб замінити його на наш шаблон вебсайту. Використаємо команду rm:

rm -r index.html
  • rm: Видаляє файли або директорії.
  • -r: Рекурсивно видаляє файл та його вміст.

Опція -r необхідна для видалення директорій, але для одного файлу, такого як index.html, вона забезпечує відсутність неочікуваних помилок. Підтвердіть видалення, вивівши вміст директорії:

ls

pic

Примусове видалення файлів:

rm -f file.txt

Розуміння того, як примусово видаляти файли без підтвердження, є корисним для оптимізації робочих процесів, хоча це не використовується безпосередньо в цьому проекті.

Рекурсивне видалення директорій:

rm -r directory

Ця команда видаляє директорію і всі її вмісти. Хоча це не є необхідним для цього проекту, знання, як видаляти цілі директорії, є корисною навичкою при управлінні файлами на сервері.

Перенесення файлів на EC2 за допомогою scp

Щоб завантажити файли вебсайту з вашого локального комп’ютера на EC2 інстанс, використовуйте команду scp (secure copy). Ось повний синтаксис:

scp -i MWS.pem 2107_new_spot.zip [email protected]:/home/ec2-user
  • scp: Безпечно переносить файли між системами за допомогою SSH.
  • -i MWS.pem: Вказує на файл ідентифікації (приватний ключ) для аутентифікації з EC2 інстансом. Цей файл .pem був створений під час запуску EC2 інстанса і забезпечує безпечний доступ.
  • 2107_new_spot.zip: Джерельний файл для перенесення, який знаходиться в поточній директорії на вашому локальному комп’ютері.
  • ec2-user: Ім’я користувача для EC2 інстанса. За замовчуванням це ec2-user для інстансів Amazon Linux.
  • ec2-3-88-2-187.compute-1.amazonaws.com: Публічна IP-адреса або доменне ім’я вашого EC2 інстанса. Це можна знайти в AWS Management Console в розділі "Connect".

pic

  • :/home/ec2-user: Директорія призначення на EC2 інстансі, куди буде скопійовано файл.

Ця команда безпечно переносить файл 2107_new_spot.zip в директорію /home/ec2-user на EC2 інстансі.

pic

Розпакування файлів на EC2

Після того як файл буде перенесений, увійдіть в EC2 інстанс і розпакуйте файл:

unzip 2107_new_spot.zip
  • unzip: Розпаковує вміст ZIP файлу.

Після перенесення файлів вебсайту, ця команда розпаковує шаблони файлів на вашому EC2 інстансі.
Це необхідний крок, щоб зробити файли вебсайту доступними для деплойменту.

pic

Зжатий файл

pic

Розпакований файл

Після розпакування підтвердіть, що файли були розпаковані, вивівши вміст директорії:

ls

Це покаже папку, що містить шаблон вашого вебсайту.

pic

Переміщення файлів до директорії NGINX HTML

Щоб зробити файли вебсайту доступними для вебсервера NGINX, перемістіть їх до директорії /usr/share/nginx/html:

sudo mv 2107_new_spot/* /usr/share/nginx/html
  • sudo: Виконує команду з підвищеними правами, що необхідно для доступу до системних директорій, таких як /usr/share/nginx/html.
  • mv: Переміщає файли з одного місця в інше.
  • 2107_new_spot/*: Вказує на всі вмісти папки 2107_new_spot. Символ * включає всі файли та підкаталоги.
  • /usr/share/nginx/html: Директорія призначення, де файли вебсайту будуть обслуговуватись NGINX.

pic

Перед виконанням команди переміщення, поверніться до домашньої директорії:

cd /home/ec2-user

Це гарантує, що шляхи будуть правильно оброблені.

Тестування вебсайту

Тепер, коли файли знаходяться на місці, доступайтеся до публічної IP-адреси вашого EC2 інстанса через браузер. Отримайте IP-адресу з AWS Management Console, виконавши такі кроки:

  1. Перейдіть до EC2 Dashboard.
  2. Виберіть ваш інстанс зі списку.
  3. Скопіюйте "Public IPv4 address" у розділі "Details".

pic

Вставте IP-адресу у вашому браузері та натисніть Enter. Якщо все налаштовано правильно, ви побачите свій новий вебсайт в інтернеті.

pic

Очищення: мінімізація витрат та повернення до налаштувань за замовчуванням

Щоб уникнути непотрібних витрат і очистити ваше AWS середовище, виконайте ці кроки для видалення ресурсів, що використовувались у цьому проекті:

1. Завершення роботи EC2 інстанса

  • Перейдіть до EC2 Dashboard в AWS Management Console.
  • Виберіть ваш інстанс зі списку.
  • Натисніть Instance State > Terminate Instance.

pic

  • Підтвердіть завершення роботи. Ця дія припинить всі витрати, пов’язані з інстансом.

pic

2. Видалення ключа пари

  • Перейдіть до Key Pairs в розділі EC2 в AWS Management Console.
  • Виберіть пару ключів, створену для цього проекту.

pic

  • Натисніть Delete та підтвердіть.

pic

  • Примітка: Переконайтесь, що цей ключ більше не потрібен, оскільки дія є незворотною.

3. Видалення правил безпеки для груп

  • Перейдіть до Security Groups в розділі EC2.
  • Виберіть групу безпеки, пов'язану з вашим інстансом.
  • Видаліть будь-які власні вхідні правила (наприклад, HTTP трафік з 0.0.0.0/0).

pic

  • Якщо група безпеки більше не використовується, ви можете видалити її повністю.

4.

Видалення завантажених файлів на локальному комп'ютері

  • Знайдіть файли проекту, пару ключів (.pem файл) і шаблони, завантажені для цього проекту, на вашому локальному комп'ютері.
  • Видаліть їх безпечно, щоб зберегти чистоту середовища.

pic

Дотримуючись цих кроків, ви безпечно видалите всі ресурси, що використовувались у цьому проекті, уникнете непотрібних витрат і повернете ваше AWS середовище до початкового стану.

Розвиток впевненості у хмарній інженерії за допомогою Linux

У цьому проекті ми не тільки використали нові навички для симуляції працездатного вебсайту на EC2 інстансі, але й вивчили основні команди Linux, які підтримують або стосуються цього деплойменту. Linux є критично важливою основою для хмарних технологій, і освоєння його відкриває двері до безлічі можливостей.

Через повторення та практику зросте комфорт із ієрархією Linux та операційною системою, що зміцнить набуті навички. Хостинг цього статичного блогу — це тільки початок — кожен проект допомагає зміцнити впевненість і компетентність у хмарній інженерії.

Сподіваюся, що навички, які ви здобули під час цього проекту, служитимуть вам так само добре, як і мені. Продовжуйте досліджувати, продовжуйте будувати і розвиватися. Хмара — це ваш полотно, а Linux — ваша кисть. Удачі в програмуванні!

Перекладено з: Linux Essentials for Cloud Engineers: Deploy a Blog with AWS EC2

Leave a Reply

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