웹사이트 검색

AWS에서 Python Boto3를 사용하여 RDS 인스턴스를 생성하는 방법


이 기사에서는 Boto3 라이브러리를 사용하여 RDS MySql 인스턴스를 생성하는 방법을 살펴봅니다. \create_db_instance\ 메소드를 사용하여 인스턴스를 생성합니다.

계속 진행하기 전에 귀하가 AWS RDS 서비스에 익숙하다고 가정합니다. 익숙하지 않고 AWS 콘솔에서 RDS MySql 인스턴스를 생성하는 방법을 처음 배우는 경우 \How to setup an RDS MySql (Relation Database MySql ) instance on AWS?\를 검색하십시오.

전제 조건

  1. AWS 계정(없으면 생성)
  2. RDS에 대한 기본적인 이해.
  3. Python에 대한 기본적인 이해
  4. 시스템에서 Python을 사용할 수 있습니다.

우리가 할 일

  1. 종속성을 설치합니다.
  2. 필요한 방법을 알아 두십시오.
  3. Python Boto3를 사용하여 RDS MySql 인스턴스를 생성합니다.

종속성 설치

Python은 Ubuntu Server에 기본으로 제공되므로 설치할 필요가 없습니다.

시스템에서 Python 버전을 확인하려면 다음 명령을 사용하십시오.

python
/usr/bin/python --version

또는

파이썬 --버전

pip가 없고 Ubuntu 18.04를 사용 중인 경우 다음 명령어를 실행하여 먼저 로컬 저장소를 업데이트합니다.

sudo 적절한 업데이트

pip를 설치하려면 다음 명령을 사용하십시오.

sudo apt install python-pip

설치된 Pip의 버전을 확인하려면 다음 명령을 실행합니다.

핍 --버전

Python과 pip가 있으면 Boto3를 설치할 수 있습니다.

Boto3 설치는 매우 간단하고 직관적입니다. Boto3를 설치하려면 다음 명령을 사용하십시오.

pip install boto3

Boto3가 설치되어 있고 버전이 있는지 확인하려면 다음 명령을 실행합니다.

핍 쇼 boto3

필요한 방법을 알고

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. DBName: 이 매개변수의 의미는 사용하는 데이터베이스 엔진에 따라 다릅니다.
  2. DBInstanceIdentifier: 필수 매개변수입니다. DB 인스턴스 식별자입니다. 이 매개변수는 소문자 문자열로 저장됩니다.
  3. DBInstanceClass: 필수 매개변수입니다. DB 인스턴스의 컴퓨팅 및 메모리 용량을 지정합니다.
  4. Engine: 생성할 인스턴스에 사용할 데이터베이스 엔진의 이름입니다. 필수 입력란입니다.
  5. MasterUsername: 마스터 사용자의 이름입니다. 인스턴스에 있는 DB의 사용자입니다.
  6. MasterUserPassword: 인스턴스에서 생성한 마스터 사용자의 비밀번호입니다.
  7. VpcSecurityGroupIds: 이 DB 인스턴스와 연결할 Amazon EC2 VPC 보안 그룹 목록입니다. 이 보안 그룹에는 지정된 포트에서 연결을 허용하는 규칙이 있습니다.
  8. 포트: 데이터베이스가 연결을 허용하는 포트 번호입니다. 이 포트에서 연결을 허용하려면 보안 그룹에서 이 포트를 지정해야 합니다.

Python Boto3를 사용하여 RDS MySql 인스턴스 생성

RDS 인스턴스를 생성하려면 \create-rds-instance.py\ 파일을 생성하고 다음 코드를 복사하여 붙여넣습니다.

\aws_access_key_id_value\ 및 \aws_secret_access_key_value\ 값을 각각 자신의 access_key_id 및 access_key_value로 변경하는 것을 잊지 마십시오.

선택한 리전에서 인스턴스를 생성하려면 \region_name\ 값도 변경하고 그대로 유지합니다.

또한 기존 보안 그룹 ID를 \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 대시보드로 이동하십시오.

결론

이 기사에서는 Python의 Boto3 라이브러리를 사용하여 RDS MySql 인스턴스를 생성하는 방법을 배웠습니다. 코드를 사용자 지정하고 선택한 인스턴스를 만들 수 있습니다. 또한 Python 코드를 작성하고 실행하는 데 필요한 종속성을 설치하는 방법도 살펴보았습니다.