Як скористатись безкоштовним хостингом Amazon

EC2 (Elastic Cloud) — це хмарний хостинг від Amazon, що дозволяє швидко та зручно розгортати додатки. Наприклад, Docker, Kubernetes, Python та bash-скрипти. У статті розглянемо, як увійти на екземпляр EC2 за допомогою ssh-клієнтів PuTTY, Termius та Termux. Російський військовий корабель іди нах***!

Для початку роботи зареєструйтесь на сайті AWS та додайте платіжну карту. Рекомендую встановити ліміт на покупки в інтернеті, або мати окрему карту з 1$. Amazon одноразово зніме та поверне його. Після увійдіть в AWS як користувач root.

Протягом перших 12 місяців Amazon надає безкоштовно 750 годин для екземпляру t2.micro та ОС (AMI) з позначкою Free tier eligible. Ці години можуть бути використані одним екземпляром, що працює протягом повного місяця (31 день * 24 години = 744 години), або кількома екземплярами Amazon EC2, що використовуються протягом місяця. Будь-які години, що перевищують безкоштовний рівень, стягуватимуться за цінами на вимогу.

Створення екземпляру

Після входу перейдіть до сервісу EC2 (Services >> Compute >> EC2) за бажанням оберіть локацію серверу (у верхньому куточку справа) та натисніть Launch instance.

Дайте назву, оберіть операційну систему (AMI) з позначкою free tier eligible та Instance type — t2.micro.

Створення ключової пари (Key pair)

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

За замовчуванням Amazon використовує ключову пару як безпечну альтернативу паролю. Проте іноді є необхідність використовувати пароль. Розглянемо обидва способи входу.

Proceed without a key pair (not recommended) — продовжити з використанням паролю.

Create new key pair — створити нову ключову пару.

Після натискання кнопки «Create key pair» на ваш комп’ютер збережеться файл з розширенням .pem. Якщо для підключення до серверу ви будете використовувати лише PuTTy, можна відразу згенерувати пару в форматі .ppk.

Натисніть Launch instance.

Усі віртуальні машини можна знайти в бічному меню >> instances.

Підключення через вебконсоль та встановлення пароля

За замовчуванням екземпляри ec2 не мають автентифікації паролем. Проте його можна встановити вручну через вебінтерфейс. Для підключення натисніть галочку в полі екземпляру та Connect.

Після цього введіть команду sudo nano /etc/ssh/sshd_config

Якщо перемкнутись на англійську розкладку, можна вставити команду за допомогою Ctrl + V.

Знайдіть рядок «PasswordAuthentication» та змініть значення з «no» на «yes». Натисніть
Ctrl + O зберегти зміни. Enter — підтвердити назву файлу. Ctrl + X — вийти.

Придумайте та змініть пароль свого користувача за допомогою команди
sudo passwd ec2-user

Перезапустіть службу ssh
sudo service sshd restart

Вхід з паролем через PuTTY

PuTTY — безкоштовний та дуже популярний ssh клієнт для Windows. Щоб увійти в екземпляр, введіть [email protected], де цифри після собачки — публічна IP-адреса вашого екземпляру.

Вхід з ключовою парою через PuTTY

Для початку перетворіть .pem файл на .ppk (ключ в форматі PuTTY). Відкрийте программу PuTTygen та натисніть кнопку Load.

У вікні, що відкрилось внизу справа оберіть All Files (усі файли).

Оберіть .pem файл. Ви отримаєте повідомлення про успішне імпортування, натисніть ОК. Натисніть Save private key (зберегти приватний ключ).

Ви отримаєте запитання, натисніть «Так». Дайте будь-яку назву файлу та збережіть у зручне вам місце.

Для підключення до серверу відкрийте PuTTy. В рядку Hostname вкажіть Public IP адресу в форматі [email protected], або Public DNS в форматі [email protected]

Щоб завантажити ключ у бічному меню PuTTY, оберіть пункт SSH >> Auth та у рядку Private file for authentication натисніть Browse. Оберіть раніше збережений ключ .ppk.

Задля зручності рекомендую зберегти сесію. Це дозволить не вказувати дані користувача. Для цього в бічному меню оберіть пункт Session, в рядку Saved Session вкажіть довільну назву та натисніть кнопку Save.

Якщо отримуєте помилки при вході, перевірте, чи обраний файл ключа (ssh >> auth), чи правильно вказане ім’я користувача, чи правильно вказана публічна IP-адреса.

Вхід з паролем через Termius

Termius — зручний ssh-клієнт для комп’ютерів (Windows, Mac, Linux) та мобільних (Android, IOS) з можливістю збереження сесій, синхронізації сесій між клієнтами, збереження команд (сніпети). Щоб увійти на свій екземпляр EC2, вкажіть:

  • Hostname — IP-адреса екземпляру.
  • Username — ім’я користувача.
  • Password — пароль екземпляру.

За бажанням вкажіть зручне для вас ім’я — Alias.

Вхід з ключовою парою через Termius

