Amazon RDS - Interfaces
As interfaces RDS são uma forma de acessar o serviço RDS que criamos. Após a criação e configuração do serviço RDS, é necessário acessar os dados, fazer o upload dos dados para este banco de dados e executar algum outro programa que possa se conectar ao banco de dados. Esses requisitos de acesso e manipulação de dados por usuários finais do banco de dados e não necessariamente o titular da conta AWS que criou o banco de dados precisa dessas interfaces.
Existem três interfaces principais.
Esta é a mais simples das interfaces onde o usuário pode fazer o login através de um navegador da web e começar a usar os serviços do banco de dados. A desvantagem de tal acesso é que ele precisa de uma pessoa para interagir com os serviços RDS e não podemos executar um programa de banco de dados para fazer algumas tarefas regulares como - backup ou análise do banco de dados, etc.
Também é chamado de acesso CLI, onde você pode executar o comando do banco de dados por meio da tela do prompt de comando da AWS, que deve ter sido instalado no computador cliente que você está usando. Abaixo estão as etapas para instalar o CLI em seu sistema local, usando o qual você acessará os serviços da AWS.
As etapas para instalar o AWS CLI são as seguintes.
Passo 1
Verifique a versão do python em seu ambiente.
ubuntu@ubuntu:~$ python -V
ubuntu@ubuntu:~$ python3 -V
Quando executamos o programa acima, obtemos a seguinte saída -
Python 2.7.12
Python 3.5.2
Se a versão for inferior a 2.6 ou 3.3, você precisa atualizar a versão do python em seu sistema.
Passo 2
Verifique a disponibilidade do pacote python denominado pip. Será necessário instalar o AWS CLI.
Pip -V
Quando executamos o programa acima, obtemos a seguinte saída -
pip 10.0.1 from /home/ubuntu/.local/lib/python3.5/site-packages/pip (python 3.5)
Etapa 3
Emita o seguinte comando para instalar o AWS CLI.
pip install awscli –upgrade –user
aws --version
Quando executamos o programa acima, obtemos a seguinte saída -
Aws-cli/1.11.84 Python/3.6.2 Linux/4.4.0
Passo 4
Em seguida, configuramos o aws CLI com credenciais. Emitimos este comando e, em seguida, inserimos os valores necessários um por um.
aws configure
Quando executamos o programa acima, obtemos a seguinte saída -
AWS Access Key ID [None]: ****PLE
AWS Secret Access Key [None]: ********8
Default region name [None]: us-west-2
Default output format [None]: json
Com a configuração acima estabelecida, você agora está pronto para usar o CLI para se comunicar com os ambientes AWS para configurar e usar o Amazon RDS. Nos próximos capítulos, veremos como podemos fazer isso.
O Amazon Relational Database Service (Amazon RDS) também fornece uma interface de programação de aplicativos (API). APIs são usados quando as informações são trocadas entre os sistemas, ao invés de um ser humano emitindo os comandos e recebendo o resultado. Por exemplo, se você deseja automatizar a adição de instâncias de banco de dados a um serviço RDS quando o número de transações atinge certo limite, então você usa um SDK da AWS para escrever um programa que monitorará o número de transações de banco de dados e criará um RDS instância quando a condição exigida é atendida.
Abaixo está um exemplo de código API que cria uma cópia de um instantâneo do banco de dados. É um programa python que usa AWS SDK chamado boto3. A biblioteca cliente em boto3 tem um método denominado copy_db_snapshot que é chamado pelo programa python para criar uma cópia do instantâneo DB com os parâmetros necessários conforme mostrado.
import boto3
client = boto3.client('rds')
response = client.copy_db_snapshot(
SourceDBSnapshotIdentifier='mydbsnapshot',
TargetDBSnapshotIdentifier='mydbsnapshot-copy',
)
print(response)
Quando o programa acima é executado, obtemos a resposta que descreve as várias propriedades do evento de cópia. Aqui, o termo string representa os vários nomes de parâmetros definidos pelo usuário para seu ambiente. Por exemplo, VpcID representa o ID do vpc no qual a ação de cópia está acontecendo.
{
'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'
},
]
}
}