この記事では、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コードの記述と実行に必要な依存関係をインストールする方法も確認しました。