Щоб увійти на екземпляр за допомогою ключової пари, вкажіть:

  • Hostname — IP-адреса екземпляру.
  • Username — ім’я користувача.
  • Key — оберіть приватний ключ.

За бажанням вкажіть зручне для вас ім’я — Alias.

Щоб додати приватний ключ, відкрийте файл .pem у будь-якому текстовому редакторі та скопіюйте його вміст на телефон. У Termius натисніть поле Key, потім на символ + вгорі справа, оберіть Paste Key та вставте приватний ключ.

Вхід з паролем через Termux

Termux — потужний емулятор терміналу Android з відкритим кодом. Мінімальна базова система встановлюється автоматично — додаткові пакети доступні за допомогою менеджера пакетів APT.

  • termux-change-repo — клавішею Enter оберіть репозитарій Main.
  • apt update — оновити список пакетів.
  • apt upgrade — оновити пакети. Термінал задасть вам декілька запитань щодо версії програм, обирайте версію за замовчуванням (буква «n»).
  • pkg install openssh — встановити пакет openssh.

Увійдіть на свій екземпляр за допомогою команди ssh [email protected]
Прийміть ключ шифрування (fingerprint), ввівши «yes».

Вхід з ключовою парою через Termux

Приватні ключі Termux знаходяться у директорії `~/.ssh` Щоб додати приватний ключ, відкрийте файл .pem у будь-якому текстовому редакторі та скопіюйте його вміст на телефон.

  1. Перейдіть у директорію ssh: cd ~/.ssh.
  2. Створіть файл id_rsa: nano id_rsa.
  3. Вставте вміст приватного ключа.
  4. Ctrl + O — збережіть зміни.
  5. Enter — підтвердіть назву файлу.
  6. Ctrl + X — вийдіть.

Підключіться до екземпляру за допомогою команди: ssh -i id_rsa [email protected], де цифри після собачки — публічна IP-адреса вашого екземпляру.

Як видалити екземпляр EC2

Щоб видалити екземпляр натисніть на галочку поруч з ним та у верхньому куті оберіть меню Instance state, оберіть «Terminate Instance». Ви отримаєте повідомлення про зупинення екземпляру.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось7
До обраногоВ обраному8
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Користуюсь Oracle Cloud, там інстанс бескоштовний назавжди.

А що вони дають там? Просто сервер на лінуксі чи ще якісь плюшки?

Я тільки 2 Compute Instance використовую.
Ось тут більше інфи.
docs.oracle.com/...​Always_Free_Resources.htm

Не знаю як зараз, але два місяці назад Oracle не дозволяв додавати українські карти. А підтримка не давала пояснень, чому так сталось

Для VM просто побавитись краще не використовувати популярні клауди, бо вони у них дорогі. Для VM краще hetzner, а клауди це не про VM

То трошки іньша річь. Часто EC2 використовують не для хостінгу, а як робочі машини на яких встановлено весь робочий софт, база данних, IDE, java/php/.net/node.js/python одразу потрібних версій тощо. Коли треба додати нову людину до команди йому одразу виділяють таку віртуальну машину, вона одразу приєднана до усіляких VPN тощо і людина просто до неї конектиться і починає працювати з будь якої точки світу, не витрачаючи тижні чи навіть місяці на сетап і зізвони з різними адмінами і їх керівництвом. В маленьких проектах таке рідко коли треба, запустив локально й воно пішло працювать. В enterprise подекуди до 80 інтеграцій з іньшими системами (що може і погано з архітектурної точки зору, але у клієнта воно так вже сталось, усе працює десятиліттями і приносить гроші). І от такі віртуалки це шалений спідап і приріст у роботі команди. Те саме зробити робочі CI/CD тощо. EC2 це доволі універсальна штука, підійде для багато чього. Так само EKS з наступним рівнем уніфікації через контейнерізацію, так само збудований на базі EC2.

В 2012 писали якраз софт що створювали VM для роботи))) Але автор згадав про загальне використання VM і на hetzner звичайна VM коштує в рази дешевше. Для особистого використання клауди досить дорогі попри загальну рекламу що товкмачить інше :)

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

Я працював в компаніях де в місяць витрачають 2 млн $ на інфраструктуру і де є БД по 300тис дол в місяць. Ви ще начитайтесь про готові ML рішення від клаудів за 10 доларів, тільки от як дойде до релізу ото буде цікаво дивитись за витратами.
Калуди ще треба вміти «готувати» :) Але це офтоп

Я насамперед писав в контексті якщо ти стундент і у тебе є 30-50дол, то клауд може бути в багато разів дорожчим і дешевше установити декілька VM. Ніж пробувати вписатись у «безкоштовні» ліміти клаудів. Краще використовувати hybrid клауд підхід, де використовувати приватні VM за 5 доларів і деякі сервіси на клаудах. (Не VM на клауді)

Це меседж для стундентів! А не тих хто читає загловки брошур клаудів :)

А що таке приватні VM (віртуалки на комп’ютері?)

