Больше не нужно искать работу мечты — присоединяйтесь к команде Клауда

Миграция из AWS в Timeweb Cloud

Роман Андреев
Роман Андреев
Технический писатель
05 июля 2024 г.
24
6 минут чтения
Средний рейтинг статьи: 5

AWS (Amazon Web Services) — коммерческое публичное облако, запущенное компанией Amazon в 2006 году. AWS предлагает услуги по инфраструктуре (виртуальные серверы, ресурсы хранения), а также на уровне платформы: облачные базы данных, связующее программное обеспечение, бессерверные вычисления, средства разработки. Однако, в связи с ограничениями, налагаемых на российских пользователей западными ИТ-компаниями, всё больше пользователей задумываются о переезде на российские облачные серверы. Рассмотрим, как перенести данные на Timeweb Cloud с AWS.

cloud

Создаем облачный сервер в Timeweb Cloud

После регистрации перейдите в панель управления и нажмите на «Облачный сервер» в меню «Общий проект» на вкладке «Сервисы»:

Image12

Далее выберите подходящие параметры сервера, соответствующие тем, которые у вас есть на AWS. А вот основные настройки:

  • ОС и ПО. Это может быть как чистая операционка, так и настроенная под определенные задачи ОС, либо собственный образ (для загрузки нажмите на пункт «Мои образы» и добавьте нужный образ):

Image2

  • Региональные настройки. Выберите регион расположения сервера и зону доступности (для Санкт-Петербурга):

Image8

  • Конфигурация. Настройте подходящий по конфигурации сервер для переезда с AWS, выбрав нужное количество ядер процессора, а также размер оперативной памяти и дискового пространства:

Image6

  • Сеть. Чтобы сервер мог выходить в интернет и получать запросы из интернета, у него должен быть внешний IPv4-адрес. Можно создать новый публичный IP или выбрать один из существующих на аккаунте, если вы заказывали публичные IP ранее. Здесь же можно добавить сервер в приватную сеть, если это требуется:

Image7

  • Дополнительные опции. Здесь вы можете подключить автоматические бэкапы и защиту от DDoS (доступна в Санкт-Петербурге и Москве):

Image5

  • Авторизация. Если у вас есть SSH-ключ, его можно загрузить здесь, нажав на кнопку «Загрузить новый ключ». А как его создать, мы подробно написали в данной статье.

Image9

  • Загрузка скриптов. Это нужно для автоматизации запуска сервера. Подробнее о сценариях здесь.

Image3

  • Информация. Задайте имя сервера, добавьте комментарий. Также вы можете ассоциировать сервер с имеющимся проектом.

Image7

Вот и всё, проверьте введенные данные, стоимость и нажмите на кнопку «Заказать» справа. После создания сервера запишите его IP-адрес и пароль (будут доступны в меню сервера) для доступа по SSH.

Переносим данные с AWS

Прежде всего отметим, что мы будем описывать перенос данных (файлов и каталогов). Рабочее окружение (веб-сервер, база данных) уже должно быть настроено на том сервере, куда мы будем переносить данные.

Итак, чтобы получить доступ к новому серверу Timeweb Cloud с вашего локального компьютера, введите в терминале: 

ssh root@ip-адрес

Так, если IP-адрес удаленного сервера — 123.45.67.89, то вводим:

ssh root@123.45.67.89

Теперь у вас будут права суперпользователя, что необходимо для выполнения дальнейших команд по переносу.

Если вы работаете под Windows, то проще всего получить доступ с помощью утилиты PuTTY. (В Windows 10 1809 и новее PuTTY уже не понадобится, так как там добавлена возможность подключения через встроенный клиент OpenSSH). Вот как выглядит интерфейс программы:

Image11

Как видим, всё достаточно просто и понятно. Попав на сервер, введите root в качестве логина и пароль сервера, который вы записали. Если не записали, то вы найдете его в панели управления созданного сервера Timeweb Cloud.

При подключении через OpenSSH запустите Windows PowerShell и введите уже знакомую команду:

ssh root@ip-адрес

Замените ip-адрес на реальный IP-адрес сервера (напомним, что найти его можно на дашборде сервера). Далее вводим пароль и устанавливаем необходимое ПО (то, которое у вас на сервере AWS).

Перенос данных проще всего выполнить через утилиту командной строки rsync (она есть по умолчанию в большинстве сборок Linux). Посмотрите, как работает утилита:

Image4

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

apt install rsync

Для CentOS/RHEL команда будет выглядеть следующим образом:

yum install rsync

Далее стоит поставить еще одну полезную утилиту — Screen, которая помогает переключаться между терминалами так, что выполняемые процессы не прерывается. Также Screen обеспечивает удобное отслеживание процесса переноса данных. Устанавливается она так:

apt install screen

Для Fedora и CentOS команда будет следующей:

yum install screen 

Для подключения к Screen вводим в терминале: screen. Дальнейшие команды Screen запускаются комбинацией Ctrl+a вместе с нажатием нужной клавиши. Создаем новое окно так: Ctrl+a+c. Далее можно разделить окна горизонтально, нажав Ctrl+a+s, или вертикально — Ctrl+a+|. Переключение между окнами выполняется через Tab. Для отключения от сессии в Screen введите Ctrl+a+d. Полный список команд Screen доступен на скриншоте ниже. Также можно ознакомиться с документацией на GitHub.

Image1

Для выполнения процедуры копирования данных с сервера AWS на сервер Timeweb Cloud введите команду вида:

rsync -a user1@source_server:/path/to/file user2@destination_server:/path/to/destination --log-file=mylog.log

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

--log-file=mylog.log — это инструкция для логирования процесса переноса в файл журнала (укажите реальное значение для вашего лога).

user1@source_server:/path/to/file — здесь вместо user1 вводим имя пользователя на сервере AWS, вместо source_server — IP удаленного сервера (источника), а /path/to/file заменяем на реальный путь к каталогу. Аналогичным образом в user2@destination_server:/path/to/destination меняем значения и для сервера приема (Timeweb Cloud).

Допустим, нам нужно перенести каталог /home/Workdir с сервера AWS на сервер Timeweb Cloud. В таком случае команда примет следующий вид (IP-адреса и имена пользователей приведены просто для примера, вам нужно будет заменить их на реальные):

rsync -a aws_user@54.234.123.456:/home/Workdir twc_user@185.71.66.123:/home/Workdir --log-file=mylog.log
Перенесите свои проекты в облако Timeweb Cloud

Теперь дождитесь окончания операции и при необходимости настройте права доступа (как это делается, смотрите здесь). А еще можно сначала запустить пробный перенос на тестовом домене, после чего перенести его уже на рабочий. На этом всё, ждем ваших комментариев и желаем успешного переезда!

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
05 июля 2024 г.
24
6 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев