Trong bối cảnh phát triển ứng dụng và quản lý hệ thống, việc tận dụng sức mạnh của cả Amazon Elastic Compute Cloud (EC2) và Virtual Private Server (VPS) mang lại nhiều lợi ích thiết thực. Việc kết hợp hai nền tảng này cho phép các nhà phát triển mở rộng tài nguyên tính toán linh hoạt, xây dựng các môi trường thử nghiệm độc lập, hoặc thiết lập các giải pháp mạng phức tạp hơn. Hướng dẫn này sẽ cung cấp các bước chi tiết để tạo một EC2 Instance trên AWS và thiết lập kết nối an toàn đến VPS thông qua giao thức SSH.
Làm quen với EC2
Amazon Elastic Compute Cloud (EC2) là một dịch vụ của Amazon Web Services (AWS) cho phép bạn thuê các máy chủ ảo (instances) trên đám mây. EC2 mang đến khả năng mở rộng linh hoạt, giúp bạn dễ dàng điều chỉnh tài nguyên điện toán theo nhu cầu và chỉ trả tiền cho những gì bạn sử dụng. Với nhiều loại instance được tối ưu hóa cho các mục đích khác nhau, từ chạy ứng dụng web đơn giản đến xử lý các tác vụ phức tạp, EC2 là một nền tảng mạnh mẽ cho các nhà phát triển.
Việc kết hợp sử dụng EC2 với VPS mang lại nhiều lợi ích thiết thực, giúp bạn tận dụng ưu điểm của cả hai nền tảng. Dưới đây là một số lợi ích và trường hợp sử dụng phổ biến:
- Tối ưu hóa chi phí và hiệu suất:
- Kết hợp hiệu quả chi phí và khả năng mở rộng: Sử dụng VPS cho các tác vụ ổn định, chi phí thấp và EC2 cho các nhu cầu hiệu suất cao đột biến hoặc mở rộng tài nguyên linh hoạt khi cần.
- Mở rộng tài nguyên linh hoạt: Khi VPS đạt đến giới hạn, dễ dàng mở rộng khả năng xử lý hoặc lưu trữ bằng cách sử dụng các instance EC2.
- Nâng cao tính bảo mật và phân chia nhiệm vụ:
- Phân tách tầng ứng dụng để tăng cường bảo mật: Chạy web server trên EC2 để xử lý lưu lượng truy cập công cộng và đặt database server trên VPS để bảo vệ dữ liệu nhạy cảm.
- Sử dụng EC2 làm lớp bảo vệ (Bastion Host): Triển khai một EC2 instance có IP công khai làm điểm trung gian an toàn để truy cập các tài nguyên VPS nằm trong mạng riêng tư.
- Đảm bảo tính liên tục và khả năng dự phòng:
- EC2 như giải pháp dự phòng cho VPS: Trong trường hợp VPS gặp sự cố, nhanh chóng chuyển sang EC2 để đảm bảo dịch vụ không bị gián đoạn.
- Hỗ trợ phát triển và thử nghiệm:
- Môi trường phát triển và thử nghiệm linh hoạt: Sử dụng VPS làm môi trường lý tưởng cho việc phát triển và thử nghiệm ứng dụng mới.
- Tạo môi trường thử nghiệm tách biệt: EC2 cho phép tạo ra một môi trường thử nghiệm tương tự môi trường production trên VPS mà không ảnh hưởng đến hệ thống đang hoạt động.
- Dễ dàng triển khai lên môi trường production: Sau khi phát triển và thử nghiệm thành công trên VPS, ứng dụng có thể dễ dàng triển khai lên EC2 với khả năng mở rộng và độ tin cậy cao.
- Các trường hợp sử dụng kiến trúc ứng dụng phổ biến:
- Ứng dụng đa tầng: Sử dụng EC2 cho tầng web (web servers) để xử lý lượng truy cập lớn và VPS cho tầng dữ liệu (database servers) để quản lý dữ liệu an toàn.
- Kiến trúc microservices: Triển khai các dịch vụ độc lập trên EC2 để tận dụng khả năng mở rộng và độ tin cậy, trong khi các dịch vụ ít quan trọng hơn có thể chạy trên VPS để tối ưu chi phí.
- Môi trường hybrid: Phù hợp cho các doanh nghiệp đang chuyển đổi số, cho phép duy trì các hệ thống cũ trên VPS đồng thời tận dụng EC2 cho các ứng dụng mới và hiện đại.
Cách tạo EC2 Instance trên AWS
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn đã chuẩn bị những điều sau:
- Tài khoản AWS đang hoạt động: Bạn cần có một tài khoản AWS để có thể sử dụng dịch vụ EC2. Nếu bạn chưa có, hãy truy cập trang web của AWS để đăng ký.
- Máy tính đã cài đặt một SSH client: Bạn sẽ cần SSH client (ví dụ: Terminal trên macOS/Linux hoặc OpenSSH trên Windows) để kết nối đến EC2 Instance sau khi nó được tạo.
Các bước tạo EC2 Instance trên AWS
Bước 1: Đăng nhập vào AWS Management Console
- Truy cập trang web AWS và đăng nhập bằng thông tin tài khoản của bạn.
Bước 2: Truy cập dịch vụ EC2
- Sau khi đăng nhập, tìm kiếm và chọn dịch vụ EC2 trong mục Compute trong bảng điều khiển AWS hoặc truy cập đường link console.aws.amazon.com/ec2.
Bước 3: Chọn vùng AWS
- Lựa chọn vùng AWS mà bạn muốn cung cấp máy chủ EC2 (ví dụ: Tokyo, Hong Kong, Singapore…)
Bước 4: Khởi chạy Instance mới
- Trên trang điều khiển EC2, nhấp vào nút Launch Instance.
Bước 5: Chọn Amazon Machine Image (AMI): AMI là một template chứa hệ điều hành, máy chủ ứng dụng và các phần mềm cần thiết khác cho instance của bạn. Bạn sẽ thấy một danh sách các AMI được cung cấp bởi AWS và cộng đồng. Việc lựa chọn AMI phù hợp là bước quan trọng đầu tiên, vì nó sẽ quyết định hệ điều hành và các phần mềm cơ bản được cài đặt sẵn trên máy chủ của bạn.
- Chọn một AMI phù hợp với nhu cầu của bạn. Đối với người mới bắt đầu, các AMI phổ biến bao gồm Ubuntu Server, Amazon Linux, hoặc Microsoft Windows Server.
- Di chuột qua AMI bạn muốn chọn và nhấp vào nút Select.
Bước 6: Chọn Instance Type: Instance type xác định cấu hình phần cứng của máy chủ ảo của bạn, bao gồm CPU, bộ nhớ, và khả năng mạng. Việc lựa chọn Instance Type sẽ ảnh hưởng trực tiếp đến hiệu suất và chi phí của EC2 Instance của bạn.
- AWS cung cấp nhiều loại instance khác nhau được tối ưu hóa cho các mục đích sử dụng khác nhau. Đối với mục đích thử nghiệm và học tập, bạn có thể chọn instance type t2.micro thuộc gói Free Tier của AWS.
- Chọn instance type bạn muốn và nhấp vào nút Next: Configure Instance Details.
Bước 7: Cấu hình Instance: Trang này cho phép bạn cấu hình các tùy chọn chi tiết cho instance của mình. Đối với người mới bắt đầu, bạn có thể giữ nguyên các cài đặt mặc định trong hầu hết các trường hợp. Tuy nhiên, hãy lưu ý một số tùy chọn sau:
- Network: Chọn VPC (Virtual Private Cloud) mà bạn muốn instance của mình thuộc về. Nếu bạn chưa có VPC tùy chỉnh, bạn có thể sử dụng VPC mặc định.
- Subnet: Chọn subnet trong VPC mà bạn muốn instance của mình được khởi chạy. Tương tự như Network, bạn có thể sử dụng subnet mặc định nếu không chắc chắn.
- Auto-assign Public IP: Đảm bảo tùy chọn này được đặt thành Enable nếu bạn muốn instance của mình có địa chỉ IP công khai để có thể truy cập từ internet.
- Các tùy chọn khác như IAM role, Shutdown behavior, và User data có thể được cấu hình sau này nếu cần.
- Nhấp vào nút Next: Add Storage.
Bước 8: Thêm Storage: Trang này cho phép bạn cấu hình dung lượng và loại storage cho instance của mình.
- Theo mặc định, instance sẽ có một root volume. Bạn có thể thay đổi kích thước của volume này nếu cần.
- AWS cung cấp nhiều loại volume khác nhau (ví dụ: General Purpose SSD, Provisioned IOPS SSD). Đối với hầu hết các trường hợp, General Purpose SSD (gp2 hoặc gp3) là phù hợp.
- Bạn có thể thêm các volume bổ sung bằng cách nhấp vào nút Add New Volume.
- Nhấp vào nút Next: Add Tags.
Bước 9: Thêm Tags: Tags là các cặp key-value mà bạn có thể gán cho instance của mình để giúp bạn quản lý và tổ chức các tài nguyên AWS dễ dàng hơn.
- Bạn có thể thêm một tag bằng cách nhập key (ví dụ: “Name”) và value (ví dụ: “MyFirstEC2”).
- Nhấp vào nút Next: Configure Security Group.
Bước 10: Cấu hình Security Group: Security Group hoạt động như một tường lửa ảo cho instance của bạn, kiểm soát lưu lượng truy cập đến và đi khỏi instance.
- Bạn có thể chọn một security group hiện có hoặc tạo một security group mới.
- Cho phép lưu lượng truy cập port 22 để cho phép kết nối SSH.
- (Tùy chọn) Nếu bạn dự định chạy các dịch vụ web trên instance của mình, bạn có thể thêm các rule cho phép lưu lượng truy cập HTTP (port 80) và HTTPS (port 443).
- Nhấp vào nút Review and Launch.
Bước 11: Review and Launch: Trang này hiển thị tóm tắt cấu hình instance của bạn. Hãy kiểm tra kỹ các cài đặt trước khi tiếp tục.
- Nếu bạn cần thay đổi bất kỳ cài đặt nào, hãy nhấp vào liên kết Edit tương ứng.
- Khi bạn đã sẵn sàng, nhấp vào nút Launch.
Bước 12: Chọn hoặc tạo Key Pair: Một key pair bao gồm một public key mà AWS lưu trữ và một private key mà bạn giữ. Bạn sẽ sử dụng private key để kết nối an toàn đến instance của mình bằng SSH.
- Bạn có thể chọn một key pair hiện có từ menu dropdown Select an existing key pair.
- Nếu bạn chưa có key pair, hãy chọn Create a new key pair. Nhập tên cho key pair của bạn (ví dụ: “my-first-key-pair”) và nhấp vào nút Download Key Pair.
- Đánh dấu vào ô xác nhận rằng bạn đã tải xuống và lưu trữ private key của mình.
Lưu ý: Lưu trữ file private key (.pem
file) ở một vị trí an toàn trên máy tính của bạn. Bạn sẽ cần file này để kết nối đến instance của mình. AWS sẽ không lưu trữ bản sao của private key cho bạn.
- Nhấp vào nút Launch Instances.
Sau khi bạn nhấp vào Launch Instances, AWS sẽ bắt đầu quá trình tạo instance của bạn. Mất vài phút để instance khởi tạo.
Sau khi instance của bạn ở trạng thái “running”, bạn đã hoàn thành việc tạo EC2 Instance trên AWS.
Cách kết nối EC2 Instance đến VPS
Bước 1: Mở SSH client trên VPS của bạn
- Mở cửa sổ Terminal trên macOS/Linux hoặc sử dụng OpenSSH trên Windows.
Bước 2: Xác định vị trí file private key
- Xác định vị trí file private key (
.pem
file) đã lưu của bạn. - Lưu ý: Đảm bảo key của bạn không công khai. Sử dụng câu lệnh sau nếu cần thiết:
chmod 400 /path/to/your/key.pem
- Thay thế
/path/to/your/key.pem
bằng đường dẫn file private key đã lưu của bạn.
- Thay thế
Bước 3: Kết nối đến EC2 Instance
- Sử dụng câu lệnh:
ssh -i "/path/to/your/key.pem" instance-user-name@your-instance-public-dns-name
- Thay thế
instance-user-name
bằng tên người dùng của instance. Tên người dùng mặc định tùy thuộc vào AMI mà bạn đã chọn:- Amazon Linux:
ec2-user
- CentOS:
ec2-user
hoặccentos
- Debian:
admin
- Fedora:
ec2-user
hoặcfedora
- RHEL:
ec2-user
hoặcroot
- SUSE:
ec2-user
hoặcroot
- Ubuntu:
ubuntu
- Oracle:
ec2-user
- Bitnami:
bitnami
- Rocky Linux:
rocky
- Other: Kiểm tra với nhà cung cấp AMI
- Amazon Linux:
- Thay thế
your-instance-public-dns-name
bằng tên DNS công khai của EC2 Instance. Bạn có thể tìm thấy tên DNS này trong trang quản lý EC2 trên AWS Management Console.
- Thay thế
- (IPv6) Ngoài ra, nếu instance của bạn có địa chỉ IPv6, bạn có thể sử dụng lệnh sau:
ssh -i "/path/to/your/key.pem" instance-user-name@your-instance-IPv6-address
- Thay thế
your-instance-IPv6-address
bằng địa chỉ IPv6 của EC2 Instance. Bạn có thể tìm thấy địa chỉ này trong trang quản lý EC2 trên AWS Management Console.
- Thay thế
- Mẹo: Bạn có thể sao chép câu lệnh SSH có sẵn từ AWS Management Console. Chọn instance của bạn trong tab Instances, chọn Connect từ menu Actions. Trong hộp thoại Connect to instance, chuyển đến tab SSH client. Bạn có thể sao chép câu lệnh mẫu từ đó và điều chỉnh đường dẫn đến private key cho phù hợp với vị trí trên thiết bị của bạn.
Bước 4: Xác minh kết nối thành công
- Sau khi kết nối thành công, bạn sẽ thấy một response tương tự như sau:
Warning: Permanently added 'your-instance-public-dns-name' (ECDSA) to the list of known hosts.
Lưu ý về bảo mật
Khi kết nối EC2 và VPS, việc đảm bảo bảo mật là vô cùng quan trọng để tránh các rủi ro về dữ liệu và hệ thống. Dưới đây là một số lưu ý bạn cần xem xét:
- Quản lý Key SSH:
- Không chia sẻ key: File
.pem
chứa private key của EC2 không được chia sẻ với bất kỳ ai. Nếu cần cung cấp quyền truy cập, bạn nên tạo một key pair riêng cho từng người dùng. - Bảo vệ key: Đảm bảo rằng file
.pem
được lưu trữ an toàn trên máy của bạn, với quyền truy cập hạn chế.
- Không chia sẻ key: File
- Cấu hình Security Group:
- Chỉ mở cổng cần thiết: Trong AWS Security Group, mở cổng 22 (SSH) và giới hạn quyền truy cập chỉ từ IP của VPS hoặc máy tính của bạn.
- Hạn chế quyền truy cập từ toàn thế giới (0.0.0.0/0): Tránh mở quyền truy cập SSH từ mọi địa chỉ IP để ngăn chặn các cuộc tấn công từ bên ngoài.
- Sử dụng VPN hoặc Tunneling:
- Cân nhắc thiết lập kết nối qua VPN hoặc SSH tunneling để mã hóa dữ liệu trong quá trình truyền giữa VPS và EC2, giúp giảm nguy cơ bị nghe lén.
- Firewall trên VPS:
- Kiểm tra và cấu hình firewall trên VPS để đảm bảo rằng chỉ các kết nối hợp lệ được phép vào và ra. Mặc dù AWS cung cấp các biện pháp bảo mật, việc cấu hình firewall trên VPS có thể cung cấp thêm một lớp kiểm soát đối với các kết nối đến từ EC2 Instance.
- Cập nhật phần mềm và hệ thống:
- Thường xuyên cập nhật hệ điều hành và phần mềm trên cả VPS và EC2 để vá các lỗ hổng bảo mật mới nhất.
- Theo dõi Log:
- Thiết lập theo dõi log hệ thống trên cả VPS và EC2 để phát hiện sớm các hành vi bất thường hoặc các nỗ lực truy cập trái phép.
Kết luận
Như vậy, bạn đã hoàn thành các bước để tạo EC2 Instance trên AWS và thiết lập kết nối SSH an toàn từ VPS. Hướng dẫn này đã cung cấp lộ trình chi tiết từ khởi tạo máy chủ ảo đến thiết lập kênh liên lạc bảo mật. Với kết nối linh hoạt này, nhà phát triển và quản trị hệ thống có thể tận dụng sức mạnh tổng hợp của EC2 và VPS để tối ưu hóa hiệu suất, xây dựng giải pháp phức tạp và đáp ứng yêu cầu ứng dụng hiện đại. Hy vọng kiến thức này sẽ là nền tảng để bạn tiếp tục khám phá điện toán đám mây.