Облачная платформаAdvanced

Подключение к DB Instance из Linux ECS через Приватную сеть

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

После создания экземпляра RDS for PostgreSQL вы можете подключиться к нему из Linux ECS с установленным клиентом PostgreSQL через приватную сеть.

Вы можете использовать клиент PostgreSQL psql для подключения к вашему DB instance через соединение Secure Sockets Layer (SSL). SSL шифрует соединения с вашим DB instance, делая передаваемые данные более защищёнными.

SSL включён по умолчанию при создании DB instance RDS for PostgreSQL и не может быть отключён после создания экземпляра.

Включение SSL снижает производительность только чтения и чтения/записи вашего экземпляра примерно на 20%.

Шаг 1: Создать ECS

  1. Войдите в консоль управления и проверьте, доступен ли ECS.
    • Если есть Linux ECS, перейдите к 3.
    • Если Linux ECS недоступен, перейдите к 2.
  2. Создайте ECS и выберите Linux (например, CentOS) в качестве ОС.

    Чтобы загрузить клиент PostgreSQL на ECS, привяжите к ECS EIP. ECS должна находиться в том же регионе, VPC и группе безопасности, что и экземпляр RDS for PostgreSQL, для взаимной связи.

    Подробную информацию о том, как приобрести Linux ECS, см. "Purchasing an ECS" в Elastic Cloud Server User Guide.

  3. На Информация о ECS странице, просмотрите регион и VPC ECS.

  4. На Основная информация странице экземпляра RDS for PostgreSQL, просмотрите его регион и VPC.
  5. Проверьте, находятся ли ECS и экземпляр RDS for PostgreSQL в одном регионе и VPC.
    • Если да, перейдите к Шаг 2: Проверка подключения и установка клиента PostgreSQL.
    • Если они находятся не в одном регионе, создайте другой ECS или DB instance. ECS и DB instance в разных регионах не могут взаимодействовать друг с другом. Чтобы снизить сетевую задержку, разверните ваш DB instance в регионе, ближайшем к вашим рабочим нагрузкам.
    • Если ECS и DB instance находятся в разных VPC, измените VPC ECS на VPC DB instance. Для подробностей см. "Changing a VPC" в Elastic Cloud Server Руководство пользователя.

Шаг 2: Тестировать подключение и установить клиент PostgreSQL

  1. Войдите в ECS. Для подробностей см. "Login Using VNC" в Elastic Cloud Server Руководство пользователя.
  2. На Экземпляры странице консоли RDS, нажмите имя DB instance, чтобы перейти к Основная информация страница.
  3. Выберите Подключение и безопасность из панели навигации. В Информация о подключении области, получите плавающий IP-адрес и порт базы данных экземпляра DB.
  4. На ECS проверьте, можно ли подключиться к плавающему IP-адресу и порту базы данных экземпляра DB.
    curl -kv curl -kv 192.168.0.7::5432
    • Если да, сетевое подключение нормально.
    • Если нет, проверьте правила группы безопасности.
      • Если в группе безопасности ECS нет исходящего правила с Назначение установлено 0.0.0.0/0 и Протокол и порт установлено Все, добавьте исходящее правило для плавающего IP-адреса и порта экземпляра DB.
      • Если в группе безопасности экземпляра DB нет входящего правила, позволяющего доступ с частного IP‑адреса и порта ECS, добавьте входящее правило для частного IP‑адреса и порта ECS. Для получения подробностей см. Настройка правил группы безопасности.
  5. Установите клиент PostgreSQL.
    • Установка клиента PostgreSQL (PostgreSQL 15 и более ранних)

      Сообщество PostgreSQL предоставляет методы установки клиента для различных ОС. Вы можете загрузить и установить клиент, используя инструмент установки ОС. Этот метод установки прост, но может использоваться только для ОС, поддерживаемых сообществом PostgreSQL. В этом примере используется CentOS 7. Используйте инструмент установки по умолчанию ОС для установки клиента (PostgreSQL 15 или более ранних).

      Рисунок 1 Получение инструмента установки


      Запустите установку команды:

      sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      sudo yum install -y postgresql15-server

      Проверьте, успешно ли завершилась установка.

      psql -V

      Рисунок 2 Успешная установка


    • Установка клиента PostgreSQL (Без ограничений по версиям PostgreSQL)

      Установка из исходного кода: Этот метод установки не имеет ограничений по версиям экземпляров RDS для PostgreSQL и типам ОС ECS.

      Далее используется ECS с образом EulerOS в качестве примера, чтобы описать, как установить клиент PostgreSQL 16.4.

      1. Чтобы использовать SSL, загрузите OpenSSL на ECS заранее.
        sudo yum install -y openssl-devel
      2. Получите ссылка для загрузки кода, запустите wget для загрузки пакета установки на ECS, либо загрузите пакет установки на локальный ПК а затем загрузите его на ECS.
        wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz
      3. Распакуйте пакет установки.
        tar xf postgresql-16.4.tar.gz
      4. Скомпилируйте исходный код, а затем установите клиент.
        cd postgresql-16.4
        ./configure --without-icu --without-readline --without-zlib --with-openssl
        make -j 8 && make install
        Note

        Если --prefix не указано, путь по умолчанию /usr/local/pgsql. Клинент может быть установлен самым простым способом.

        Рисунок 3 Компиляция и установка


      5. Добавьте следующий код в /etc/profile файл для настройки переменных среды:
        export PATH=/usr/local/pgsql/bin:$PATH
        export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
        source /etc/profile
      6. Проверьте, доступен ли psql.
        psql -V

        Рисунок 4 Тестирование psql


Шаг 3: Подключитесь к экземпляру базы данных с помощью CLI (SSL‑соединение)

  1. На Экземпляры странице консоли RDS, нажмите имя экземпляра БД, чтобы перейти к Основная информация страница.
  2. В навигационной панели выберите Подключение и безопасность.
  3. В Информация о подключении области, нажмите рядом с SSL поле, чтобы скачать Certificate Download.zip, и извеките корневой сертификат ca.pem и объедините ca-bundle.pem из пакета.
  4. Загрузите ca.pem в ECS.
  5. Выполните следующую команду на ECS для подключения к экземпляру БД:

    psql --no-readline -h <host> -p <port> "dbname=<database> user=<user> sslmode=verify-ca sslrootcert=<ca-file-directory>"

    Пример:

    psql --no-readline -h 192.168.0.7 -p 5432 "dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem"

    Таблица 1 Описание параметра

    Параметр

    Описание

    <host>

    Floating IP-адрес полученный в 3.

    <port>

    Порт базы данных полученный в 3. Значение по умолчанию 5432.

    <database>

    Имя базы данных для подключения. Имя базы данных по умолчанию postgres.

    <user>

    Учётная запись администратора root.

    <ca-file-directory>

    Каталог сертификата CA, используемого для SSL‑соединения. Этот сертификат должен храниться в каталоге, где выполняется команда.

    sslmode

    Режим SSL‑соединения. Установите verify-ca чтобы использовать CA для проверки доверия к сервису.

  6. Введите пароль учётной записи базы данных по запросу.
    Password:

    Если отображается следующая информация, соединение успешно.

    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)