Phần này tập trung vào cách thiết kế kiến trúc mạng trên AWS sao cho tối ưu chi phí nhưng vẫn đáp ứng được yêu cầu về hiệu năng, bảo mật, tính sẵn sàng và khả năng mở rộng.
Nội dung chính bao gồm cách cấu hình NAT Gateway phù hợp, lựa chọn kết nối mạng như Internet, VPN hoặc AWS Direct Connect, cấu hình route để giảm chi phí truyền dữ liệu, sử dụng VPC Endpoint, AWS Global Accelerator, Amazon CloudFront, CDN và edge caching.
Bên cạnh đó, phần này cũng trình bày cách rà soát workload hiện có để tối ưu mạng, lựa chọn chiến lược throttling phù hợp và phân bổ băng thông hợp lý cho VPN hoặc Direct Connect. Nói ngắn gọn, đây là phần giúp bạn thiết kế mạng AWS đủ nhanh, đủ an toàn, nhưng không để dữ liệu “đi đường vòng” rồi kéo hóa đơn lên như đi taxi giờ cao điểm.
Mục lục
- Cấu hình loại NAT Gateway phù hợp cho mạng
- Cấu hình kết nối mạng phù hợp
- Cấu hình route mạng phù hợp để giảm thiểu chi phí truyền mạng
- Xác định nhu cầu chiến lược cho CDN và edge caching
- Rà soát workload hiện có để tối ưu mạng
- Lựa chọn chiến lược throttling phù hợp
- Lựa chọn phân bổ băng thông phù hợp cho thiết bị mạng
Cấu hình loại NAT Gateway phù hợp cho mạng
NAT Gateway hay Network Address Translation Gateway cho phép các phiên bản trong private subnet kết nối ra internet hoặc các dịch vụ AWS khác mà không cần địa chỉ IP công khai. Tuy nhiên, mỗi cách cấu hình NAT Gateway sẽ có tác động chi phí khác nhau.
Một NAT Gateway dùng chung duy nhất
Triển khai một NAT Gateway duy nhất trong một Availability Zone (AZ) cho tất cả private subnet trong VPC là tùy chọn đơn giản nhất và thường rẻ nhất cho workload nhỏ hoặc ứng dụng không quá quan trọng.
Tuy nhiên, cách này tạo ra một điểm lỗi đơn. Nếu AZ chứa NAT Gateway đó không khả dụng, các phiên bản ở AZ khác có thể mất kết nối internet. Ngoài ra, toàn bộ lưu lượng từ tất cả AZ sẽ được định tuyến qua một NAT Gateway duy nhất, nên có thể tạo điểm nghẽn với ứng dụng có lưu lượng cao.
Nói dễ hiểu, dùng một NAT Gateway duy nhất giống như cả công ty chỉ có một cửa ra vào. Rẻ và đơn giản, nhưng nếu cửa đó kẹt thì mọi người đều đứng nhìn nhau.
NAT Gateway cho từng Availability Zone
Triển khai NAT Gateway trong mỗi AZ cung cấp tính sẵn sàng cao và khả năng chịu lỗi tốt hơn. Nếu một AZ không khả dụng, các phiên bản ở AZ khác vẫn có thể truy cập internet thông qua NAT Gateway tương ứng của chúng.
Cấu hình này được khuyến nghị cho workload sản xuất và các ứng dụng yêu cầu tính sẵn sàng cao. Tuy nhiên, nó cũng đắt hơn vì bạn phải trả tiền cho nhiều NAT Gateway.
NAT Instance
NAT Instance là phương pháp cũ hơn để cung cấp NAT, sử dụng một phiên bản EC2 được cấu hình để thực hiện NAT.
Cách này cho bạn nhiều quyền kiểm soát hơn, nhưng yêu cầu nhiều công sức quản lý hơn. Nhìn chung, NAT Instance thường kém hiệu quả hơn về chi phí và hiệu năng so với NAT Gateway. AWS thường khuyến nghị sử dụng NAT Gateway thay cho NAT Instance.
Cân nhắc chi phí cho NAT Gateway
- Mức sử dụng theo giờ: Bạn bị tính phí cho mỗi giờ mà NAT Gateway được cấp phát và khả dụng.
- Xử lý dữ liệu: Bạn bị tính phí cho mỗi GB dữ liệu được NAT Gateway xử lý.
- Truyền dữ liệu ra ngoài: Bạn bị tính phí cho dữ liệu được truyền từ NAT Gateway ra internet.
Cấu hình kết nối mạng phù hợp
Kết nối mạng on-premises hoặc các mạng bên ngoài khác với môi trường AWS cần được cân nhắc cẩn thận về chi phí và hiệu năng. AWS cung cấp một số tùy chọn kết nối khác nhau.
Internet
Kết nối đến AWS qua internet công cộng là tùy chọn đơn giản nhất và thường rẻ nhất cho workload nhỏ, môi trường phát triển hoặc ứng dụng không yêu cầu băng thông cao hay độ trễ thấp.
Tuy nhiên, kết nối internet thường kém tin cậy và kém bảo mật hơn so với kết nối chuyên dụng.
VPN (Virtual Private Network)
AWS VPN cho phép bạn thiết lập kết nối bảo mật, được mã hóa giữa mạng on-premises và VPC qua internet.
VPN là lựa chọn phù hợp cho workload yêu cầu kết nối bảo mật nhưng không yêu cầu băng thông cực cao hoặc độ trễ rất thấp. Nhìn chung, kết nối VPN thường đắt hơn kết nối internet thông thường nhưng rẻ hơn AWS Direct Connect.
AWS Direct Connect
AWS Direct Connect cho phép bạn thiết lập kết nối mạng chuyên dụng giữa mạng on-premises và AWS.
Direct Connect cung cấp băng thông cao hơn, độ trễ thấp hơn và hiệu năng mạng ổn định hơn so với VPN hoặc kết nối internet. Đây là tùy chọn đắt nhất, nhưng phù hợp với các ứng dụng quan trọng yêu cầu hiệu năng và độ tin cậy cao.
Cân nhắc chi phí cho kết nối mạng
- Truyền dữ liệu: Bạn bị tính phí cho dữ liệu được truyền vào và ra khỏi AWS, tùy thuộc vào loại kết nối và Region.
- Giờ port của Direct Connect: Bạn bị tính phí theo giờ cho mỗi Direct Connect port.
- Giờ kết nối VPN: Bạn bị tính phí theo giờ cho mỗi kết nối VPN.
Chọn kết nối mạng phù hợp
Lựa chọn kết nối mạng phụ thuộc vào một số yếu tố, bao gồm:
- Yêu cầu băng thông: Cần truyền bao nhiêu dữ liệu giữa mạng on-premises và AWS?
- Yêu cầu độ trễ: Ứng dụng của bạn nhạy cảm với độ trễ mạng đến mức nào?
- Yêu cầu bảo mật: Kết nối bảo mật giữa mạng on-premises và AWS quan trọng đến mức nào?
- Ngân sách: Bạn sẵn sàng chi bao nhiêu cho kết nối mạng?
Cấu hình route mạng phù hợp để giảm thiểu chi phí truyền mạng
Chi phí truyền dữ liệu trong AWS thay đổi tùy thuộc vào vị trí nguồn và đích. Hiểu rõ các chi phí này là điều rất quan trọng để tối ưu kiến trúc mạng.
Region sang Region
Truyền dữ liệu giữa các AWS Region khác nhau sẽ phát sinh chi phí. Các chi phí này có thể đáng kể, đặc biệt với khối lượng dữ liệu lớn.
Vì vậy, nên giảm thiểu lưu lượng liên vùng bất cứ khi nào có thể bằng cách giữ các tài nguyên cần giao tiếp chặt chẽ trong cùng một Region.
Availability Zone (AZ) sang Availability Zone
Truyền dữ liệu giữa các Availability Zone trong cùng một Region cũng phát sinh chi phí, mặc dù nhìn chung thấp hơn chi phí truyền liên vùng.
Bạn nên thiết kế ứng dụng để giảm thiểu lưu lượng liên AZ bằng cách đặt các tài nguyên cần giao tiếp thường xuyên trong cùng AZ. Để có tính sẵn sàng cao, bạn vẫn nên có dự phòng ở nhiều AZ, nhưng cần cố gắng tối ưu giao tiếp trong từng AZ.
Private sang public
Truyền dữ liệu giữa địa chỉ IP private trong VPC và địa chỉ IP public ngoài VPC cũng có thể phát sinh chi phí.
Nếu cần truy cập dịch vụ public từ trong VPC, bạn có thể cân nhắc sử dụng NAT Gateway hoặc NAT Instance. Tuy nhiên, với các dịch vụ được cung cấp trong AWS, VPC Endpoint nhìn chung là cách tiếp cận tốt hơn.
VPC Endpoints
VPC Endpoint cho phép bạn kết nối riêng tư đến các dịch vụ AWS được hỗ trợ, chẳng hạn như S3, DynamoDB và các dịch vụ khác, cũng như các dịch vụ đối tác AWS Marketplace mà không cần đi qua internet công cộng.
Điều này giúp giảm chi phí truyền dữ liệu trong một số trường hợp và cải thiện bảo mật.
Có hai loại VPC Endpoint:
Interface Endpoints: Đây là các Elastic Network Interface (ENI) trong subnet của bạn, cung cấp kết nối riêng tư đến dịch vụ.
Gateway Endpoints: Đây là các gateway được gắn vào route table của bạn, cung cấp kết nối riêng tư đến Amazon S3 và Amazon DynamoDB.
AWS Global Accelerator
AWS Global Accelerator cải thiện hiệu năng ứng dụng cho người dùng toàn cầu bằng cách định tuyến lưu lượng qua mạng toàn cầu của AWS.
Mặc dù có thêm một khoản phí nhỏ theo giờ và phí truyền dữ liệu ra ngoài, dịch vụ này có thể giúp giảm tổng chi phí trong một số kịch bản.
Ví dụ:
- Nếu bạn có người dùng truy cập ứng dụng từ khắp thế giới, Global Accelerator có thể giảm độ trễ và cải thiện hiệu năng. Điều này có thể dẫn đến mức độ tương tác người dùng tốt hơn và có thể tăng doanh thu.
- Global Accelerator cũng có thể giúp giảm chi phí truyền dữ liệu bằng cách tối ưu định tuyến lưu lượng trên mạng AWS. Điều này đặc biệt có lợi nếu bạn đang truyền lượng dữ liệu lớn giữa các Region khác nhau.
Xác định nhu cầu chiến lược cho mạng phân phối nội dung (CDN) và edge caching
CDN như Amazon CloudFront có thể giảm đáng kể chi phí truyền dữ liệu và cải thiện hiệu năng ứng dụng bằng cách cache nội dung gần người dùng hơn.
CDN (Content Delivery Network): CDN lưu các bản sao nội dung của bạn, ví dụ hình ảnh, video hoặc trang web tĩnh, tại các edge location trên toàn thế giới. Khi người dùng yêu cầu nội dung, CDN phục vụ nội dung từ edge location gần nhất, giúp giảm độ trễ và cải thiện hiệu năng.
Edge caching: Cache nội dung tại edge location cũng giúp giảm chi phí truyền dữ liệu bằng cách giảm nhu cầu truy xuất nội dung từ origin server. Điều này đặc biệt có lợi với nội dung được truy cập thường xuyên.
Khi xác định nhu cầu CDN, hãy cân nhắc các yếu tố sau:
- Phân bố địa lý của người dùng: Nếu người dùng của bạn nằm ở nhiều khu vực trên thế giới, CDN có thể cải thiện đáng kể hiệu năng và giảm chi phí.
- Loại nội dung: CDN hiệu quả nhất với nội dung tĩnh, ít thay đổi thường xuyên.
- Tần suất truy cập nội dung: Nếu nội dung được truy cập thường xuyên, cache tại edge location có thể giảm đáng kể chi phí.
Nói vui một chút, CDN giống như đặt thêm nhiều kho hàng gần khách. Khách cần gì thì lấy ở kho gần nhất, không phải lần nào cũng chạy về “kho tổng” để lấy.
Rà soát workload hiện có để tối ưu mạng
Thường xuyên rà soát workload hiện có là điều rất quan trọng để xác định các cơ hội tiết kiệm chi phí trong kiến trúc mạng.
Dưới đây là một số khu vực chính cần cân nhắc.
Chi phí truyền dữ liệu
Phân tích mẫu truyền dữ liệu trong AWS, giữa các AWS Region và giữa AWS với internet. Sau đó, tìm cơ hội giảm chi phí truyền dữ liệu bằng cách:
- Đặt tài nguyên gần nhau: Đặt các tài nguyên giao tiếp thường xuyên trong cùng Availability Zone hoặc AWS Region.
- Sử dụng VPC Endpoint: Truy cập các dịch vụ AWS như S3 và DynamoDB từ trong VPC mà không đi qua internet. Điều này giúp giảm chi phí truyền dữ liệu và cải thiện bảo mật.
- Nén dữ liệu: Nén dữ liệu trước khi truyền để giảm lượng dữ liệu được truyền, từ đó giảm chi phí.
Elastic IP addresses: Rà soát các Elastic IP address không sử dụng và giải phóng chúng để tránh bị tính phí.
Mẫu lưu lượng mạng: Phân tích mẫu lưu lượng mạng để xác định điểm nghẽn hoặc định tuyến không hiệu quả. Có thể sử dụng các công cụ như VPC Flow Logs để có insight về lưu lượng mạng.
Kết nối VPN: Đánh giá mức sử dụng kết nối VPN. Nếu một kết nối VPN thường xuyên bị sử dụng thấp, có thể cân nhắc giảm quy mô hoặc hợp nhất nhiều kết nối.
Kết nối Direct Connect: Rà soát mức sử dụng băng thông của kết nối Direct Connect. Nếu kết nối thường xuyên bị sử dụng thấp, có thể cân nhắc giảm quy mô hoặc dùng kết nối VPN thay thế.
Mức sử dụng NAT Gateway: NAT Gateway tính phí theo mỗi GB dữ liệu được xử lý. Bạn nên đánh giá xem NAT Instance có thể là giải pháp hiệu quả hơn về chi phí cho workload có mẫu lưu lượng dự đoán được hay không.
Lựa chọn chiến lược throttling phù hợp
Throttling là kỹ thuật được dùng để kiểm soát tốc độ lưu lượng mạng. Nó có thể được dùng để ngăn quá tải tài nguyên mạng và quản lý chi phí.
Dưới đây là một số điểm cân nhắc chính khi chọn chiến lược throttling phù hợp.
Xác định điểm nghẽn
Trước tiên, cần xác định các điểm nghẽn tiềm ẩn trong kiến trúc mạng. Đó có thể là một thiết bị mạng cụ thể, một kết nối mạng hoặc một ứng dụng.
Chọn cơ chế throttling phù hợp
AWS cung cấp một số cơ chế throttling, bao gồm:
- Network ACLs (NACLs): Có thể được dùng để chặn hoặc cho phép lưu lượng dựa trên địa chỉ IP và cổng.
- Security Groups: Hoạt động như tường lửa ảo cho phiên bản EC2 và có thể được dùng để kiểm soát lưu lượng inbound và outbound.
- AWS WAF: Có thể được dùng để bảo vệ ứng dụng web khỏi lưu lượng độc hại và cũng có thể được dùng để giới hạn tốc độ.
- API Gateway throttling: Có thể được dùng để kiểm soát tốc độ yêu cầu API.
Đặt giới hạn phù hợp
Đặt giới hạn throttling dựa trên năng lực của tài nguyên mạng và nhu cầu của ứng dụng.
Giám sát và điều chỉnh
Giám sát hiệu quả của chiến lược throttling và điều chỉnh giới hạn khi cần.
Throttling có thể giúp bạn tránh tăng đột biến chi phí ngoài dự kiến do lưu lượng tăng đột ngột, đặc biệt với các dịch vụ tính phí dựa trên truyền dữ liệu hoặc số lượng yêu cầu.
Lựa chọn phân bổ băng thông phù hợp cho thiết bị mạng, ví dụ: một VPN so với nhiều VPN, tốc độ Direct Connect
Chọn phân bổ băng thông phù hợp cho thiết bị mạng là điều rất quan trọng để cân bằng chi phí và hiệu năng.
Kết nối VPN
Một VPN: Một kết nối VPN duy nhất có thể đủ cho yêu cầu băng thông thấp đến trung bình. Tuy nhiên, nó cũng đại diện cho một điểm lỗi đơn.
Nhiều VPN: Nhiều kết nối VPN có thể cung cấp băng thông cao hơn và khả năng dự phòng tốt hơn. Tuy nhiên, chúng cũng đắt hơn.
Cân nhắc băng thông tổng hợp: Nếu bạn cần băng thông tổng hợp cao, nhiều kết nối VPN có thể hiệu quả về chi phí hơn so với một kết nối băng thông rất cao duy nhất.
Direct Connect
Tốc độ Direct Connect: Chọn tốc độ Direct Connect phù hợp dựa trên yêu cầu băng thông. Direct Connect cung cấp nhiều tốc độ khác nhau, từ 1 Gbps đến 100 Gbps.
Vị trí Direct Connect: Chọn vị trí Direct Connect gần về mặt địa lý với mạng on-premises để giảm độ trễ.
Dự phòng Direct Connect: Để có tính sẵn sàng cao, nên cân nhắc sử dụng nhiều kết nối Direct Connect ở các vị trí khác nhau.
Các yếu tố cần cân nhắc thêm
Mẫu lưu lượng: Phân tích mẫu lưu lượng mạng để xác định băng thông cần thiết. Cần cân nhắc các giai đoạn lưu lượng cao điểm và tăng trưởng trong tương lai.
Chi phí so với hiệu năng: Cân bằng chi phí của băng thông cao hơn với yêu cầu hiệu năng của ứng dụng.
Ví dụ
Nếu bạn có nhu cầu nhất quán 500 Mbps băng thông giữa mạng on-premises và AWS, bạn có thể cân nhắc hai kết nối VPN 500 Mbps để dự phòng. Điều này có thể hiệu quả hơn về chi phí so với một kết nối Direct Connect 1 Gbps duy nhất nếu mức sử dụng của bạn thường xuyên dưới 1 Gbps.
Tuy nhiên, nếu bạn dự đoán tăng trưởng đáng kể vượt quá 1 Gbps trong tương lai gần, bắt đầu với kết nối Direct Connect có thể là chiến lược dài hạn tốt hơn.