Cách tạo một RDS Instance bằng Python Boto3 trên AWS

theanh

Administrator
Nhân viên
Trong bài viết này, chúng ta sẽ xem cách tạo một RDS MySql Instance bằng Thư viện Boto3. Chúng ta sẽ sử dụng phương thức "create_db_instance" để tạo một Instance.

Trước khi tiếp tục, tôi cho rằng bạn đã quen thuộc với AWS RDS Service. Nếu bạn không quen với nó và không biết phải học gì trước tiên để tạo một phiên bản RDS MySql từ AWS Console, hãy tìm kiếm "Cách thiết lập phiên bản RDS MySql (Relation Database MySql ) trên AWS?".

Điều kiện tiên quyết​

  1. Tài khoản AWS (Tạo nếu bạn chưa có)
  2. Hiểu biết cơ bản về RDS.
  3. Hiểu biết cơ bản về Python.
  4. Python có sẵn trên hệ thống.

Chúng ta sẽ làm gì​

  1. Cài đặt Dependencies.
  2. Biết phương pháp cần thiết.
  3. Tạo một RDS MySql Instance bằng Python Boto3.

Cài đặt Dependencies​

Python mặc định có trong Ubuntu Server, vì vậy bạn không cần phải cài đặt nó.

Để kiểm tra phiên bản Python trên hệ thống của bạn, hãy sử dụng lệnh sau.

which python/usr/bin/python --version

HOẶC

python --version

Nếu bạn không có pip và bạn đang sử dụng Ubuntu 18.04, hãy thực hiện lệnh sau để cập nhật kho lưu trữ cục bộ trước.

sudo apt update

Để cài đặt pip, hãy sử dụng lệnh sau.

sudo apt install python-pip

Để kiểm tra phiên bản Pip đã cài đặt, hãy thực hiện lệnh sau.

pip --version

Sau khi bạn có python và pip, bạn có thể cài đặt Boto3.

Cài đặt Boto3 rất đơn giản và dễ dàng. Để cài đặt Boto3, hãy sử dụng lệnh sau.

pip install boto3



Để kiểm tra xem Boto3 đã được cài đặt chưa và phiên bản của nó là gì, hãy thực hiện lệnh sau.

pip show boto3


Biết phương thức cần thiết​

Để tạo một RDS Instance, chúng ta sẽ sử dụng phương thức "create_db_instance".Sau đây là cú pháp của phương thức với tất cả các tham số mà nó chấp nhận. Chúng ta sẽ không sử dụng tất cả các tham số này để tạo một instance nhưng bạn có thể thử nếu muốn. Chúng ta sẽ chỉ sử dụng các tham số bắt buộc và bắt buộc. Nếu bạn muốn tìm hiểu thêm về tất cả các tham số có sẵn, bạn có thể truy cập trang chính thức của Boto3 tại đây.

