Основы работы с облачными серверами

В этом материале, который посвящен работе с облачными серверами, вы найдете ключевые термины и команды, а также ресурсы для дальнейшего обучения.

Облачные вычисления для обеспечения хостинга обычно используют виртуализацию, то есть отказ от физического оборудования (часто локального). Это значит, что проекты могут создаваться и поддерживаться без больших финансовых и временных затрат на обслуживание собственного оборудования. После изучения основ облачных серверов, можно приступать к изучению других ключевых концепций и технологий облачных вычислений – баз данных, контейнеров, веб-серверов и их защиты.

Материал включает три раздела: терминология облака и моделей его доставки, работа с командной строкой Linux и работа SSH с удаленными серверами. 

Читайте также:

Что такое облако?

Облачные вычисления — это предоставление вычислительных ресурсов как услуги. Это значит, что ресурсы принадлежат провайдеру облачных услуг и управляются им же, а не конечным пользователем. Скорее всего, вы работали с облаком для просмотра потокового мультимедиа, хранения своих личных данных (фотографий, файлов и т.д.) или создавали собственные веб-приложения или другие проекты.

В введении в облачные вычисления вы узнали об облачных вычислениях в том виде, в каком они определены Национальным институтом стандартов и технологий (NIST), нерегулируемым агентством Министерства торговли США.

Пять основных характеристик облака согласно определению NIST: 

  • Самообслуживание по требованию
  • Широкий сетевой доступ
  • Объединение ресурсов в пулы
  • Быстрая эластичность
  • Измеряемость сервиса

Эти характеристики актуальны для всех типов облачных сред: публичного, частного, гибридного облака и мультиоблака.

Термины, которые нужно знать

Здесь мы собрали словарь с основными терминами, которые связаны с облачными вычислениями.

Сервер — это компьютерное оборудование или программное обеспечение, которое может запускать службы для других компьютеров и позволяет клиентским машинам функционировать.

Виртуальный частный сервер или VPS — это виртуальный сервер, который эмулирует реальный компьютер со своей операционной системой. Программное обеспечение на виртуальной машине выделяется хостом и отключается от аппаратного обеспечения компьютера. Такие серверы иногда называют виртуальными машинами или ВМ. При размещении в облаке их называют облачными серверами или удаленными серверами.

Виртуализация — это процесс, который абстрагирует компьютерную среду от физического оборудования, размещая её в облаке. Этот процесс упрощает связь между виртуальными серверами, на которых могут размещаться приложения и веб-сайты, и физическими хостами, которые управляют виртуальными серверами.

Гипервизор — это программное обеспечение, которое развертывает, управляет и предоставляет ресурсы виртуальным серверам, которые находятся под его контролем. Физическое оборудование, на котором работает гипервизор, называется хостом. Гипервизор разделяет ресурсы хоста между гостевыми ВМ.

Ядро — это центральная часть операционной системы компьютера. Ядро управляет устройствами и ресурсами, а также распределяет выделяемую память.

Виды облачных сервисов

Есть несколько моделей – инфраструктура как услуга (IaaS), платформа как услуга (PaaS) и программное обеспечение как услуга (SaaS).

IaaS обеспечивает полный контроль над вашей инфраструктурой без обслуживания собственного оборудования. Преимущества – гибкий хостинг, масштабирование облака по мере необходимости и возможность развертывания в нескольких центрах обработки данных.

С PaaS вы можете использовать платформы развертывания в серверной инфраструктуре вашего облачного провайдера. Преимущества – предсказуемое масштабирование облака, предварительно настроенная среда выполнения и упрощенный интерфейс с API интеграцией.

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

Мы разобрали основные преимущества и теоретические моменты, которые необходимо учитывать при создании проектов в облаке, а также типы проектов, доступных в той или иной модели облачной доставки. Для создания проектов в облаке многие разработчики используют виртуальные машины на базе Linux.

Работа с командной строкой

При первоначальной настройке сервера вы уже использовали командную строку: с ее помощью мы настроили среду Linux с SSH, брандмауэр, использовали менеджер пакетов и создали пользователя без root и привилегиями sudo.

Работать с интерфейсом командной строки (CLI) на локальном компьютере и на удаленном сервере можно с помощью таких команд:

  • cat – для вывода содержимого файла.
  • cd – для перемещения между каталогами.
  • curl – для передачи данных с использованием синтаксиса URL.
  • echo – для отображения строки текста.
  • ls – для вывода списка файлов.
  • mkdir – для создания новых каталогов.
  • mv – для перемещения или переименования файлов.
  • nano – для создания и редактирования текстовых файлов.
  • pwd – выводит текущую рабочую директорию.
  • rm и rmdir – для удаления файлов и папок.
  • sudo – для запуска команд от имени суперпользователя.
  • usermod – для изменения прав пользователя.

Также доступны такие опции (флаги или переключатели):

  • -a для отображения всех файлов, включая скрытые.
  • -h или –human-readable для вывода размеров памяти в удобном формате.
  • -l для вывода дополнительных сведений о файлах.
  • -o для вывода текста в файл.
  • -r для рекурсивного запуска команд.

С помощью команды history вы можете просмотреть все команды, которые запускали ранее в терминале. С помощью команды man в Linux можно вывести руководства пользователя, а с помощью флага –help просмотреть дополнительную информацию о любой команде.

После того, как вы выбрали свой дистрибутив Linux, вы можете изучить основы работы с ним, управление процессами на сервере Linux и контроль ресурсов сервера. Если вы работаете на удаленном сервере на базе Linux, для доступа и выполнения операций на удаленном сервере с вашего локального терминала вы будете использовать SSH. Давайте подробнее обсудим, что это такое.

Использование SSH

Протокол Secure Shell (SSH) позволяет войти на удаленный сервер и запустить выполнение командной строки из незащищенной сети.

Для подключения к удаленному серверу нужно создать пару SSH-ключей. Ключи SSH – это по сути учетные данные безопасного доступа при входа в систему с помощью SSH. Ваши ключи хранятся в авторизованном файле, обычно в домашнем каталоге каждого пользователя /.ssh.

Для передачи файлов между системами, помимо ssh и ssh-keygen, вы можете работать с утилитами rsync (удаленная синхронизация) и scp (программа безопасного копирования). Во время первоначальной настройки сервера мы работали с rsync для копирования файлов между пользователями, но с её помощью можно копировать файлы и между системами.

В чем разница между scp и rsync?

scp и rsync копируют файлы: scp между хостами в сети с помощью SSH; rsync – на локальном хосте или двунаправленно между локальным хостом и удаленным хостом. Обе утилиты шифруют передачу файлов при работе с SSH, но rsync популярнее благодаря своим алгоритмам дельта-передачи, что оптимизирует скорость.

С помощью scp можно выбирать, какие файлы и каталоги должны быть переданы, а rsync сначала передает все файлы и каталоги, а только затем изменяет их. Вы можете использовать дополнительные опции rsync: –archive, –verbose и –compress.

Протокол безопасной передачи файлов (sftp) — еще один вариант передачи файлов, но сейчас он почти не актуален, поскольку инструменты scp и rsync более гибкие.

Что дальше?

Как только вы ознакомитесь с основами Linux, вы можете попробовать защитить свой VPS и настроить Fail2ban для защиты вашего сервера. Вам также может быть интересно, какую систему управления пакетами выбрать.

Читайте также: Основы управления пакетами: apt, yum, dnf, pkg

Tags: , , , , ,

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