Лінукс є основою сучасних хмарних платформ, сервісів та інструментів, таких як AWS, Azure, Docker та Kubernetes. Його потужний інтерфейс командного рядка, можливості скриптінгу та відкритий екосистемний підхід роблять його незамінним для широкого спектра завдань у хмарних обчисленнях.
З Лінуксом професіонали можуть оптимізувати налаштування серверів, автоматизувати рутинні операції, розгортати контейнеризовані додатки та керувати безпечними та масштабованими хмарними середовищами. Лінукс відіграє важливу роль у виявленні проблем, аналізі логів, оптимізації продуктивності та використанні передових мережевих та безпекових інструментів.
Як навичка, яка має високий попит в ІТ-індустрії, Лінукс не тільки підвищує технічну кваліфікацію, а й відкриває двері до кар'єрного зростання та нових можливостей. Чи то автоматизація процесів, масштабування інфраструктури, чи забезпечення економічної ефективності хмарних операцій — Лінукс залишається основною навичкою, що сприяє інноваціям та ефективності в хмарній екосистемі.
Налаштування середовища
Перш ніж ми почнемо, важливо налаштувати своє середовище для ефективного навчання та використання Лінукса. Віртуальна машина — це найкращий вибір для безпечної та ефективної практики команд Лінукса. Це налаштування дозволяє експериментувати з різними конфігураціями, виявляти проблеми та отримувати практичний досвід без ризику впливу на основну систему.
З віртуальною машиною ви можете легко симулювати різні дистрибутиви Лінукс, експериментувати з командами та здобувати практичні навички, які є важливими для хмарних обчислень. Цей підхід забезпечує безпечне та контрольоване середовище, де ви можете розвивати і вдосконалювати свої навички роботи з Лінуксом, що є фундаментальним для хмарних професіоналів.
У нашому випадку ми будемо використовувати AWS EC2 для цієї мети.
Знайомство з AWS EC2
EC2 (Elastic Compute Cloud) — це сервіс від AWS, який надає змінну обчислювальну потужність у хмарі, що робить його ідеальним для запуску віртуальних машин, включаючи ті, що працюють на операційних системах Лінукс. Він дозволяє користувачам орендувати віртуальні комп'ютери для запуску своїх додатків.
Налаштування віртуальної машини Linux на AWS
Щоб почати налаштування віртуальної машини Linux на AWS, спочатку потрібно увійти в свій обліковий запис AWS як IAM-користувач. Далі перейдіть на панель EC2, натиснувши на "EC2 instances". Потім натискайте "Launch Instance", щоб почати створення нашої віртуальної машини.
Крок 1: Вибір Amazon Machine Image (AMI)
Дайте назву вашій машині та виберіть Amazon Machine Image (AMI). Для цього проекту ми використовуватимемо Amazon Linux 2 AMI, який підходить для безкоштовного тарифного плану. Це буде операційна система для нашої віртуальної машини.
Крок 2: Налаштування параметрів екземпляра
Для типу екземпляра виберіть t2.micro, який має 1 ГБ пам'яті та є ідеальним для цілей проекту. Цей тип екземпляра забезпечує достатньо ресурсів для тестування та розробки.
Крок 3: Створення пари ключів
Наступним кроком натисніть "Create key pair", щоб створити пару ключів для вашого екземпляра, якщо у вас її ще немає. Створена пара ключів надасть вам файл .pem
, який буде необхідний для безпечного підключення до екземпляра. Залиште інші налаштування за замовчуванням і натискайте "Launch Instance".
Крок 4: Моніторинг запуску екземпляра
Екземпляр потребуватиме кілька хвилин для запуску. Натискайте "View all instances", щоб стежити за його статусом.
Чекайте, поки стан екземпляра зміниться з "Pending" на "Running" і переконайтеся, що статус перевірки показує "2/2 checks passed". Після завершення цих перевірок, Linux EC2 екземпляр офіційно працює в AWS, що означає, що ви успішно орендували Linux віртуальну машину в хмарі AWS.
Доступ до Linux EC2 екземпляра
Ваш новий екземпляр має інтерфейс командного рядка (CLI). Тепер давайте розглянемо методи доступу до цієї віртуальної машини через ваш локальний комп'ютер.
Методи підключення до вашого Linux EC2 екземпляра:
- 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".
- EC2 Serial Console: Цей метод надає резервне підключення, якщо ваш екземпляр має проблеми з мережею або іншими підключеннями. Він служить прямим зв'язком з операційною системою, корисним для діагностики проблем.
Для цілей цього проекту ми будемо використовувати SSH підключення, яке забезпечує безпечний та гнучкий спосіб управління вашим Linux EC2 екземпляром.
Хостинг блогу на Linux сервері з AWS
Управління блогом на Linux сервері є фундаментальним проектом, який вводить у ключові концепції хмарних обчислень, управління серверами та команд Лінукса. Цей посібник проведе вас через процес хостингу статичного блогу на Amazon Linux 2 EC2 екземплярі на AWS, орієнтуючись на початківців, досвідчених розробників та рекрутерів, які шукають чітке демонстрування технічної компетентності.
Категорії команд Linux
Протягом цього проекту ми будемо використовувати команди Лінукса для управління файлами, директоріями та системними ресурсами. Ось категорії команд, які ми використовуватимемо:
- Інформація про систему
- Навігація
- Операції з файлами
- Права доступу до файлів
- Управління користувачами та групами
- Обробка тексту
- Управління процесами
- Управління пакетами
- Мережеві налаштування
- Стиснення та архівування
- Управління системою
Корисно вести особистий запис команд та їх функцій, коли ви просуваєтесь.
Обсяг проекту
Цей проект імітує запуск блогу на Linux сервері. Для простоти ми використовуватимемо шаблон статичного вебсайту, а не розроблятимемо його з нуля.
Статичний вебсайт складається з фіксованих веб-сторінок, які відображають однаковий контент для всіх відвідувачів, без динамічних або інтерактивних елементів.
До кінця цього проекту ви отримаєте практичний досвід з командами Linux під час управління блогом, що розміщений у хмарі. Завдання включають:
- Навігація по директоріях і управління файлами.
- Пошук та аналіз даних.
- Налаштування користувачів та груп.
- Моніторинг системних ресурсів.
Ці навички є важливими в області хмарної інженерії, управління серверами та ролях DevOps.
Архітектурна діаграма:
Що нам потрібно?
Щоб розмістити наш статичний блог, нам будуть потрібні наступні компоненти:
- Веб-сервер (Nginx)
Nginx — потужний і надійний веб-сервер, який буде зберігати та доставляти файли вебсайту. Він обробляє запити від веб-браузерів, таких як Chrome або Firefox, і відповідає на них запитуваним контентом (наприклад, веб-сторінки, зображення). Як контролер трафіку, Nginx ефективно обробляє численні запити від користувачів, не уповільнюючи сайт, забезпечуючи безперебійну роботу для відвідувачів. - Віртуальний Linux EC2 екземпляр
Наш Amazon Linux 2 EC2 екземпляр буде служити віртуальною машиною для хостингу сайту. EC2 екземпляри AWS ідеально підходять для розгортання масштабованих і надійних веб-додатків. - Локальний комп'ютер
Ми будемо використовувати наш локальний комп'ютер для підключення до EC2 екземпляра та управління ним через інтерфейс командного рядка (CLI).
Налаштування
Ми вже запустили Amazon Linux 2 EC2 екземпляр і встановили віддалене підключення з нашого локального комп'ютера. Наступний крок — встановити веб-сервер Nginx на екземплярі.
З цього моменту ми почнемо виконувати команди Linux для налаштування сервера та управління блогом. Почніть записувати команди та їхні призначення — вони слугуватимуть швидким посиланням для цього та майбутніх проектів.
Цей покроковий підхід забезпечить доступність і працездатність статичного вебсайту, імітуючи реальні завдання, з якими можна зіткнутися в ролях хмарної інженерії та адміністрування серверів.
Налаштування прав доступу та встановлення Nginx на ваш Linux EC2 екземпляр
Перевірка користувача та директорії
Після підключення до вашого Linux EC2 екземпляра через CLI термінал, перший крок — перевірити вашого поточного користувача. Використовуйте таку команду:
whoami
Ця команда виведе ім’я користувача, під яким ви увійшли. Ви повинні побачити ec2-user
у відповіді. Це збігається з іменем користувача, вказаним у полі User Name вкладки EC2 Instance Connect на панелі AWS EC2.
Далі, перевірте поточну директорію за допомогою команди:
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.
- Відкрийте веб-браузер, вставте IP-адресу в адресний рядок і натисніть Enter.
Якщо все налаштовано правильно, ви повинні побачити сторінку “Welcome to nginx!”. Однак, якщо сторінка не завантажується, це може бути через обмеження вхідних правил в групі безпеки, прикріпленій до вашого екземпляра.
Зміна вхідних правил групи безпеки
Щоб дозволити HTTP трафік і вирішити цю проблему:
- У консолі AWS Management перейдіть до EC2 > Security Groups.
- Виберіть групу безпеки, пов'язану з вашим EC2 екземпляром (наприклад, Default або іншу кастомну групу).
- Перейдіть на вкладку Inbound rules.
- Створіть нове правило з:
- Вибір: HTTP
- Source:
0.0.0.0/0
(це дозволяє доступ з усіх IP; для більшої безпеки розгляньте використання конкретних діапазонів IP).
- Збережіть зміни.
Застосування зміненої групи безпеки
- Поверніться до вашого EC2 екземпляра в консолі AWS Management.
- Натисніть Actions > Security > Change Security Groups.
- Додайте змінену групу безпеки до вашого екземпляра та збережіть зміни.
Тепер повторно відкрийте браузер і спробуйте знову отримати доступ до публічної IP-адреси.
Цього разу сторінка “Welcome to nginx!” повинна успішно завантажитись.
Підготовка до хостингу блогу
Після того, як Nginx став доступним і працюючим, наступним кроком є завантаження файлів вашого статичного сайту на сервер. Для простоти ми скористаємося заздалегідь підготовленим шаблоном статичного сайту.
Завантаження шаблону статичного сайту
Шаблони статичних сайтів можна знайти на відкритих платформах, таких як TemplateMo. Ось як слід діяти:
- Перейдіть на TemplateMo і ознайомтесь з доступними шаблонами.
- Виберіть шаблон на основі HTML, який підходить для вашого блогу.
- Завантажте шаблон на ваш комп'ютер.
- Розпакуйте завантажений файл і ознайомтесь з його вмістом.
Завантаження шаблону на сервер 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
- Перейдімо до директорії
share
:
cd share
ls
Тепер знайдемо папку nginx
:
cd nginx
ls
- Перейдімо до папки HTML:
cd html
ls
Файл за замовчуванням, index.html
, містить вихідний код сторінки привітання.
- Перегляньте вміст файлу:
Використайте командуcat
:
cat index.html
Ця команда відобразить вміст index.html
безпосередньо в терміналі.
Розуміння команди 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
і відображає їх в терміналі. Хоча це безпосередньо не впливає на розгортання вебсайту, це допомагає зрозуміти, як кілька файлів можуть бути відображені разом, що може бути корисно для відлагодження чи ведення журналу в майбутньому.
Якщо ви хочете побачити вміст з номерами рядків для кращої наочності, використовуйте:
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
Примусове видалення файлів:
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".
:/home/ec2-user
: Директорія призначення на EC2 інстансі, куди буде скопійовано файл.
Ця команда безпечно переносить файл 2107_new_spot.zip
в директорію /home/ec2-user
на EC2 інстансі.
Розпакування файлів на EC2
Після того як файл буде перенесений, увійдіть в EC2 інстанс і розпакуйте файл:
unzip 2107_new_spot.zip
unzip
: Розпаковує вміст ZIP файлу.
Після перенесення файлів вебсайту, ця команда розпаковує шаблони файлів на вашому EC2 інстансі.
Це необхідний крок, щоб зробити файли вебсайту доступними для деплойменту.
Зжатий файл
Розпакований файл
Після розпакування підтвердіть, що файли були розпаковані, вивівши вміст директорії:
ls
Це покаже папку, що містить шаблон вашого вебсайту.
Переміщення файлів до директорії 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.
Перед виконанням команди переміщення, поверніться до домашньої директорії:
cd /home/ec2-user
Це гарантує, що шляхи будуть правильно оброблені.
Тестування вебсайту
Тепер, коли файли знаходяться на місці, доступайтеся до публічної IP-адреси вашого EC2 інстанса через браузер. Отримайте IP-адресу з AWS Management Console, виконавши такі кроки:
- Перейдіть до EC2 Dashboard.
- Виберіть ваш інстанс зі списку.
- Скопіюйте "Public IPv4 address" у розділі "Details".
Вставте IP-адресу у вашому браузері та натисніть Enter. Якщо все налаштовано правильно, ви побачите свій новий вебсайт в інтернеті.
Очищення: мінімізація витрат та повернення до налаштувань за замовчуванням
Щоб уникнути непотрібних витрат і очистити ваше AWS середовище, виконайте ці кроки для видалення ресурсів, що використовувались у цьому проекті:
1. Завершення роботи EC2 інстанса
- Перейдіть до EC2 Dashboard в AWS Management Console.
- Виберіть ваш інстанс зі списку.
- Натисніть Instance State > Terminate Instance.
- Підтвердіть завершення роботи. Ця дія припинить всі витрати, пов’язані з інстансом.
2. Видалення ключа пари
- Перейдіть до Key Pairs в розділі EC2 в AWS Management Console.
- Виберіть пару ключів, створену для цього проекту.
- Натисніть Delete та підтвердіть.
- Примітка: Переконайтесь, що цей ключ більше не потрібен, оскільки дія є незворотною.
3. Видалення правил безпеки для груп
- Перейдіть до Security Groups в розділі EC2.
- Виберіть групу безпеки, пов'язану з вашим інстансом.
- Видаліть будь-які власні вхідні правила (наприклад, HTTP трафік з 0.0.0.0/0).
- Якщо група безпеки більше не використовується, ви можете видалити її повністю.
4.
Видалення завантажених файлів на локальному комп'ютері
- Знайдіть файли проекту, пару ключів (
.pem
файл) і шаблони, завантажені для цього проекту, на вашому локальному комп'ютері. - Видаліть їх безпечно, щоб зберегти чистоту середовища.
Дотримуючись цих кроків, ви безпечно видалите всі ресурси, що використовувались у цьому проекті, уникнете непотрібних витрат і повернете ваше AWS середовище до початкового стану.
Розвиток впевненості у хмарній інженерії за допомогою Linux
У цьому проекті ми не тільки використали нові навички для симуляції працездатного вебсайту на EC2 інстансі, але й вивчили основні команди Linux, які підтримують або стосуються цього деплойменту. Linux є критично важливою основою для хмарних технологій, і освоєння його відкриває двері до безлічі можливостей.
Через повторення та практику зросте комфорт із ієрархією Linux та операційною системою, що зміцнить набуті навички. Хостинг цього статичного блогу — це тільки початок — кожен проект допомагає зміцнити впевненість і компетентність у хмарній інженерії.
Сподіваюся, що навички, які ви здобули під час цього проекту, служитимуть вам так само добре, як і мені. Продовжуйте досліджувати, продовжуйте будувати і розвиватися. Хмара — це ваш полотно, а Linux — ваша кисть. Удачі в програмуванні!
Перекладено з: Linux Essentials for Cloud Engineers: Deploy a Blog with AWS EC2