Amazon RDS - Interfacce
Le interfacce RDS sono un modo per accedere al servizio RDS che creiamo. Dopo la creazione e la configurazione del servizio RDS è necessario accedere ai dati, caricare i dati su questo database ed eseguire qualche altro programma che dovrebbe essere in grado di connettersi al database. Tali requisiti di accesso e manipolazione dei dati da parte degli utenti finali del database e non necessariamente il titolare dell'account AWS che ha creato il database necessita di queste interfacce.
Ci sono tre principali di queste interfacce.
Questa è la più semplice delle interfacce in cui l'utente può accedere tramite un browser Web e iniziare a utilizzare i servizi DB. Il lato negativo di tale accesso è che è necessario un essere umano per interagire con i servizi RDS e non possiamo eseguire un programma di database per eseguire alcune attività regolari come: backup o analisi del DB, ecc.
Viene anche chiamato accesso CLI in cui è possibile eseguire il comando DB tramite la schermata del prompt dei comandi AWS che avrebbe dovuto essere installato nel computer client in uso. Di seguito sono riportati i passaggi per installare la CLI nel sistema locale utilizzando il quale accederai ai servizi AWS.
I passaggi per installare AWS CLI sono i seguenti.
Passo 1
Verifica la versione di python nel tuo ambiente.
ubuntu@ubuntu:~$ python -V
ubuntu@ubuntu:~$ python3 -V
Quando eseguiamo il programma sopra, otteniamo il seguente output:
Python 2.7.12
Python 3.5.2
Se la versione è inferiore a 2.6 o 3.3, è necessario aggiornare la versione di python nel sistema.
Passo 2
Verifica la disponibilità del pacchetto python denominato pip. Sarà necessario per installare AWS CLI.
Pip -V
Quando eseguiamo il programma sopra, otteniamo il seguente output:
pip 10.0.1 from /home/ubuntu/.local/lib/python3.5/site-packages/pip (python 3.5)
Passaggio -3
Immettere il seguente comando per installare l'AWS CLI.
pip install awscli –upgrade –user
aws --version
Quando eseguiamo il programma sopra, otteniamo il seguente output:
Aws-cli/1.11.84 Python/3.6.2 Linux/4.4.0
Passaggio 4
Successivamente configuriamo la CLI di aws con le credenziali. Emettiamo questo comando e quindi inseriamo i valori richiesti uno per uno.
aws configure
Quando eseguiamo il programma sopra, otteniamo il seguente output:
AWS Access Key ID [None]: ****PLE
AWS Secret Access Key [None]: ********8
Default region name [None]: us-west-2
Default output format [None]: json
Con la configurazione di cui sopra, ora sei pronto per utilizzare la CLI per comunicare con gli ambienti AWS per la configurazione e l'utilizzo di amazon RDS. Nei prossimi capitoli vedremo come possiamo farlo.
Amazon Relational Database Service (Amazon RDS) fornisce anche un'API (application programming interface). Le API vengono utilizzate quando le informazioni vengono scambiate tra i sistemi piuttosto che un essere umano che emette i comandi e riceve il risultato. Ad esempio, se desideri automatizzare l'aggiunta di istanze di database a un servizio RDS quando il numero di transazioni raggiunge una determinata soglia, puoi utilizzare un SDK AWS per scrivere un programma che monitorerà il numero di transazioni di database e spin-off un RDS istanza quando la condizione richiesta è soddisfatta.
Di seguito è riportato un esempio di codice API che crea una copia di uno snapshot DB. È un programma Python che utilizza SDK AWS denominato boto3. La libreria client in boto3 ha un metodo chiamato copy_db_snapshot che viene chiamato dal programma python per creare una copia dell'istantanea DB con i parametri richiesti come mostrato.
import boto3
client = boto3.client('rds')
response = client.copy_db_snapshot(
SourceDBSnapshotIdentifier='mydbsnapshot',
TargetDBSnapshotIdentifier='mydbsnapshot-copy',
)
print(response)
Quando viene eseguito il programma sopra, otteniamo la risposta che descrive le varie proprietà dell'evento di copia. Qui il termine stringa rappresenta i vari nomi di parametri definiti dall'utente per il proprio ambiente. Ad esempio VpcID rappresenta l'ID del vpc in cui si sta eseguendo l'azione di copia.
{
'DBSnapshot': {
'DBSnapshotIdentifier': 'string',
'DBInstanceIdentifier': 'string',
'SnapshotCreateTime': datetime(2015, 1, 1),
'Engine': 'string',
'AllocatedStorage': 123,
'Status': 'string',
'Port': 123,
'AvailabilityZone': 'string',
'VpcId': 'string',
'InstanceCreateTime': datetime(2015, 1, 1),
'MasterUsername': 'string',
'EngineVersion': 'string',
'LicenseModel': 'string',
'SnapshotType': 'string',
'Iops': 123,
'OptionGroupName': 'string',
'PercentProgress': 123,
'SourceRegion': 'string',
'SourceDBSnapshotIdentifier': 'string',
'StorageType': 'string',
'TdeCredentialArn': 'string',
'Encrypted': True|False,
'KmsKeyId': 'string',
'DBSnapshotArn': 'string',
'Timezone': 'string',
'IAMDatabaseAuthenticationEnabled': True|False,
'ProcessorFeatures': [
{
'Name': 'string',
'Value': 'string'
},
]
}
}