Amazon RDS – 接口
Amazon RDS – 接口
RDS 接口是访问我们创建的 RDS 服务的一种方式。在创建和配置 RDS 服务后,需要访问数据,将数据上传到此数据库并运行一些应该能够连接到数据库的其他程序。数据库的最终用户(不一定是创建数据库的 AWS 账户持有人)需要这些接口来访问和操作数据。
有三个主要的这样的接口。
图形用户界面控制台
这是用户可以通过 Web 浏览器登录并开始使用数据库服务的最简单的界面。这种访问的缺点是,它需要人工与 RDS 服务进行交互,我们无法运行数据库程序来执行一些常规任务,例如备份或分析数据库等。
命令行界面
它也称为 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
第四步
接下来,我们使用凭据配置 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。在接下来的章节中,我们将看到如何做到这一点。
应用程序接口
Amazon Relational Database Service (Amazon RDS) 还提供应用程序编程接口 (API)。API 在系统之间交换信息时使用,而不是由人发出命令和接收结果。例如,如果您想在事务数量达到某个阈值时自动将数据库实例添加到 RDS 服务,那么您可以使用 AWS SDK 编写一个程序来监控数据库事务的数量并分拆出一个 RDS满足所需条件的实例。
以下是创建数据库快照副本的 API 代码示例。这是一个使用名为 boto3 的 AWS sdk 的 python 程序。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' }, ] } }