В этом материале, который посвящен работе с облачными серверами, вы найдете ключевые термины и команды, а также ресурсы для дальнейшего обучения.
Облачные вычисления для обеспечения хостинга обычно используют виртуализацию, то есть отказ от физического оборудования (часто локального). Это значит, что проекты могут создаваться и поддерживаться без больших финансовых и временных затрат на обслуживание собственного оборудования. После изучения основ облачных серверов, можно приступать к изучению других ключевых концепций и технологий облачных вычислений – баз данных, контейнеров, веб-серверов и их защиты.
Материал включает три раздела: терминология облака и моделей его доставки, работа с командной строкой Linux и работа SSH с удаленными серверами.
Читайте также:
- Облачный хостинг: основы работы с серверами
- Начальная настройка Ubuntu 22.04
- Как выбрать дистрибутив Linux
- Введение в облачный хостинг
Что такое облако?
Облачные вычисления — это предоставление вычислительных ресурсов как услуги. Это значит, что ресурсы принадлежат провайдеру облачных услуг и управляются им же, а не конечным пользователем. Скорее всего, вы работали с облаком для просмотра потокового мультимедиа, хранения своих личных данных (фотографий, файлов и т.д.) или создавали собственные веб-приложения или другие проекты.
В введении в облачные вычисления вы узнали об облачных вычислениях в том виде, в каком они определены Национальным институтом стандартов и технологий (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