Мав на увазі для особистого, а не для комерційного використання (де є інші вимоги по надійності ітд)

Статичну ІР адресу також необхідно створити і за неї теж треба платити.
Взагалі, якщо шукаєте опцію жлоб-хостингу, подивіться краще в бік Google cloud. Вони на рік дають trial на 300 доларів, які можна використовувати на більшість сервісів. По закінченню випробувального періоду через рік плата з картки списуватися автоматично не буде, якщо ви явно не підтвердите зміну статусу аккаунту з ознайомчого до повної версії.

Жлоб хостинг — коротко і зрозуміло. Смішна назва

Краще еласиік лоад балансер та доменне ім’я, замість статичної адреси, так само CDN якщо проекту треба. Особливо знадобиться коли почне зростати навантаження і треба буде скейлити сервіси. AWS має усе, включно з SSO тощо. От що правда бізнес часто мішають і обирають декількох поставщіків послуг, скажімо іньший CDN і лоад балансер — то доводиться платити за статичні IP адреси.

Щось я не розумію нащо EC2, тобто сервіс для віртуалок, коли використовується контейнерізація і Kubernetes якщо є EKS ? А це вже йде як motivation для статті. А от за саму статтю як за мануал з AWS консолі, дякую.

Пробачте, EC2 це мій перший досвід в AWS. Я більше ні про що не знав. А тепер знаю що є EKS. Дякую

Нічого страшного, у мене є сумніви що самі співробітники Amazon усі знають повний перелік їх сервісів. А про EKS було би класно якщо би ще статтю мануал написали, бо вони там лише англійською і російською пишуть aws.amazon.com/eks Так само і про конфігурацію лоад балансерів, доменних імен, CDN тощо.

1. Для того щоб знати самому. Я намагаюсь писати максимально якісно.
2. Щоб той хто менше знає як це працює, зміг запустити ddos на русню наприклад
3. Почитати коментарі
4. Тому що україномовного контенту мало

Якщо питання стоїть написати хороший посібник чи ні. Я обираю написати. Мені це подобається.

Кластер EKS коштує окремих грошей. За сам кластер, а ще будуть витрати на інстанси EC2 з яких той кластер складається.
І взагалі керування кубером на AWS якесь дубове, Google Cloud набагато приємніше все зроблено. Це моє особисте враження, без претензії на істину.

Плюсую далеко не ідеал. Там ще і баги, такого рівня, що в нас фейлився деплоймент на прод. От правда не впевнений що це не баги самого кубера бо його на Go lang пишуть. Тут на форумі один з розробників образився коли я написав, що таке трапляється. А по фішкам Azure чи GCP доволі непогана альтернатива.

Кстати остановке придётся платить за диск подключённый к инстансу. При удалении по умолчанию удаляется вместе с диском.

Ого! Дуже корисний коментар. Тобто «stoped» не звільняє від оплати. Від оплати звільняє лише видалення «terminated»?

Там оплата делится на разные части. За диск за траффик за мониторинг за сам инстанс и так далее. Если остановить то за инстанс платить не придётся но за диск придётся. При удалении тоже нужно учитывать оставлять диск или нет. Если оставить можно потом подключить к другому инстансу.
https://calculator.aws/#/addService/EC2
Тут можно посчитать сколько будет стоить конфигурация

А ящо ти додав ще elastic ip, а потім видалив інстанс, але не звільнив адресу то також знімуть оплату за тримання адреси, доки вона привязана до віртуалки — це бескоштовно, коли відвязана то платно.

Але я тобі одразу рекомендую зайти на AWS Skill Builder, та пройти їх курс AWS Cloud Practitioner Essential , щоб всі ці нюансі знати.

Також не рекомендую використовувати паролі у ssh, а використовувати ключ із пассфразою.

Успіхів тобі в навчанні.

terminated то ніби ж не зупинені а знищені, чи як?

Я тут точно не відповім, виправить будь ласка якщо не правий. Цю частину взяв з іноземного сайту. Знаю, що якщо натиснути terminated екземпляр зникає з списку екземплярів. Ось документація docs.aws.amazon.com/...​erminating-instances.html

Саме так, знищені. Тому існує така річь як termination protection, запобіжник від випадкового знищення інстансу. При цьому дискове(і) сховище(а) інстанса можуть як видалятися так і залишатися, це можна настроїти при створенні інстанса.

Видалив частину статті про «stopped». Щоб не заплутати себе та інших новачків

Хорошая подробная инструкция.
В виндовс сейчас достаточно неплохой ssh клиент которым тоже можно подключаться с терминала как в линуксе.

Putty був і 12 років тому не поганий. Так само як і FileZilla для SFTP. Знайомі адміни/девопси, коли вони змушені працювати на вінді з ноуту, просто ставлять на вінду linux feature і далі користуються рідними фітчами. Так само є MSYS2, хоча його Yandex драйвить який ми тут разом з Навальним і ко не любимо чомусь.

Та він має на увазі не путті, а прям із терміналу ssh.

Підписатись на коментарі