この記事では、Boto3ライブラリを使用してRDSMySqlインスタンスを作成する方法を説明します。 「create_db_instance」メソッドを使用してインスタンスを作成します。
先に進む前に、AWSRDSサービスに精通していることを前提としています。これに精通しておらず、AWSコンソールからRDS MySqlインスタンスを作成する方法を最初に学ぶ場合は、「AWSでRDS MySql(リレーショナルデータベースMySql)インスタンスをセットアップする方法」を検索してください。
前提条件
- AWSアカウント(お持ちでない場合は作成)
- RDSの基本的な理解。
- Pythonの基本的な理解。
- Pythonはシステムで利用できます。
何をするか
- 依存関係をインストールします。
- 必要な方法を知ってください。
- 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 )
- DBName: このパラメータの意味は、使用するデータベースエンジンによって異なります。
- DBInstanceIdentifier: これは必須パラメーターです。 DBインスタンス識別子です。このパラメータは小文字の文字列として保存されます。
- DBInstanceClass: これは必須パラメーターです。 DBインスタンスの計算容量とメモリ容量を指定します。
- エンジン: 作成するインスタンスに使用されるデータベースエンジンの名前。これは必須フィールドです
- MasterUsername: マスターユーザーの名前。これは、インスタンス内のDBのユーザーです
- MasterUserPassword: インスタンスで作成するマスターユーザーのパスワード。
- VpcSecurityGroupIds: このDBインスタンスに関連付けるAmazonEC2VPCセキュリティグループのリスト。このセキュリティグループには、指定されたポートでの接続を許可するルールがあります。
- ポート: データベースが接続を受け入れるポート番号。このポートでの接続を許可する場合は、セキュリティグループでこのポートを指定する必要があります。
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コードの記述と実行に必要な依存関係をインストールする方法も確認しました。