Cú pháp yêu cầu
Mã:
response = client.create_db_instance( DBName='chuỗi', DBInstanceIdentifier='chuỗi', AllocatedStorage=123, DBInstanceClass='chuỗi', Engine='chuỗi', MasterUsername='chuỗi', MasterUserPassword='chuỗi', DBSecurityGroups=[ 'chuỗi', ], VpcSecurityGroupIds=[ 'chuỗi', ], AvailabilityZone='chuỗi', DBSubnetGroupName='chuỗi', PreferredMaintenanceWindow='chuỗi', DBParameterGroupName='chuỗi', BackupRetentionPeriod=123, PreferredBackupWindow='chuỗi', Port=123, MultiAZ=True|False, EngineVersion='chuỗi', AutoMinorVersionUpgrade=True|False, LicenseModel='chuỗi', Iops=123, OptionGroupName='chuỗi', CharacterSetName='chuỗi', PubliclyAccessible=Đúng|Sai, Thẻ=[ { 'Khóa': 'chuỗi', 'Giá trị': 'chuỗi' }, ], DBClusterIdentifier='chuỗi', StorageType='chuỗi', TdeCredentialArn='chuỗi', TdeCredentialPassword='chuỗi', StorageEncrypted=Đúng|Sai, KmsKeyId='chuỗi', Tên miền='chuỗi', CopyTagsToSnapshot=Đúng|Sai, MonitoringInterval=123, MonitoringRoleArn='chuỗi', Tên miềnIAMRoleName='chuỗi', PromotionTier=123, Múi giờ='chuỗi', EnableIAMDatabaseAuthentication=Đúng|Sai, EnablePerformanceInsights=Đúng|Sai, PerformanceInsightsKMSKeyId='chuỗi', PerformanceInsightsRetentionPeriod=123, EnableCloudwatchLogsExports=[ 'string', ], ProcessorFeatures=[ { 'Name': 'string', 'Value': 'string' }, ], DeletionProtection=True|False, MaxAllocatedStorage=123)
  1. DBName: Ý nghĩa của tham số này khác nhau tùy theo công cụ cơ sở dữ liệu bạn sử dụng.
  2. DBInstanceIdentifier: Đây là tham số bắt buộc. Đây là mã định danh của thể hiện DB. Tham số này được lưu trữ dưới dạng chuỗi chữ thường.
  3. DBInstanceClass: Đây là tham số bắt buộc. Tham số này chỉ định dung lượng tính toán và bộ nhớ của thể hiện DB.
  4. Engine: Tên của công cụ cơ sở dữ liệu sẽ được sử dụng để tạo thể hiện. Đây là trường bắt buộc
  5. MasterUsername: Tên của người dùng chính. Đây là người dùng của DB trong Instance
  6. MasterUserPassword:Mật khẩu cho người dùng chính mà chúng ta tạo trong instance.
  7. VpcSecurityGroupIds:Danh sách các nhóm bảo mật Amazon EC2 VPC để liên kết với instance DB này. Security Group này có các quy tắc cho phép kết nối trên các cổng được chỉ định trong đó.
  8. Port:Số cổng mà cơ sở dữ liệu chấp nhận kết nối. Nếu bạn muốn cho phép kết nối trên cổng này, bạn phải chỉ định cổng này trong Nhóm bảo mật.

Tạo một phiên bản RDS MySql bằng Python Boto3

Để tạo một phiên bản RDS, hãy tạo một tệp "create-rds-instance.py" và sao chép-dán mã sau vào đó.

Đừng quên thay đổi các giá trị của "aws_access_key_id_value" và "aws_secret_access_key_value" bằng access_key_id và access_key_value của riêng bạn.

Nếu bạn muốn tạo phiên bản trong vùng bạn chọn, hãy thay đổi giá trị của "region_name" nếu không hãy giữ nguyên không thay đổi.

Ngoài ra, hãy đảm bảo gán id nhóm bảo mật đang thoát cho "VpcSecurityGroupIds".
Mã:
import boto3conn = boto3.client('rds', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT', aws_secret_access_key='SECRETE-KEY-OF-THE-AWS-ACCOUNT', region_name='eu-west-3')response = conn.create_db_instance( AllocatedStorage=10, DBName="test", DBInstanceIdentifier="my-first-rds-instance", DBInstanceClass="db.t2.micro", Engine="mysql", MasterUsername="root", MasterUserPassword="pass1234", Port=3306, VpcSecurityGroupIds=["sg-7fa4d512"], )print (response)

Bây giờ, bạn đã sẵn sàng để tạo một Instance. Thực thi tập lệnh python bằng lệnh sau.

python create-rds-instance.py



Bạn sẽ thấy phản hồi trên thiết bị đầu cuối.

Để xác minh trạng thái phiên bản từ AWS Console, hãy truy cập RDS Dashboard.


Kết luận​

Chúng ta đã học cách tạo Phiên bản RDS MySql trong bài viết này bằng Thư viện Boto3 trong Python. Bạn có thể tùy chỉnh mã và tạo phiên bản theo ý muốn. Chúng ta cũng đã thấy cách cài đặt các phụ thuộc cần thiết để viết và thực thi mã Python.
 
Back
Bên trên