Runbook

Tạo AWS System Manager Automation runbook cho MySQL Failover

Truy Cập Bảng Điều Khiển Tự Động Hóa System Manager

  1. Đăng nhập vào bảng điều khiển AWS System Manager Automation.
  2. Chọn “Tạo Runbook” (Create runbook).

Tạo Quy Trình Làm Việc (workflow)

Trong trải nghiệm thiết kế trực quan, quy trình làm việc được biểu diễn dưới dạng đồ họa của Runbook trên bề mặt làm việc. Bạn có thể sử dụng trải nghiệm thiết kế trực quan để định nghĩa, cấu hình và xem xét các Action riêng lẻ của Runbook.

Định Nghĩa Chi Tiết Runbook

Bên cạnh nút chuyển đổi Thiết Kế và Mã (Design and Code toggle), chọn biểu tượng bút chì và nhập tên cho Runbook của bạn. Đối với hướng dẫn này, nhập “Runbook Failover MySQL” (MySQL Failover Runbook).

Thêm Action: Mô Tả Nút MySQL Chính

  1. Trong trình duyệt API AWS, nhập “Describe_PrimaryNode_Instance” vào thanh tìm kiếm.
  2. Kéo Action “Amazon EC2 – DescribeInstances” vào không gian trống.
  3. Đối với tên Bước, nhập một giá trị (ví dụ, “Describe_PrimaryNode_Instance”).
  4. Chọn tab Đầu vào (Inputs).
  5. Mở rộng danh sách đầu vào bổ sung (Additional inputs dropdown) và nhập ID thể hiện của nút chính.
  6. Trong tab Đầu ra (Outputs), chọn “Thêm một đầu ra” (Add an output) và nhập “InstanceState” vào trường Tên.
  7. Trong trường Bộ chọn (Selector), nhập $.Reservations[0].Instances[0].State.Name.
  8. Trong danh sách thả xuống Kiểu (Type), chọn “Chuỗi” (String).

Create VPC

Thêm Action: Chi Nhánh Trên Trạng Thái Instance

  1. Kéo Action Branch từ trình duyệt Action và thả nó phía dưới bước Describe_PrimaryNode_Instance.
  2. Đối với tên bước, nhập một giá trị (ví dụ, BranchOnPrimaryNodeState).
  3. Để định nghĩa logic chi nhánh:
  4. Chọn trạng thái Branch trên canvas.
  5. Dưới Inputs và Choices, chọn biểu tượng bút chì để chỉnh sửa Rule #1.
  6. Chọn Add conditions.

Create VPC

  1. Trong hộp thoại Conditions cho Rule #1, chọn đầu ra bước GetInstanceState.InstanceState từ dropdown Variable.
  2. Đối với Operator, chọn is equal to.
  3. Đối với Value, chọn String từ danh sách dropdown và nhập stopped.
  4. Chọn Save conditions.
  5. Chọn Add new choice rule.
  6. Chọn Add conditions for Rule #2.
  7. Trong hộp thoại Conditions cho Rule #2, chọn đầu ra bước GetInstanceState.InstanceState từ dropdown Variable.
  8. Đối với Operator, chọn is equal to.
  9. Đối với Value, chọn String từ danh sách dropdown và nhập stopping.
  10. Chọn Save conditions.
  11. Chọn Add new choice rule.
  12. Đối với Rule #3, chọn Add conditions.
  13. Trong hộp thoại Conditions cho Rule #3, chọn đầu ra bước GetInstanceState.InstanceState từ dropdown Variable.
  14. Đối với Operator, chọn is equal to.
  15. Đối với Value, chọn String từ danh sách dropdown và nhập running.
  16. Trong Rule mặc định, chọn Go to end cho bước Default.

Thêm Hành Động: Khởi Động MySQL trên Node Phụ

  1. Kéo hành động Run command on instances vào ô Drag action here phía dưới điều kiện {{ GetInstanceState.InstanceState }} == "stopped".
  2. Đặt tên bước là StartMySQL_On_SecondaryNode.
  3. Trong tab Inputs, nhập AWS-RunShellScript cho tham số Tên tài liệu.
  4. Trong Parameters, ở mục Commands, nhập sudo systemctl start mysqld.
  5. Cho InstanceIds, chọn ID thực thể của node phụ từ danh sách thả xuống. Lưu ý: Bạn có thể sao chép và dán ID thực thể phụ nếu nó không hiển thị trong danh sách thả xuống.

Thêm Hành Động: Chờ Node Chính Dừng

  1. Kéo hành động Wait on AWS resource vào ô Drag action here dưới điều kiện {{ GetInstanceState.InstanceState }} == "stopping".
  2. Đặt tên bước, ví dụ WaitForInstanceStop_PrimaryNode.
  3. Cho trường Service, chọn Amazon EC2.
  4. Cho trường API, chọn DescribeInstances.
  5. Cho trường Property selector, nhập $.Reservations[0].Instances[0].State.Name.
  6. Cho tham số Desired values, nhập [**stopped**].
  7. Trong tab Configuration của hành động WaitForInstanceStop_PrimaryNode, chọn StartMySQL_On_SecondaryNode từ danh sách thả xuống Next step.

Thêm Hành Động: Dừng Node Chính

  1. Kéo hành động Change an instance state vào ô Drag action here dưới điều kiện {{ GetInstanceState.InstanceState }} == "running".
  2. Đặt tên bước là StopInstance_PrimaryNode.
  3. Chọn tab Inputs.
  4. Mở rộng danh sách thả xuống Additional inputs và nhập ID thực thể của node chính. Lưu ý: Bạn có thể sao chép và dán ID thực thể phụ nếu chúng không hiển thị trong danh sách thả xuống.
  5. Cho Desired state, chỉ định stopped.
  6. Trong tab Configuration của hành động StopInstance_PrimaryNode, chọn StartMySQL_On_SecondaryNode từ danh sách thả xuống Next step.

Xem Lại và Tạo Runbook

Xem lại runbook hoàn chỉnh trên canvas và chọn Create runbook để lưu runbook thực hành.

Create VPC