GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer une instance RDS à l'aide de Python Boto3 sur AWS

Dans cet article, nous verrons comment créer une instance RDS MySql à l'aide de la bibliothèque Boto3. Nous utiliserons la méthode "create_db_instance" pour créer une instance.

Avant de continuer, je suppose que vous connaissez le service AWS RDS. Si vous ne le connaissez pas et que devez-vous d'abord apprendre pour créer une instance RDS MySql à partir de la console AWS, recherchez "Comment configurer une instance RDS MySql (Relation Database MySql) sur AWS ?".

Prérequis

  1. Compte AWS (créez-le si vous n'en avez pas)
  2. Compréhension de base de RDS.
  3. Compréhension de base de Python.
  4. Python est disponible sur le système.

Ce que nous allons faire

  1. Installer les dépendances.
  2. Connaître la méthode requise.
  3. Créer une instance RDS MySql à l'aide de Python Boto3.

Install Dépendances

Python est fourni par défaut dans Ubuntu Server, vous n'avez donc pas besoin de l'installer.

Pour vérifier la version de Python sur votre système, utilisez la commande suivante.

quel python
/usr/bin/python --version

OU

python --version

Si vous n'avez pas de pip et que vous utilisez Ubuntu 18.04, exécutez la commande suivante pour d'abord mettre à jour le dépôt local.

mise à jour sudo apt

Pour installer pip, utilisez la commande suivante.

sudo apt install python-pip

Pour vérifier la version de Pip installée, exécutez la commande suivante.

pip --version

Une fois que vous avez python et pip, vous pouvez installer Boto3.

L'installation de Boto3 est très simple et directe. Pour installer Boto3, utilisez la commande suivante.

pip installer boto3

Pour vérifier si le Boto3 est installé et sa version, exécutez la commande suivante.

pip montrer boto3

Connaître la méthode requise

Pour créer une instance RDS, nous utiliserons la méthode "create_db_instance". Voici la syntaxe de la méthode avec tous les paramètres qu'elle accepte. Nous n'utiliserons pas tous ces paramètres pour créer une instance, mais vous pouvez essayer si vous le souhaitez. Nous n'utiliserons que les paramètres requis et obligatoires. Si vous souhaitez en savoir plus sur tous les paramètres disponibles, vous pouvez visiter la page officielle de Boto3 ici.

Syntaxe de la requête

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. Nom DB : La signification de ce paramètre diffère selon le moteur de base de données que vous utilisez.
  2. Identifiant d'instance DB :  C'est un paramètre obligatoire. Il s'agit d'un identifiant d'instance de base de données. Ce paramètre est stocké sous forme de chaîne en minuscules.
  3. Classe d'instance DB :  C'est un paramètre obligatoire. Il spécifie la capacité de calcul et de mémoire de l'instance de base de données.
  4. Moteur :  Nom du moteur de base de données à utiliser pour l'instance à créer. Ceci est un champ obligatoire
  5. Nom d'utilisateur principal : Le nom de l'utilisateur principal. Il s'agit de l'utilisateur de la base de données dans l'instance
  6. MasterUserPassword : Le mot de passe de l'utilisateur principal que nous créons dans l'instance.
  7. VpcSecurityGroupIds :  Une liste des groupes de sécurité Amazon EC2 VPC à associer à cette instance de base de données. Ce groupe de sécurité a des règles qui autorisent la connexion sur les ports spécifiés qu'il contient.
  8. Port :  Le numéro de port sur lequel la base de données accepte les connexions. Si vous souhaitez autoriser la connexion sur ce port, vous devez spécifier ce port dans le groupe de sécurité.

Créer une instance RDS MySql à l'aide de Python Boto3

Pour créer une instance RDS, créez un fichier "create-rds-instance.py" et copiez-collez-y le code suivant.

N'oubliez pas de modifier les valeurs de "aws_access_key_id_value" et "aws_secret_access_key_value" avec vos propres access_key_id et access_key_value respectivement.

Si vous souhaitez créer l'instance dans une région de votre choix, modifiez également la valeur de "region_name" sinon conservez-la inchangée.

Assurez-vous également d'attribuer l'ID du groupe de sécurité existant à "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)

Maintenant, vous êtes prêt à créer une instance. Exécutez le script python à l'aide de la commande suivante.

python create-rds-instance.py

Vous verrez la réponse sur le terminal.

Pour vérifier l'état de l'instance à partir de la console AWS, accédez au tableau de bord RDS.

Conclusion

Nous avons appris à créer une instance RDS MySql dans cet article en utilisant la bibliothèque Boto3 en Python. Vous pouvez personnaliser le code et créer une instance de votre choix. Nous avons également vu comment installer les dépendances nécessaires pour écrire et exécuter le code Python.


Linux
  1. Créer une instance EC2 sur AWS à l'aide de Terraform

  2. Comment créer une instance RDS sur AWS à l'aide de Terraform

  3. Comment créer un rôle IAM dans AWS à l'aide de Terraform

  4. Comment tracer des scripts Python à l'aide de trace.py

  5. Comment créer un dictionnaire Python

Créer un compartiment S3 sur AWS à l'aide de Terraform

Comment créer une instance Amazon AWS EC2 à l'aide de Python Boto3

Comment créer un compartiment S3 à l'aide de Python Boto3 sur AWS

Comment créer une table DynamoDB dans AWS

Comment créer une instance Ubuntu EC2 sur AWS

Comment lancer une instance OpenStack à l'aide d'Horizon Dashboard