Nguồn: Internet
Mục lục
1. Giới thiệu
Khi bạn có một server trong private subnet không giao tiếp được với internet (ví dụ DB server) nhưng bạn muốn cập nhật phần mềm cho server đó, đây là lúc bạn sử dụng NAT.
NAT viết tắt cho Network Address Translation là phương pháp thay đổi địa chỉ IP của các tài nguyên private. Khi các tài nguyên private request ra internet, NAT sẽ đổi IP các tài nguyên này thành IP của mình rồi đưa request ra internet, sau khi nhận response trở về từ ngoài internet, NAT sẽ lấy lại IP các tài nguyên nguồn và đưa response vào đó.
NAT vẫn giúp cho các tài nguyên private luôn được bảo mật vì IP của các tài nguyên này không hề được công khai ra internet, NAT thay đổi địa chỉ IP các tài nguyên private một cách ngẫu nhiên và tạm thời nên chỉ cho một chiều từ trong đi ra chứ không cho chiều từ ngoài internet đi vào.
Bạn xem bài https://indaacademy.vn/aws/tao-vpc-va-subnetting-trong-aws/để biết cách tạo các tài nguyên private trong aws.
2. Tạo NAT trong AWS
Chú ý: Mọi traffic từ private subnet đi vào hay ra internet đều phải qua Root Table, ta cần các traffic này đi qua NAT để giao tiếp được với internet nên ta sẽ thêm bản ghi vào Root Table của private subnet (xem bài https://indaacademy.vn/aws/tao-vpc-va-subnetting-trong-aws/).
Trong AWS, bạn có 2 cách để sử dụng NAT là NAT instance và NAT gateway.
2.1. NAT Instance
Lúc chọn AMI, tìm từ khoá NAT
trong Commutity AMIs
và chọn cái đầu tiên:
NAT Instance phải nằm trong public subnet:
Khi sử dụng NAT Instance, bạn phải tắt Source / Destination Check
, chọn như hình dưới và Stop
chức năng đó đi:
Source / Destination Check
là chức năng kiểm tra xem Instance có phải là nguồn hay đích của request nào đó không, mặc định của giá trị này khi tạo EC2 Instance là true
. Vì NAT Instance không phải là nguồn hay đích của traffic đi tới mà chỉ là nơi kết nối private subnet với internet nên ta phải tắt flag đó đi.
Ta đã tạo một NAT Instance trong public subnet, giờ ta phải cho private DB instance kết nối được với NAT Instance này. Ta thêm record vào Root Table của private subnet như sau:
Trước khi thêm:
Sau khi thêm:
Ở hình trên, Target
mới được thêm vào chính là NAT Instance ta mới vừa tạo. Về cơ bản ta đang cho phép mọi dữ liệu vào hay ra tới bất kỳ địa chỉ IP nào đều phải đi qua NAT Instnace này.
Bạn thử vào private DB Instance và chạy câu lệnh sudo yum update
để kiểm tra kết quả.
2.2. NAT Gateway
NAT Gateway là giải pháp mới thay thế cho NAT Instance, khi sử dụng NAT Gateway bạn sẽ không cần phải tạo EC2 Instance cũng như không cần phải tắt Source / Destination Check
như NAT Instance.
Lưu ý là NAT Instance luôn nằm sau Security Group gắn với instance đó nhưng NAT Gateway không nằm sau Security Group.
Tương tự NAT Instance, bạn cũng phải tạo NAT Gateway trong public subnet:
Ta cũng phải thêm record vào Route Table của private subnet:
Lần này, Target
không phải là Instance như trước nữa mà là NAT Gateway như hình trên.
Giờ bạn đã có thể kết nối vào private DB instance và chạy sudo yum update
thử.
Link tham khảo:
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
https://en.wikipedia.org/wiki/Network_address_translation
Nguồn: Internet