fbpx
linux
27

AWS. Поднимаем Linux на AWS EC2

5
(1)

В этой статье я покажу как быстро и без проблем установить Linux на AWS (Amazon Web Services).

Подготовка к установке Linux на AWS

Надеюсь вам удалось успешно пройти регистрацию, выбрали желаемую подписку, с вас списали доллар и вы оказались на  странице:

Linux машина далее по тексту будет именоваться - instance.

Жмём в левом верхнем углу на вкладку Services, после чего видим список всех предоставленных сервисов AWS.

Нас интересует EC2:

В правом верхнем углу(1) вкладка с наименованием Frankfurt говорит нам о расположении нашего instance.

Region - географическое местоположение (Europe - Frankfurt).

Availability Zone - изолированный Data Centre (eu-central-1).

Instance закрепляется за связкой Region + Availability Zone.

Если изменить Region или Availability Zone, созданный ранее instance не обнаружится на AWS EC2 Dashboard.

Приступим к созданию instance, переходим по вкладке Instances(2), жмём Launch Instances:


Шаг 1.

  • Если вы хотите познакомиться с AWS, рекомендую ставить галочку free tier only, что позволяет использовать бесплатно в течение года micro instances. С ограничение по 750 часов в месяц.
  • Выбираем необходимые нам image и архитектуру, я выберу Debian.
  • Select

Шаг 2.

  • Нам предлагается следующая бесплатная конфигурация, вы можете выбрать необходимое, но помните, за всё нужно платить:
  • t2.micro (- ECUs, 1 vCPUs, 2.5 GHz, -, 1 GiB memory, EBS only).
  • Можем навести курсором на выделенную зелёным цветом надпись и подробнее прочитать про условия использования данного instance type в кабинете AWS.
  • Next: Configure Instance Details

Шаг 3.

Рассмотрим не все настройки в данном блоке, только самое необходимое, что не требует финансовых затрат.

  • Number of instances  -  необходимое количество instance, которое мы хотим развернуть в AWS

В нашем случае достаточно одного.

  • Network  - можем создать свой VPC, а можем воспользоваться уже имеющимся.
  • Subnet - можем выбрать из имеющихся, можем создать свою.
  • Shutdown Behavior - по умолчанию стоит Stop, если выставим Terminate - instance удалится при выключении.
  • Stop - Hibernate behavior - при переводе instance в спящий режим, в режиме гибернации содержимое памяти инстанса (ОЗУ) сохраняется в корневом томе Amazon Elastic Block Store (Amazon EBS).
  • Enable termination protection - защита от случайного удаления, советую включить.
  • Advanced Details:
  1. Enclave - позволяет создавать изолированные переменные.
  2. User data - здесь можем написать скрипт, который выполнится при создании instance.
  • Next: Add Storage.

Шаг 4.

  • Указываем размер тома, его тип, при необходимости добавляем новые тома. Бесплатно можете использовать 30Gb, за остальное в кабинете AWS придётся платить.
  • Next: Add Tags.

Шаг 5.

  • Добавим таг Name, Value: Debian_Server.
  • Можем добавить таг Owner, Value: AWS_admin.
  • Данная информация будет отображаться на панели instances. Очень удобно всегда тагируйте.
  • Next: Configure Security Groups.

Шаг 6.

  • Создаём свою Security Group (SG).
  • Указываем SG name: SG_web_http_https_ssh.
  • Указываем Description: SG_web_http_https_ssh.
  • Add Rule: выбираем протокол HTTP.
  • В поле Source нам предоставляют выбор:
  1. Custom - задаём подсеть и маску.
  2. Anywhere - доступно всем пользователя сети интернет.
  3. My ip - будет доступно только вам.
  • HTTPS, SSH и т.д.
  • Review and launch.

Шаг 7.

Нам будет предоставлена полная информация о сконфигурированном instance. Жмём Launch.

Шаг 8.

  • Всплывёт окно, в котором нам необходимо выбрать создание пары ключей, так как созданных ещё нет.
  • Key pair name - пишем что-то осмысленное, например: admin_debian_frankfurt.
  • Download key pair - начнётся скачивание приватного ключа. Переместите ключ в удобное для вас место.
  • Жмите на 'Launch Instance'.

Как установить Linux на AWS

Конфигурация завершена. Жмём View instance.

Нас переносит на вкладку Instances, где мы можем увидеть наш только что созданный instance.

Первоначально статус будет: Pending, спустя некоторое время изменится на Running.

  • Зелёным цветом показано, что instance запущен. Можем подключаться.
  • Public IPv4, можем подключаться по нему, либо использовать Public IPv4 DNS
  • Нажмём на Instance ID выделен синим цветом.

Как установить Linux на AWS

Внутри Instance ID видим:

Как установить Linux на AWS

Instance State:

  • Stop, Start, Terminate, Reboot, Hibernate.

Подключение:

  • В кабинете AWS переходим на вкладку SSH client.
  • 4 пункт предлагает нам команду, по которой мы можем подключиться к нашему instance.
  • Вы можете использовать Public DNS, либо Public IPv4, если вы подключаетесь к Linux instance из интернета.
  • Вы можете использовать Private DNS, либо Private IPv4, если вы подключаетесь к Linux instance внутри локальной сети. Например у вас два instances, созданных в AWS.

