La solution d'Amazon Web Services (AWS) à la base de données relationnelle est appelée Amazon Relational Database (RDS). RDS est un service AWS qui vous permet de gérer des bases de données relationnelles dans le cloud. RDS fournit différents types de bases de données, mais celle que vous allez apprendre à déployer aujourd'hui est MSSQL.
Comme de nombreux autres services AWS, vous pouvez gérer les bases de données RDS de différentes manières, par exemple via AWS Management Console, l'outil AWS CLI, n'importe quel nombre de SDK ou avec PowerShell. Le choix de la meilleure méthode vous appartient. (Si vous faites partie d'une équipe avec des gourous PowerShell ou si vous avez déjà des scripts d'automatisation AWS écrits dans PowerShell, un script PowerShell peut bien faire le travail.)
Dans cet article, vous allez apprendre à utiliser PowerShell et le module AWS PowerShell pour déployer une instance AWS RDS en un rien de temps!
Conditions préalables
Pour suivre les étapes de cet article, vous devez d'abord vous assurer que vous avez satisfait à quelques conditions préalables supposées. J'espère que vous avez déjà satisfait à ces exigences:
- Créé un compte AWS
- J'utilise PowerShell Core (j'utilise PowerShell 6.2.0.)
- J'ai téléchargé et installé le module AWS.Tools.RDS PowerShell (j'utilise la v3.3.590.)
- Authentifié sur votre compte AWS l'utilisateur root ou un utilisateur IAM ayant le droit de créer une instance RDS
Une fois que vous avez confirmé que vous remplissez toutes ces conditions, commençons!
Décider du type d'instance RDS à déployer
Avant de commencer à coder, vous devez déterminer le type d'instance RDS à créer. Pour déployer une instance RDS avec PowerShell, vous devez connaître quelques attributs de clé:
- Nom de l'instance
- Moteur (SQL Server, MariaDB, MySql, etc.)
- Classe d'instance qui attribue le type de ressources sur lesquelles la base de données SQL Server sera exécutée
- Nom d'utilisateur et mot de passe principaux
- Quelle doit être la taille de la base de données en gigaoctets
Cet article explique comment rechercher chacun de ces attributs pour créer une instance RDS avec PowerShell.
Recherche des versions de moteur disponibles
Lorsque vous créez une instance MSSQL RDS à l'aide de cet article, il est essentiel de savoir que vous avez d'autres options. Exécutez le Get-RDSDBEngineVersion
et groupez par nom de moteur pour afficher une liste des types de bases de données disponibles.
PS> Get-RDSDBEngineVersion | Groupe-objet-moteur de propriété
Groupe de noms de comptage
----- ---- -----
11 aurora {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
11 aurora-mysql {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
11 aurora-postgresql {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
1 docdb {Amazon.RDS.Model.DBEngineVersion}
19 mariadb {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
27 mysql {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
1 neptune {Amazon.RDS.Model.DBEngineVersion}
42 oracle-ee {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
20 oracle-se {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
20 oracle-se1 {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
21 oracle-se2 {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
55 messages {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
18 sqlserver-ee {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
19 sqlserver-ex {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
19 sqlserver-se {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
19 sqlserver-web {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion
Étant donné que vous avez déployé une instance MSSQL RDS, recherchez un peu plus cette version pour voir toutes les versions disponibles.
Get-RDSDBEngineVersion -Engine 'sqlserver-ex' | Format-Table -Property EngineVersion
Recherche de la classe d'instance
Une instance RDS a besoin d'une classe d'instance, qui définit le type de ressources allouées pour exécuter l'instance. Malheureusement, il n'existe aucun moyen de trouver des instances disponibles avec PowerShell. Au lieu de cela, vous pouvez aller au Page Types d'instances Amazon RDS pour revoir vos options.
Création de l'instance RDS
À présent, vous devriez avoir le nom de l'instance RDS que vous souhaitez créer, le moteur, la classe d'instance et le nom d'utilisateur / mot de passe à lui attribuer. Il est maintenant temps de le créer.
Pour créer une nouvelle instance RDS avec PowerShell, utilisez le Nouveau-RDSDBInstance
cmdlet. Cette applet de commande unique vous permet de transmettre tous les paramètres dont vous avez besoin pour créer une instance.
Ci-dessous, vous pouvez voir un exemple d'utilisation du Nouveau-RDSDBInstance
cmdlet pour créer une instance avec:
- Un nom de CloudSavvy
- Le moteur de base de données MSSQL (dernière version de SQL Express)
- UNE db.t2.micro classe d'instance
- Une sa utilisateur avec un mot de passe de mot de passe
- 20 Go de taille
- Une interface qui permet les connexions sur Internet
Dans l'exemple, la sortie de la commande est affectée à une variable appelée $ instance
.
$ parameters = @ {
DBInstanceIdentifier = 'ClouddSavvy'
Moteur = 'sqlserver-ex'
DBInstanceClass = 'db.t2.micro'
MasterUsername = 'sa'
MasterUserPassword = 'password' ## Ne pas inclure de barre oblique, de symbole @, de guillemets ou d'espaces
AllocatedStorage = 20 ## gigaoctets
PubliclyAccessible = $ true ## pour se connecter via Internet
}
$ instance = New-RDSDBInstance @paramètres
Quand le Nouveau-RDSDBInstance
s'exécute, elle renvoie le contrôle à la console PowerShell avant la création de l'instance. Pour surveiller le processus de création, vous pouvez surveiller le DBInstanceStatus
propriété retournée par Get-RDSDBInstance
.
PS62> (Get-RDSDBInstance -DBInstanceIdentifier $ instance.DBInstanceIdentifier) .DBInstanceStatus
créer
En utilisant un peu de magie PowerShell avec un tandis que
boucle, vous pouvez créer du code qui attendra que l'instance entre dans le disponible
état avant de relâcher le contrôle.
Dans l'exemple suivant, PowerShell vérifie l'état de disponible
toutes les 30 secondes. Dès que l'instance entre dans cet état, elle libère le contrôle.
while ((Get-RDSDBInstance -DBInstanceIdentifier $ instance.DBInstanceIdentifier) .DBInstanceStatus -ne 'disponible') {
Write-Host 'En attente de création de l'instance ...'
Start-Sleep -Secondes 30
}
Une fois que PowerShell libère le contrôle, vous pouvez vérifier l'AWS Management Console et confirmer que l'instance RDS a été créée. Pour ce faire, vous pouvez accéder à la section du service RDS ou suivre ce lien, mais assurez-vous de le remplacer par le nom de la région avec laquelle vous travaillez:
https://console.aws.amazon.com/rds/home?region=#dbinstances:
Résumé
En suivant un processus étape par étape, vous savez maintenant comment déployer une instance AWS RDS avec PowerShell. Et, en utilisant le code décrit dans cet article, vous pouvez l'utiliser dans des scripts d'automatisation plus volumineux ou créer une instance via la console PowerShell comme vous le souhaitez.