Поиск по сайту:

Как создать экземпляр RDS с помощью Python Boto3 на AWS


В этой статье мы увидим, как создать экземпляр RDS MySql с помощью библиотеки Boto3. Мы будем использовать метод create_db_instance для создания экземпляра.

Прежде чем мы продолжим, я предполагаю, что вы знакомы с сервисом AWS RDS. Если вы не знакомы с ним и что нужно знать в первую очередь для создания экземпляра RDS MySql из консоли AWS, выполните поиск \Как настроить экземпляр RDS MySql (реляционная база данных MySql) в AWS?\.

Предпосылки

  1. Аккаунт AWS (создайте, если у вас его нет)
  2. Основное понимание RDS.
  3. Основное понимание Python.
  4. Python доступен в системе.

Что мы будем делать

  1. Установите зависимости.
  2. Знайте нужный метод.
  3. Создайте экземпляр RDS MySql с помощью Python Boto3.

Установить зависимости

Python входит в состав Ubuntu Server по умолчанию, поэтому его не нужно устанавливать.

Чтобы проверить версию Python в вашей системе, используйте следующую команду.

какой python
/usr/bin/python --version

ИЛИ

питон --версия

Если у вас нет pip и вы используете Ubuntu 18.04, выполните следующую команду, чтобы сначала обновить локальное хранилище.

судо подходящее обновление

Чтобы установить pip, используйте следующую команду.

sudo apt установить python-pip

Чтобы проверить установленную версию Pip, выполните следующую команду.

пип --версия

Если у вас есть python и pip, вы можете установить Boto3.

Установка Boto3 очень проста и понятна. Чтобы установить Boto3, используйте следующую команду.

pip install boto3

Чтобы проверить, установлен ли Boto3 и его версию, выполните следующую команду.

пип-шоу бото3

Знать нужный метод

Чтобы создать экземпляр RDS, мы будем использовать метод create_db_instance. Ниже приведен синтаксис метода со всеми параметрами, которые он принимает. Мы не будем использовать все эти параметры для создания экземпляра, но вы можете попробовать, если хотите. Мы будем использовать только обязательные и обязательные параметры. Если вы хотите узнать больше обо всех доступных параметрах, вы можете посетить официальную страницу Boto3 здесь.

Синтаксис запроса

response = client.create_db_instance(
    DBName='string',
    DBInstanceIdentifier='string',
    AllocatedStorage=123,
    DBInstanceClass='string',
    Engine='string',
    MasterUsername='string',
    MasterUserPassword='string',
    DBSecurityGroups=[
        'string',
    ],
    VpcSecurityGroupIds=[
        'string',
    ],
    AvailabilityZone='string',
    DBSubnetGroupName='string',
    PreferredMaintenanceWindow='string',
    DBParameterGroupName='string',
    BackupRetentionPeriod=123,
    PreferredBackupWindow='string',
    Port=123,
    MultiAZ=True|False,
    EngineVersion='string',
    AutoMinorVersionUpgrade=True|False,
    LicenseModel='string',
    Iops=123,
    OptionGroupName='string',
    CharacterSetName='string',
    PubliclyAccessible=True|False,
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    DBClusterIdentifier='string',
    StorageType='string',
    TdeCredentialArn='string',
    TdeCredentialPassword='string',
    StorageEncrypted=True|False,
    KmsKeyId='string',
    Domain='string',
    CopyTagsToSnapshot=True|False,
    MonitoringInterval=123,
    MonitoringRoleArn='string',
    DomainIAMRoleName='string',
    PromotionTier=123,
    Timezone='string',
    EnableIAMDatabaseAuthentication=True|False,
    EnablePerformanceInsights=True|False,
    PerformanceInsightsKMSKeyId='string',
    PerformanceInsightsRetentionPeriod=123,
    EnableCloudwatchLogsExports=[
        'string',
    ],
    ProcessorFeatures=[
        {
            'Name': 'string',
            'Value': 'string'
        },
    ],
    DeletionProtection=True|False,
    MaxAllocatedStorage=123
)

  1. Имя_БД. Значение этого параметра зависит от используемого ядра базы данных.
  2. DBInstanceIdentifier:  это обязательный параметр. Это идентификатор экземпляра БД. Этот параметр хранится в виде строчной строки.
  3. DBInstanceClass:  это обязательный параметр. Он указывает объем вычислений и памяти экземпляра БД.
  4. Ядро . Имя ядра базы данных, которое будет использоваться для создаваемого экземпляра. Это обязательное поле
  5. MasterUsername: имя главного пользователя. Это пользователь БД в экземпляре
  6. MasterUserPassword: пароль главного пользователя, которого мы создаем в экземпляре.
  7. VpcSecurityGroupIds : список групп безопасности Amazon EC2 VPC, которые нужно связать с этим экземпляром БД. Эта группа безопасности имеет правила, разрешающие подключение к указанным в ней портам.
  8. Порт . Номер порта, через который база данных принимает подключения. Если вы хотите разрешить соединение на этом порту, вы должны указать этот порт в группе безопасности.

Создайте экземпляр RDS MySql, используя Python Boto3

Чтобы создать экземпляр RDS, создайте файл create-rds-instance.py и скопируйте и вставьте в него следующий код.

Не забудьте изменить значения \aws_access_key_id_value\ и \aws_secret_access_key_value\ на ваши собственные access_key_id и access_key_value соответственно.

Если вы хотите создать экземпляр в выбранном вами регионе, также измените значение \region_name\, в противном случае оставьте его без изменений.

Кроме того, обязательно назначьте существующий идентификатор группы безопасности \VpcSecurityGroupIds\.

import boto3
conn = boto3.client('rds', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT',
                     aws_secret_access_key='SECRETE-KEY-OF-THE-AWS-ACCOUNT',
                     region_name='eu-west-3')

response = conn.create_db_instance(
        AllocatedStorage=10,
        DBName="test",
        DBInstanceIdentifier="my-first-rds-instance",
        DBInstanceClass="db.t2.micro",
        Engine="mysql",
        MasterUsername="root",
        MasterUserPassword="pass1234",
        Port=3306,
        VpcSecurityGroupIds=["sg-7fa4d512"],
    )

print (response)

Теперь вы готовы создать экземпляр. Выполните скрипт Python, используя следующую команду.

python create-rds-instance.py

Вы увидите ответ на терминале.

Чтобы проверить состояние экземпляра из консоли AWS, перейдите на панель мониторинга RDS.

Заключение

В этой статье мы научились создавать экземпляр RDS MySql, используя библиотеку Boto3 в Python. Вы можете настроить код и создать экземпляр по вашему выбору. Мы также увидели, как установить зависимости, необходимые для написания и выполнения кода Python.