Как установить Linux на AWS

Ещё немного интересного об аккаунте на AWS:

На главной странице кликаем на профиль, далее My Billing Dashboard:

На всё бесплатное есть ограничение как вы уже заметили.

Как установить Linux на AWS

Потренировались с instance - удаляем его.

Добавили фичу типа мониторинга, балансировщика - посмотрели, удалили.

99,99% того что вы поставите на aws, будет стоить денег.

Рассмотрим вариант с подключением посредством SSH-client . Я использую MobaXterm.

  • Создадим новую сессию.
  • Выбираем SSH.
  • Advanced SSH settings.
  • Галку на Use private key - указываем путь до приватного ключа aws_frankfurt, который мы создавали на Step 8.
  • Remote host - указываем Public IPv4.
  • Галку на Specify username - в моём случае admin. Всю эту информацию вы также можете посмотреть в Public IPv4 DNS имени, описанном в предыдущем шаге. Напомню как это выглядит <username>@ec2-<ipv4-address>.eu-central-1.compute.amazonaws.com.
  • Жмём Ок.

Как установить Linux на AWS

Cканируем порты на нашем aws instance.

Действия производим с хоста не являющегося нашим ново созданным instance.

Обновляем репозиторий и устанавливаем утилиту nmap:

$ sudo apt-get update && sudo apt-get install -y nmap

Далее вводим команду с sudo, вместо <ip_address_aws_instance> указываем IP адрес AWS instance:

$ sudo nmap -Pn <ip_address_aws_instance>
  • Можете ввести команду без дополнительных ключей -Pn, результат будет отличным от того, что у меня на экране и вам предложат добавить ключ -Pn.

Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn

  • -P0 - опция -P0, при которой исследуемый компьютер не сканируется на присутствие в сети (то есть не пингуется вообще), а сканируются только порты компьютера.
  • -Pn - По умолчанию при сканировании IP-адреса Nmap получает информацию об имени компьютера из системного DNS. Чтобы увеличить скорость сканирования, можно отключить эту опцию, для чего  необходимо добавить ключ -n.

Как установить Linux на AWS

Что видим на консоли:

  • IP адреса instance.
  • 999 filtered ports - Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам Nmap этого порта.
  • 22/tcp open ssh - Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт.

У вас может отображаться больше портов, всё зависит от того, как вы настраивали SG на AWS instance при его создании.

Если хотите закрыть порты, переходите в aws, откуда у нас начиналось знакомство, потом во вкладку Instances > Instance ID > Security > Security groups > Edit Inbound Rules.

Делаете изменения, сохраняете, ради интереса вновь просканируйте.

Для того, чтобы не запоминать ip адрес instance давайте пропишем его в файл /etc/hosts:

$ sudo vi /etc/hosts

(можете использовать другой редактор, например nano)

<aws_instance_ip>       aws_instance

Сохраняем изменения и выходим, пробуем сканировать  instance по его имени, указанному в hosts:

$ sudo nmap -Pn aws_instance

Хорошо, теперь попробуем подключиться к instance по ssh, подбросив ему свой открытый ssh_public_key.

$ sudo apt-get install openssh-server openssh-clients
$ ssh-keygen

Введите путь файла, в который будут помещены ключи.

Каталог по умолчанию указан в скобках, в примере /домашний_каталог/.ssh/id_rsa. Если хотите оставить расположение по умолчанию, нажмите Enter.

Пароль (passphrase) используется для ограничения доступа к закрытому ключу. Пароль усложнит использование ключа третьими лицами в случае утраты. Если не хотите использовать секретную фразу, нажмите Enter без заполнения строки.

Успешно сгенерировав пару ключей, вы увидите уведомление:

Как установить Linux на AWS

 

 

 

 

 

 

 

 

Открытый ключ хранится в файле /домашний_каталог/.ssh/id_rsa.pub, закрытый — /домашний_каталог/.ssh/id_rsa.

Скопируйте открытый ключ на сервер в файл  /домашний_каталог/.ssh/authorized_keys. Одной строкой:

$ cat ~/.ssh/id_rsa.pub | sudo ssh -i /home/<user_name>/aws_frankfurt.pem admin@<aws_admin> \ 'cat >> ~/.ssh/authorized_keys'

Вспомните куда локально сохранили приватный ключ для доступа, его мы получили после генерации пары ключей, создавая наш instance.

Скопируйте его в удобное для вас место на локальной машине. У меня он хранится в:

/home/node2/aws_frankfurt.pem

<aws_admin> - имя хоста, которое вы указали в файле /etc/hosts

authorized_keys - файл, где будут храниться наши public ключи.

Если после выполнения команды произошла ошибка, то скорее всего дело в пути к ключам.

Пробуем подключиться к instance:

$ ssh admin@aws_admin

Надеюсь, у вас получилось и вы попали в консоль AWS ec2 instance.

Начать курс Linux бесплатно:yodo.im/start

Читай также как установить Linux Mint

 

 

 

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Tags: , ,
Читают сейчас
Меню

Чат-бот, который учит Linux и DevOPS