Amazon RDS - 接口


RDS 接口是访问我们创建的 RDS 服务的一种方式。创建和配置 RDS 服务后,需要访问数据、将数据上传到该数据库并运行一些其他能够连接到该数据库的程序。数据库的最终用户(而不一定是创建数据库的 AWS 账户持有者)访问和操作数据的此类要求需要这些接口。

此类接口主要有三个。

图形用户界面控制台

这是最简单的界面,用户可以通过 Web 浏览器登录并开始使用数据库服务。这种访问的缺点是,它需要人工与 RDS 服务交互,并且我们无法运行数据库程序来执行一些常规任务,例如备份或分析数据库等。

aws_interface_mgmt_console.JPG

命令行界面

它也称为 CLI 访问,您可以通过 AWS 命令​​提示符屏幕执行 DB 命令,该屏幕应已安装在您正在使用的客户端计算机中。以下是在本地系统中安装 CLI 的步骤,您将使用它来访问 AWS 服务。

安装 AWS CLI 的步骤如下。

步骤1

检查您环境中的 python 版本。

ubuntu@ubuntu:~$ python -V
ubuntu@ubuntu:~$ python3 -V

当我们运行上面的程序时,我们得到以下输出 -

Python 2.7.12 
Python 3.5.2

如果版本低于 2.6 或 3.3 ,则需要升级系统中的 python 版本。

第2步

检查名为 pip 的 python 包的可用性。安装 AWS CLI 需要它。

Pip -V

当我们运行上面的程序时,我们得到以下输出 -

pip 10.0.1 from /home/ubuntu/.local/lib/python3.5/site-packages/pip (python 3.5)

步骤-3

发出以下命令来安装 AWS CLI。

pip install awscli –upgrade –user
aws --version

当我们运行上面的程序时,我们得到以下输出 -

Aws-cli/1.11.84 Python/3.6.2 Linux/4.4.0

步骤4

接下来,我们使用凭证配置 aws CLI。我们发出这个命令,然后一一输入所需的值。

aws configure

当我们运行上面的程序时,我们得到以下输出 -

AWS Access Key ID [None]: ****PLE
AWS Secret Access Key [None]: ********8
Default region name [None]: us-west-2
Default output format [None]: json

完成上述配置后,您现在可以使用 CLI 与 AWS 环境进行通信,以设置和使用 amazon RDS。在接下来的章节中,我们将了解如何做到这一点。

AWS API

Amazon Relational Database Service (Amazon RDS) 还提供应用程序编程接口 (API)。当系统之间交换信息而不是由人发出命令并接收结果时,会使用 API。例如,如果您希望在事务数量达到特定阈值时自动将数据库实例添加到 RDS 服务,那么您可以使用 AWS SDK 编写一个程序来监控数据库事务数量并衍生出 RDS满足所需条件时的实例。

以下是创建数据库快照副本的 API 代码示例。它是一个Python程序,使用名为boto3的AWS sdk。boto3 中的客户端库有一个名为 copy_db_snapshot 的方法,该方法由 python 程序调用,以使用所需参数创建数据库快照的副本,如图所示。

import boto3

client = boto3.client('rds')

response = client.copy_db_snapshot(
    SourceDBSnapshotIdentifier='mydbsnapshot',
    TargetDBSnapshotIdentifier='mydbsnapshot-copy',
)

print(response)

当上面的程序运行时,我们得到描述复制事件的各种属性的响应。这里术语字符串代表用户为其环境定义的各种参数名称。例如,VpcID 表示发生复制操作的 vpc 的 ID。

{
    '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'
            },
        ]
    }
}