Создаем свою базу данных в облаке Amazon
Хочу поделиться историей про работу с данными, начиная от их загрузки в облако и заканчивая созданием дашбордов для аналитики самих данных. Тема не для одного поста, поэтому будем начинать постепенно. Сегодня подробно рассмотрим, как создать и настроить свой первый инстанс в облаке Amazon и установить на него базу данных Postgres. Погнали!
Создание инстанса RDS
Итак, почему именно Amazon? Так уж получилось, что свое первое знакомство с облачными
системами я начал именно с него. Но если вы планируете развертывать серьезную
инфраструктуру в облаке, то стоит провести предварительный рисерч на тему ценообразования
у разных cloud-вендоров. А также принять во внимание юридические аспекты.
Если ваш продукт собирает пользовательские данные россиян, то вы обязаны их хранить
на территории РФ.
В нашем примере мы такими ограничениями не связаны, поэтому начинаем.
В первую очередь создадим сам аккаунт
Т.к. мы начинающие пользователи, то выбираем Базовый план
Надо сказать, что Postgres можно было разместить и на сервисе Lightsail. Это более простой вариант развертывания данных, с упором на облачный BI. Но мы будем делать BI совсем другими инструментами.
Находим в списке сервисов RDS, переходим в карточку и жмём большую оранжевую кнопку Create Database
Дальше выбираем location, где наши данные будут физически храниться.
У Amazon сервера по всему миру. но к нам ближе всего сервера из Франкфурта или Лондона.
Я выбрал немецкий вариант
После выбора локейшна опять жмем Create Database
После этого пункта начинается собственно настройка самого инстанса
Выбираем версию БД Postgres, которую хотим развернуть. Я выбрал последний стабильный
релиз. А также необходимо выбрать Шаблон размещения.
На выбор три варианта - Production, Dev/Test и Free Tier. Для наших целей выберем последний.
Раздел Availability & Durability пропускаем. Для наших тестовых целей это не нужно.
В Connectivity выбираем тип виртуального сервера. Нам достаточно default варианта. Subnet также оставляем default
Дальше идет очень важный пункт, о том какой вид доступа к БД следует организовать.
Будет он публичный или нет. Публичный доступ означает, что любой человек, знающий ваши credentials сможет войти в БД. Как мы понимает. в случае утечки или подбора пароля такой вариант не обеспечивает безопасность. Не публичный доступ требует настройки специальных правил VPN для доступа. Обычно этим занимаются специально обученный люди, которые отвечают за безопасность. Для нашего примера мы остановимся на публичном доступе, хотя еще раз повторю, такой вариант не следует использовать для продакшена. Выбираем Yes.
Раздел Database Authentication. Выбираем вариант с Password. Вариант с IM и Kerberos подходят для организации доступа большого количества сотрудников с разграничением прав по ролям
Далее задаем название нашей БД и выбираем с какой частотой следует делать бэкапы БД. Чем чаще будет делаться бэкап, тем выше будет ежемесячный billing.
Я хоть и выбрал для примера частоту 36 суток, но по факту. для тренировочной среды бэкап не нужен.
Раздел мониторинг можно оставить включенным. Он отвечает за мониторинг доступности
процессоров.
Настройка доступа и подключение к БД
Подключаться к нашей БД мы будем через стороннего SQL-клиента DBeaver,
хотя в принципе, это может быть любой другой клиент, с которым вам удобно работать.
Как показала практика, выставление в настройках инстанса просто Public access не дает клиенту установить соединение. Чтобы все заработало, надо сделать еще несколько настроек
в разделе Connectivity & Security. Переходим в этот раздел и выбираем VPC security groups
В разделах Port, Protocol, Port range выбираем соответственно All Traffic, All, All. Сохраняем изменения.
Открываем клиент DBeaver и выбираем тип коннектора - PostgreSQL
В настройках соединения заносим реквизиты доступа, которые берем из консоли RDS Во вкладках Connectivity & Security это Endpoint и Port для Хоста и Порта соответственно. И во вкладке Configuration берем название инстанса для пункта База данных и имя пользователя и пароль доступа.
После того, как все занесли, жмем Тест соединения для проверки.
Ура!
Резюме
Итак, мы создали наш первый инстанс в облаке Amazon, развернули на нем БД Postgres, настроили доступ к инстансу и подключились SQL-клиентом к нашей БД.
Напоследок, я поделюсь одним лайфхаком, который сбережет вам чуток нервов.
Ваш следующий сеанс работы с облаком Amazon вы, скорее всего,
начнете с логина в консоль сервиса. И рискуете быть неприятно удивлены,
что никакого инстанса, над которым вы трудились несколько часов прошлый раз,
нет и в помине. Не спешите расстраиваться!
Нюансом здесь является то, что по умолчанию RDS открывает локейшн для США - Ohio.
А мы, если вы не забыли, создавали наш инстанс в локейшене Frankfurt.
Переключитесь на этот локейшн и вы увидите ваш Postgres-инстанс, готовый к работе!
В следующих постах я расскажу про два способа, как можно закачать сами данные в нашу БД.