AWS: Thiết lập đa vùng bằng cách sử dụng cá thể RDS


11

Tôi đang cố gắng mở rộng quy mô ứng dụng web của chúng tôi (PHP, MySQL, memcache) trong sơ đồ đa vùng. Hiện tại chúng tôi đang sử dụng một thiết lập với hai phiên bản EC2 đằng sau một thể hiện ELB và RDS, tất cả chúng đều ở khu vực US-EAST (Virginia).

Chúng tôi cũng muốn có sự hiện diện ở khu vực EU (Ireland). Điều này có nghĩa là ít nhất một phiên bản EC2 mới ở đó (giống hệt với các phiên bản khác, phục vụ cùng một ứng dụng).

Tôi đã sao chép AMI mong muốn, thiết lập phiên bản mới, thiết lập cấu hình ELB tương tự (bắt buộc để chấm dứt SSL) và định tuyến dựa trên độ trễ được định cấu hình trong Route53. Và nó hoạt động như đề xuất.

Nhưng, khách hàng từ EU có vấn đề về tốc độ. Điều này là do thực tế rằng các phiên bản EC2 của EU kết nối với phiên bản RDS có trụ sở tại Hoa Kỳ. Theo tôi biết Amazon vẫn chưa cho phép nhân rộng đa vùng RDS.

Bạn có bất cứ đề xuất nào về cách tăng tốc toàn bộ thiết lập trong khi sử dụng phiên bản RDS không?

Ngoài ra, bất kỳ ý tưởng nói chung về làm thế nào để mở rộng mọi thứ? Lý tưởng nhất là chúng tôi muốn tiếp tục sử dụng công nghệ RDS vì nhiều lý do. Tuy nhiên, tôi sẵn sàng để đề xuất (tôi đoán ý tưởng tiếp theo sẽ là lưu trữ các máy chủ MySQL của chúng ta).

Câu trả lời:


5

Bạn nên suy nghĩ cẩn thận tại sao bạn cần có cùng một dữ liệu ở cả Mỹ và EU. Sau tất cả là những người dùng khác nhau.

Chạy trong một môi trường đa khu vực phức tạp hơn nhiều và thường mang lại hiệu suất do độ trễ vốn có giữa Mỹ và EU.

Ngay cả khi bạn rời khỏi RDS và cố gắng sao chép dữ liệu của bạn giữa các khu vực, không đồng bộ hoặc đồng bộ, bạn sẽ gặp các vấn đề về độ trễ sẽ mang lại hiệu suất kém cho người dùng của bạn.

Cách dễ nhất là thiết lập một máy chủ RDS chuyên dụng ở EU và không chia sẻ gì giữa các trường hợp này.


Xin chào Guy, vấn đề ở đây là khách hàng EU và Mỹ cần có quyền truy cập vào cùng một dữ liệu. Có cách giải quyết / ý tưởng nào không?
Ion

Tần suất dữ liệu này được cập nhật (nếu không thường xuyên, bạn có thể dễ dàng sao chép dữ liệu giữa các vùng)?
Guy

Các dữ liệu được cập nhật thường xuyên nói chung. Và chúng sẽ bắt đầu được cập nhật thường xuyên hơn khi ứng dụng phát triển trong người dùng. Tôi nghĩ rằng chúng ta phải tìm kiếm một số giải pháp khác.
Ion

4

RDS rất tốt cho việc triển khai một vùng vì độ trễ thấp, nhưng nó trở thành một câu chuyện khác khi bạn bắt đầu mở rộng sang các vùng khác nhau. Nếu bạn muốn giữ phiên bản RDS, bạn có thể thiết lập máy chủ MySQL của riêng mình trong khu vực EU và thực hiện sao chép. Bằng cách này, tốc độ sẽ được chấp nhận hơn nhiều.


1
Có cách nào (bán) tự động để sao chép một thể hiện RDS trong một khoảng không? Có ý kiến ​​gì không? Tôi cho rằng bản sao này cũng sẽ chỉ đọc, phải không?
Ion

AWS hỗ trợ đọc bản sao theo mặc định, điều đó đúng: aws.amazon.com/rds/faqs/#86 - Tôi chắc chắn có thể thực hiện sao chép đọc / ghi nhưng nằm ngoài phạm vi của SF (Tôi sẽ kiểm tra với chúng tôi Trang web DBA).
Nathan C

Có, nhưng các bản sao đọc được tạo ra trong cùng một khu vực. Chúng tôi cần một bản sao đọc ở một khu vực khác và lần trước tôi đã kiểm tra họ không hỗ trợ điều này.
Ion

2

Gần đây, AWS đã thực hiện một hướng đi mà tôi đã hỏi trước đây trong câu hỏi của mình bằng cách thông báo các bản sao đọc RDS xuyên khu vực . Tuy nhiên, đây chỉ là một bước nhỏ hướng tới một thiết lập đa vùng thực sự.


1

Tôi tin rằng đây là những gì bạn muốn. Sao chép RDS sang EC2 chạy mysql ở một khu vực khác.

https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/


Chào mừng bạn đến với Lỗi Máy chủ! Trong khi điều này về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo.
slm

Cảm ơn, có vẻ thú vị! Đây là một liên kết phù hợp hơn: docs.aws.amazon.com/AmazonRDS/latest/UserGuide/ mẹo
Ion

0

Một giải pháp khả thi để cải thiện độ trễ có thể là sử dụng Amazon ElastiCache (về cơ bản là Memcached dưới vỏ bọc).

Bạn sẽ phải tạo ElastiCache Node ở mỗi khu vực (US-EST và EU) và để logic ứng dụng của bạn (EC2) sử dụng nút bộ đệm bất cứ khi nào có thể. Nếu bạn đi theo con đường này, bạn sẽ phải kiến ​​trúc lại ứng dụng của mình 1) biết những gì cần lưu trữ và khi nào và 2) để lấy càng nhiều càng tốt từ ElastiCache Node cục bộ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.