Come Implementare una base di dati di MSSQL Amazon Web Services (AWS) RDS e PowerShell

0
252

Amazon Web Services (AWS)’s soluzione per il database relazionale è chiamato Amazon di Database Relazionali (RDS). RDS è un AWS servizio che consente di gestire i database relazionali nel cloud. RDS offre vari tipi di database, ma quella che si sta andando a imparare a distribuire oggi è MSSQL.

Come molti altri servizi AWS, è possibile gestire RDS database in diversi modi, ad esempio attraverso l’AWS Management Console AWS CLI strumento, qualsiasi numero di Sdk, o con PowerShell. La scelta di quale metodo è migliore del vostro. (Se sei in una squadra con PowerShell guru o hai già qualche AWS automazione script in PowerShell, uno script di PowerShell può ottenere il lavoro fatto bene, però.)

In questo articolo, si sta andando a imparare come utilizzare PowerShell e AWS PowerShell modulo per distribuire un AWS RDS istanza in nessun tempo!

Prerequisiti

Seguire la procedura descritta in questo articolo, è necessario innanzitutto assicurarsi che hai incontrato pochi assunto prerequisiti. Mi aspetto che già di soddisfare questi requisiti:

  1. Creati un account AWS
  2. Sono utilizzando PowerShell Core (sto utilizzando PowerShell 6.2.0.)
  3. Hai scaricato e installato il AWS.Strumenti.RDS di PowerShell (sto usando v3.3.590.)
  4. Autenticati per il tuo AWS account utente root, o IAM utente con diritti per creare un’istanza RDS

Una volta che hai confermato che si soddisfano tutti questi requisiti, cominciamo!

Decidere Che Tipo di RDS Istanza per la Distribuzione

Prima di iniziare la codifica, è necessario capire che tipo di RDS istanza per creare. Per distribuire un’RDS istanza con PowerShell, è necessario conoscere alcuni tasti attributi:

  • Nome dell’istanza
  • Motore (SQL Server, MariaDB, MySql, e così via)
  • Istanza della classe che assegna le risorse di database di SQL Server verrà eseguito
  • Master username e password
  • Quanto è grande il database deve essere in gigabyte

Questo articolo spiega come trovare ognuno di questi attributi per creare un RDS istanza con PowerShell.

La Ricerca Disponibile In Versioni Con Motore A

Durante la creazione di un MSSQL RDS esempio, utilizzando questo articolo, è fondamentale sapere che si dispone di altre opzioni. Eseguire il Get-RDSDBEngineVersion di comando e di gruppo dal nome del motore per vedere un elenco dei tipi di database disponibili.

PS> Get-RDSDBEngineVersion | Gruppo-Oggetto -Proprietà del Motore

Conte Nome Del Gruppo
—– —- —–
11 aurora {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
11 aurora-mysql {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
11 aurora-postgresql {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
1 docdb {Amazon.RDS.Modello.DBEngineVersion}
19 mariadb {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
27 mysql {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
1 nettuno {Amazon.RDS.Modello.DBEngineVersion}
42 oracle-ee {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
20 oracle-se {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
20 oracle-se1 {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
21 oracle-se2 {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
55 postgres {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
18 sqlserver-ee {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
19 sqlserver-ex {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
19 sqlserver-se {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion, Bellezza E Natu…
19 sqlserver-web {Amazon.RDS.Modello.DBEngineVersion, Amazon.RDS.Modello.DBEngineVersion

Perché è stato distribuito un MSSQL RDS esempio, la ricerca che versione po ‘ di più per vedere tutte le versioni disponibili.

Get-RDSDBEngineVersion -Motore ‘sqlserver-ex | Format-Table -Proprietà EngineVersion

La ricerca di Istanza della Classe

RDS istanza esigenze di un’istanza della classe che definisce il tipo di risorse stanziate per l’esecuzione dell’istanza. Purtroppo, non esiste per verificare la disponibilità di istanze con PowerShell. Invece, si può andare per il Amazon RDS Tipi di Istanza pagina per rivedere le opzioni.

La creazione di RDS Istanza

Ora si dovrebbe avere il nome di RDS istanza che si desidera creare, il motore, esempio di classe e il nome utente/password da assegnare. Ora è il momento di crearlo.

Per creare un nuovo RDS istanza con PowerShell, il cmdlet New-RDSDBInstance cmdlet. Questo cmdlet consente di passare tutti i parametri, è necessario creare un’istanza.

Di seguito, è possibile vedere un esempio di utilizzo del Nuovo-RDSDBInstance cmdlet per creare un’istanza con:

  • Un nome di CloudSavvy
  • MSSQL motore di database (SQL Express versione più recente)
  • Un db.t2.micro istanza della classe
  • Sa utente con una password, password
  • 20 GB
  • Un’interfaccia che consente il collegamento su Internet

Nell’esempio, l’output del comando è sempre assegnato ad una variabile chiamata $istanza.

$parameters = @{
DBInstanceIdentifier = ‘ClouddSavvy’
Motore = ‘sqlserver-ex
DBInstanceClass = ‘db.t2.micro’
MasterUsername = ‘sa’
MasterUserPassword = ‘password’ # # (non includere una barra, simbolo@, virgolette o spazi
AllocatedStorage = 20 ## Gigabyte
PubliclyAccessible = $true ## a connettersi su Internet
}
$instance = New-RDSDBInstance @parametri

Quando il Nuovo-RDSDBInstance comando viene eseguito, esso restituisce il controllo al console PowerShell prima viene creata l’istanza. Per monitorare il processo di creazione, è possibile monitorare il DBInstanceStatus beni restituiti con Get-RDSDBInstance.

PS62> (Get-RDSDBInstance -DBInstanceIdentifier $istanza.DBInstanceIdentifier).DBInstanceStatus
la creazione di

Utilizzando un po ‘ di PowerShell magia con un ciclo while, è possibile creare codice che attendere l’istanza per entrare in stato disponibili prima di rilasciare il controllo.

Nell’esempio riportato di seguito, PowerShell controlla lo stato di ogni 30 secondi. Non appena l’istanza entra in questo stato, rilascia il controllo.

while ((Get-RDSDBInstance -DBInstanceIdentifier $istanza.DBInstanceIdentifier).DBInstanceStatus -ne ‘disponibile’) {
Write-Host ” in Attesa istanza per essere creato…’
Start-Sonno -30 Secondi
}

Una volta PowerShell rilascia controllo, è possibile controllare il AWS Management Console e confermare l’RDS istanza è stata creata. Per farlo, è possibile navigare il servizio RDS sezione o seguire questo link, ma essere sicuri di sostituire con il nome della regione con cui si sta lavorando:

https://console.aws.amazon.com/rds/home?region=#dbinstances:

Riepilogo

Seguendo uno step-by-step del processo, ora sapete come distribuire un AWS RDS istanza con PowerShell. E, utilizzando il codice descritto in questo articolo, è possibile utilizzare questo in grandi script di automazione o creare un’istanza tramite la console PowerShell come si desidera.