Amazon Relational Database Service (Amazon RDS) Custom là dịch vụ cơ sở dữ liệu quản lý dành cho các ứng dụng cổ điển, tùy chỉnh và đóng gói yêu cầu truy cập vào hệ điều hành và môi trường cơ sở dữ liệu cơ bản.
Bạn có thể cần sửa đổi cấu hình mặc định của một trường hợp RDS Custom for Oracle để đáp ứng các yêu cầu khác nhau, như kích hoạt các tính năng hoặc tùy chọn cơ sở dữ liệu, thay đổi các thiết lập cơ sở dữ liệu như múi giờ hoặc bộ ký tự, thay đổi các tham số cấp cơ sở dữ liệu hoặc tùy chỉnh tại cấp độ hệ điều hành. Bạn có thể thực hiện những thay đổi này bằng cách đăng nhập vào máy chủ dưới tư cách root cho các thay đổi cấp độ hệ điều hành hoặc với tư cách sys hoặc sysdba cho các thay đổi cơ sở dữ liệu. Tuy nhiên, nếu bạn có một số lượng lớn các cơ sở dữ liệu Oracle trên nhiều tài khoản AWS và khu vực khác nhau, giải pháp này không có khả năng mở rộng, vì bạn phải lặp lại những nhiệm vụ này trên mỗi trường hợp DB mà bạn muốn tùy chỉnh. Để giải quyết vấn đề này, bạn có thể tự động hóa các tùy chỉnh được thực hiện trên một trường hợp DB.
Trong bài viết này, chúng tôi sẽ hướng dẫn cách sử dụng tài liệu tự động hóa AWS Systems Manager để thực hiện các nhiệm vụ sau khi tạo trường hợp DB trong Amazon RDS Custom cho Oracle.
Tổng quan về Giải pháp
Một tài liệu AWS Systems Manager (tài liệu SSM) xác định các hành động mà Systems Manager thực hiện trên trường hợp được quản lý của bạn. Systems Manager bao gồm nhiều tài liệu được cấu hình sẵn mà bạn có thể sử dụng bằng cách chỉ định các tham số trong thời gian chạy, hoặc bạn có thể tạo tài liệu của riêng mình. Một tài liệu SSM có thể là một tài liệu lệnh, được sử dụng để chạy các lệnh trên trường hợp được quản lý của bạn, hoặc là một tài liệu tự động hóa, mà bạn có thể sử dụng để tương tác với các dịch vụ AWS khác để thực hiện một số hành động.
Sử dụng một tài liệu SSM có thể giúp cải thiện hiệu suất vận hành ở quy mô lớn, giảm lỗi liên quan đến can thiệp thủ công và tự động hóa các nhiệm vụ triển khai và cấu hình. Ngoài ra, bạn có thể chia sẻ các tài liệu SSM với các tài khoản AWS cụ thể trong cùng một Khu vực. Chúng cũng có thể được đánh dấu và tham chiếu trong thời gian chạy. Với cách tiếp cận này, bạn có thể tối ưu hóa và mở rộng triển khai trên nhiều trường hợp RDS Custom trên nhiều tài khoản. Các tài liệu SSM cũng có thể là một phần của các liên kết SSM trong quản trị viên trạng thái.
Trong bài viết này, chúng tôi thể hiện hai tình huống:
- Tạo và chạy một tài liệu SSM để thực hiện các thay đổi cấp độ hệ điều hành trên một trường hợp DB RDS Custom cho Oracle và chia sẻ tài liệu SSM qua các tài khoản
- Tạo và chạy một tài liệu SSM để thực hiện các thay đổi cấp độ cơ sở dữ liệu trên một trường hợp DB RDS Custom cho Oracle
Điều kiện tiên quyết
Để theo dõi bài viết này, bạn cần hai trường hợp DB RDS Custom cho Oracle: một trong tài khoản AWS A và một trong tài khoản B. Để biết hướng dẫn, xem làm việc với RDS Custom cho Oracle.
Tạo và chạy một tài liệu SSM để thực hiện các thay đổi cấp độ hệ điều hành trên một trường hợp DB RDS Custom cho Oracle
Để bắt đầu khám phá trường hợp sử dụng đầu tiên của chúng tôi, trước tiên chúng tôi sẽ tạo một tài liệu SSM trong tài khoản A để tạo một người dùng hệ điều hành. Hoàn thành các bước sau:
- Trên bảng điều khiển Quản lý Hệ thống, chọn Tài liệu trong thanh điều hướng.
- Trên tab Tất cả tài liệu, trên menu Tạo tài liệu, chọn Tự động hóa. Nhập tên cho tài liệu của bạn (ví dụ: RDSCustom-them-nguoi-dung-OS).
- Di chuyển đến tab biên tập và nhập nội dung sau để thêm một người dùng hệ điều hành có tên là testssm.
Trong tài liệu này, chúng tôi lấy ID trường hợp và ID DB thông qua các cuộc gọi API sau đó chạy một tập lệnh shell để thêm người dùng hệ điều hành.
description: Create OS User
schemaVersion: ‘0.3’
assumeRole: ‘{{ AutomationAssumeRole }}’
parameters:
DBInstanceId:
type: String
description: (Required) Identifies the *RDS* instance subject to action
AutomationAssumeRole:
type: String
description: (Optional) The ARN of the role that allows Automation to perform the actions on your behalf.
default: ”
mainSteps:
– name: GetDBId
action: ‘aws:executeAwsApi’
onFailure: Abort
inputs:
Service: rds
Api: DescribeDBInstances
DBInstanceIdentifier: ‘{{DBInstanceId}}’
outputs:
– Name: DbiResourceId
Selector: ‘$.DBInstances[0].DbiResourceId’
Type: String
– name: GetInstId
action: ‘aws:executeAwsApi’
onFailure: Abort
inputs:
Service: ec2
Api: DescribeInstances
Filters:
– Name: ‘tag:Name’
Values:
– ‘{{GetDBId.DbiResourceId}}’
outputs:
– Name: InstanceId
Selector: ‘$.Reservations[0].Instances[0].InstanceId’
Type: String
– name: AddOSuser
action: ‘aws:runCommand’
inputs:
DocumentName: AWS-RunShellScript
InstanceIds:
– ‘{{GetInstId.InstanceId}}’
Parameters:
commands:
– sudo useradd testssm
– id testssm
– sudo usermod -a -G rdsdb testssm
– id testssm
isEnd: true
- Chọn Tạo tự động hóa.
Tài liệu bạn vừa tạo sẽ xuất hiện trên trang Tài liệu, trên tab Được sở hữu bởi tôi.
Bây giờ bạn có thể chạy tài liệu SSM trên một trường hợp RDS Custom trong tài khoản AWS A.
- Trên trang Tài liệu, chọn tài liệu để chạy và chọn Thực hiện tự động hóa.
- Chọn Thực hiện đơn giản.
Cũng có một tùy chọn để chọn Đa tài khoản và Khu vực nếu bạn muốn chạy trong nhiều tài khoản và Khu vực.
- Dưới tham số đầu vào, nhập giá trị cho DBInstanceId.
- Chọn Thực hiện.
Bạn có thể theo dõi chi tiết chạy, kèm theo ID bước, số, thời gian bắt đầu và kết thúc, và trạng thái, như được hiển thị trong ảnh chụp màn hình dưới đây.
- Để xác minh, đăng nhập vào trường hợp Amazon Elastic Compute Cloud (Amazon EC2) nằm dưới của trường hợp RDS Custom và kiểm tra người dùng hệ điều hành.
Bây giờ chúng ta có thể chia sẻ tài liệu SSM với tài khoản B. Khả năng cho một tổ chức phát triển tài liệu riêng của họ và chia sẻ chúng qua các tài khoản khác nhau là rất quý báu. Ví dụ, các nhóm DevOps hoặc SecOps có thể phát triển, tạo và xác minh các tài liệu và chia sẻ chúng qua các tài khoản.
- Chọn tài liệu RDSCustom-add-OS-user và trên menu Hành động, chọn Sửa đổi quyền hạn.
- Dưới Sửa đổi quyền hạn, chọn Riêng tư và nhập số tài khoản mà bạn muốn chia sẻ tài liệu.
- Chọn Lưu.
- Chạy cùng tài liệu SSM trong tài khoản B.
- Để xác minh, chuyển sang tài khoản B và trên trang Tài liệu của bảng điều khiển Quản lý Hệ thống, điều hướng đến tab Được chia sẻ với tôi. Bạn nên thấy tất cả các tài liệu đã được chia sẻ với tài khoản này trên tab này.
- Tuân theo các bước giống nhau (bắt đầu từ Bước 5) để chạy tài liệu SSM trong tài khoản B.
Tạo và chạy một tài liệu SSM để thực hiện các thay đổi cấp độ cơ sở dữ liệu trên một trường hợp cơ sở dữ liệu RDS Custom cho Oracle
Để khám phá trường hợp sử dụng này, hoàn thành các bước sau:
- Trên bảng điều khiển Quản lý Hệ thống, chọn Tài liệu trong thanh điều hướng.
- Trên tab Tất cả tài liệu, trên menu Tạo tài liệu, chọn Tự động hóa.
- Nhập tên cho tài liệu của bạn (ví dụ: RDSCustomChangeDBParam).
- Di chuyển đến tab biên tập và nhập nội dung sau để thực hiện thay đổi tham số cơ sở dữ liệu và khởi động lại cơ sở dữ liệu.
Trong tài liệu này, chúng tôi sử dụng cuộc gọi API để tạm dừng tự động hóa RDS Custom và lấy ID DB và ID trường hợp. Sau đó, chúng tôi sử dụng RunCommand và chạy các tập lệnh shell để thay đổi tham số cơ sở dữ liệu (đặt tham số Oracle DB có tên job_queue_processes thành 200) và khởi động lại cơ sở dữ liệu. Cuối cùng, chúng tôi sử dụng API để tiếp tục tự động hóa cơ sở dữ liệu tùy chỉnh.
description: Make DB level changes
description: Stop RDS instance
schemaVersion: ‘0.3’
assumeRole: ‘{{ AutomationAssumeRole }}’
parameters:
DBInstanceId:
type: String
description: (Required) Identifies the *RDS* instance subject to action
AutomationAssumeRole:
type: String
description: (Optional) The ARN of the role that allows Automation to perform the actions on your behalf.
default: ”
mainSteps:
– name: PauseAutomation
action: ‘aws:executeAwsApi’
inputs:
Service: rds
Api: ModifyDBInstance
DBInstanceIdentifier: ‘{{DBInstanceId}}’
AutomationMode: all-paused
– name: WaitForAvailableState
action: ‘aws:waitForAwsResourceProperty’
maxAttempts: 10
timeoutSeconds: 600
onFailure: Abort
inputs:
Service: rds
Api: DescribeDBInstances
DBInstanceIdentifier: ‘{{DBInstanceId}}’
PropertySelector: ‘$.DBInstances[0].DBInstanceStatus’
DesiredValues:
– automation-paused
– name: GetDBId
action: ‘aws:executeAwsApi’
onFailure: Abort
inputs:
Service: rds
Api: DescribeDBInstances
DBInstanceIdentifier: ‘{{DBInstanceId}}’
outputs:
– Name: DbiResourceId
Selector: ‘$.DBInstances[0].DbiResourceId’
Type: String
– name: GetInstId
action: ‘aws:executeAwsApi’
onFailure: Abort
inputs:
Service: ec2
Api: DescribeInstances
Filters:
– Name: ‘tag:Name’
Values:
– ‘{{GetDBId.DbiResourceId}}’
outputs:
– Name: InstanceId
Selector: ‘$.Reservations[0].Instances[0].InstanceId’
Type: String
– name: ChangeDBParam
action: ‘aws:runCommand’
inputs:
DocumentName: AWS-RunShellScript
InstanceIds:
– ‘{{GetInstId.InstanceId}}’
Parameters:
commands:
– sudo su – rdsdb -c “sqlplus ‘/ as sysdba’”<<EOF
– alter system set job_queue_processes=200 scope=both;
– exit
– EOF
– name: RestartDB
action: ‘aws:runCommand’
inputs:
DocumentName: AWS-RunShellScript
InstanceIds:
– ‘{{GetInstId.InstanceId}}’
Parameters:
commands:
– echo shutdown immediate | sudo su – rdsdb -c “sqlplus ‘/ as sysdba’”
– echo startup | sudo su – rdsdb -c “sqlplus ‘/ as sysdba’”
– name: ResumeAutomation
action: ‘aws:executeAwsApi’
inputs:
Service: rds
Api: ModifyDBInstance
DBInstanceIdentifier: ‘{{DBInstanceId}}’
AutomationMode: full
isEnd: true
- Chọn Tạo tự động hóa.
Tài liệu bạn vừa tạo sẽ xuất hiện trên trang Tài liệu, trên tab Được sở hữu bởi tôi.
Hãy hoàn tất hai bước xác minh trước khi chúng ta chạy tài liệu SSM trên một trường hợp RDS Custom trong tài khoản A.
- Kiểm tra giá trị tham số cơ sở dữ liệu job_queue_processes trong trường hợp dbcust2.
Như được hiển thị trong ảnh chụp màn hình dưới đây, hiện nó được đặt thành 50.
- Xác minh rằng trường hợp RDS Custom có tính năng tự động hóa được bật.
- Chọn tài liệu để chạy và chọn Thực hiện tự động hóa.
- Chọn Thực hiện đơn giản.
- Dưới tham số đầu vào, nhập giá trị choDBInstanceId.
- Chọn Thực hiện.
Bạn có thể theo dõi chi tiết chạy, kèm theo ID bước, số, thời gian bắt đầu và kết thúc, và trạng thái. Ảnh chụp màn hình dưới đây cho thấy bước đầu tiên của việc tạm dừng tự động hóa tùy chỉnh đã hoàn thành và bước 2 đang được tiến hành.
- Xác minh tự động hóa đã được tạm dừng trên trường hợp tùy chỉnh, được kích hoạt thông qua tài liệu SSM.
- Tất cả các bước trong tài liệu SSM hiện đã hoàn thành. Để xác minh, đăng nhập vào trường hợp EC2 nằm dưới của trường hợp RDS Custom và kiểm tra tham số job_queue_processes.
Chạy tự động hóa quản lý hệ thống qua nhiều Region và tài khoản
Bạn có thể chạy tự động hóa Quản lý Hệ thống qua nhiều Region và tài khoản AWS khác nhau. Việc chạy các tự động hóa trong nhiều Region và tài khoản hoặc các đơn vị tổ chức giúp giảm thời gian cần thiết để quản lý tài nguyên AWS của bạn và nâng cao tính bảo mật của môi trường tính toán của bạn.
Khi bạn chạy một tự động hóa trên nhiều Region và tài khoản, bạn định mục tiêu tài nguyên bằng cách sử dụng các thẻ hoặc tên của một nhóm tài nguyên AWS. Nhóm tài nguyên phải tồn tại trong mỗi tài khoản và Region đích và tên nhóm tài nguyên phải giống nhau trong mỗi tài khoản và Region đích.
Để biết thêm thông tin, vui lòng tham khảo Chạy tự động hóa trong nhiều Region và tài khoản AWS.
Tóm tắt
Trong bài viết này, chúng tôi đã hướng dẫn cách bạn có thể sử dụng tài liệu SSM để tự động hóa các nhiệm vụ sau khi tạo phiên bản trong các trường hợp cơ sở dữ liệu RDS Custom cho các phiên bản Oracle DB. Tài liệu SSM có thể được chia sẻ trên các tài khoản AWS và cũng có thể được gắn thẻ và tham chiếu trong thời gian chạy. Việc sử dụng tài liệu SSM với RDS Custom giúp tối ưu hóa và mở rộng triển khai trên nhiều phiên bản RDS Custom trong nhiều tài khoản.
Xem bài viết gốc: https://aws.amazon.com/vi/blogs/database/automate-tasks-in-amazon-rds-custom-for-oracle-using-aws-systems-manager-documents/