GNU/Linux >> Linux の 問題 >  >> Linux

AWSでPythonBoto3を使用してRDSインスタンスを作成する方法

この記事では、Boto3ライブラリを使用してRDSMySqlインスタンスを作成する方法を説明します。 「create_db_instance」メソッドを使用してインスタンスを作成します。

先に進む前に、AWSRDSサービスに精通していることを前提としています。これに精通しておらず、AWSコンソールからRDS MySqlインスタンスを作成する方法を最初に学ぶ場合は、「AWSでRDS MySql(リレーショナルデータベースMySql)インスタンスをセットアップする方法」を検索してください。

前提条件

  1. AWSアカウント(お持ちでない場合は作成)
  2. RDSの基本的な理解。
  3. Pythonの基本的な理解。
  4. Pythonはシステムで利用できます。

何をするか

  1. 依存関係をインストールします。
  2. 必要な方法を知ってください。
  3. PythonBoto3を使用してRDSMySqlインスタンスを作成します。

依存関係のインストール

PythonはデフォルトでUbuntuServerに付属しているため、インストールする必要はありません。

システムのPythonバージョンを確認するには、次のコマンドを使用します。

どのpython
/ usr / bin / python --version

または

python --version

pipがなく、Ubuntu 18.04を使用している場合は、次のコマンドを実行して、最初にローカルリポジトリを更新します。

sudo apt update

pipをインストールするには、次のコマンドを使用します。

sudo apt install python-pip

インストールされているPipのバージョンを確認するには、次のコマンドを実行します。

pip --version

pythonとpipを入手したら、Boto3をインストールできます。

Boto3のインストールは非常に簡単で簡単です。 Boto3をインストールするには、次のコマンドを使用します。

pip install boto3

Boto3がインストールされているかどうかとそのバージョンを確認するには、次のコマンドを実行します。

pip show 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. エンジン: 作成するインスタンスに使用されるデータベースエンジンの名前。これは必須フィールドです
  5. MasterUsername: マスターユーザーの名前。これは、インスタンス内のDBのユーザーです
  6. MasterUserPassword: インスタンスで作成するマスターユーザーのパスワード。
  7. VpcSecurityGroupIds: このDBインスタンスに関連付けるAmazonEC2VPCセキュリティグループのリスト。このセキュリティグループには、指定されたポートでの接続を許可するルールがあります。
  8. ポート: データベースが接続を受け入れるポート番号。このポートでの接続を許可する場合は、セキュリティグループでこのポートを指定する必要があります。

PythonBoto3を使用してRDSMySqlインスタンスを作成する

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ライブラリを使用してRDSMySqlインスタンスを作成する方法を学びました。コードをカスタマイズして、選択したインスタンスを作成できます。また、Pythonコードの記述と実行に必要な依存関係をインストールする方法も確認しました。


Linux
  1. Terraformを使用してAWSでEC2インスタンスを作成します

  2. Terraformを使用してAWSでRDSインスタンスを作成する方法

  3. Terraformを使用してAWSでIAMロールを作成する方法

  1. trace.py を使用して Python スクリプトをトレースする方法

  2. Python 辞書の作成方法

  3. Pythonを使用してLinuxでユーザーを作成する方法

  1. AWSインスタンス(EC2)でEBSボリュームを作成および追加する方法

  2. Terraformを使用してAWSEC2インスタンスを起動する方法

  3. AWSのLinuxEC2インスタンスでユーザーを作成し、シェルスクリプトを使用して公開鍵を追加する方法