Quản lý VPC và các tài nguyên khác như Subnet, Route Table, Internet Gateway từ terminal bằng aws-cli có thể hơi khó hiểu nếu bạn không giỏi về VPC. Trong bài viết này, chúng ta sẽ tạo một VPC với 2 Subnet, Route Table và Internet Gateway, các subnet này sẽ là các subnet công khai. Sau khi VPC được tạo, chúng ta sẽ thử kết nối với EC2 instance được tạo trong VPC này. Mục đích của bài viết này là giới thiệu cho bạn các lệnh được sử dụng để quản lý VPC từ terminal.
Trước tiên, bạn nên hiểu thật rõ về VPC, trọng tâm của bài viết này không phải là giải thích về VPC. Để biết các thao tác có thể thực hiện trên VPC, hãy truy cập tài liệu chính thức tại đây.
Nếu bạn thực thi lệnh sau, bạn sẽ nhận được lỗi vì bạn chưa cấu hình quyền truy cập vào tài khoản AWS của mình trong thiết bị đầu cuối.
Xuất quyền truy cập người dùng AWS IAM và khóa bí mật trên thiết bị đầu cuối của bạn bằng các lệnh sau.
Lần này, bạn có thể kiểm tra danh tính của mình bằng cách thực hiện lệnh sau
Lưu ý VpcId trong ảnh chụp màn hình ở trên. Bạn sẽ thấy một VpcId khác trong đầu ra của mình. Ghi lại VpcId, chúng ta sẽ cần nó ở các bước tiếp theo.
Để mô tả tất cả các VPC từ vùng hiện tại của bạn, hãy thực hiện lệnh sau.
Bằng cách chỉ định VpcId, bạn có thể mô tả VPC cụ thể
Bây giờ, hãy tạo 2 Mạng con trong VPC mà chúng ta đã tạo. Tại đây, cả hai Subnet phải có các khối CIDR duy nhất trong VPC.
Để làm cho các subnet trở thành Công khai, chúng ta cần tạo một Cổng Internet
Gắn Cổng Internet với VPC mà chúng ta đã tạo trước đó.
Bây giờ, chúng ta hãy tạo một Bảng định tuyến.
Liên kết Bảng định tuyến với cả hai Mạng con
Việc tạo một Tuyến đường từ bảng Tuyến đường đến Cổng Internet sẽ làm cho các Mạng con được liên kết với Bảng Tuyến đường trở thành công khai
Bây giờ chúng ta có một VPC với 2 Mạng con, 1 Bảng định tuyến và một tuyến từ Bảng định tuyến đến Cổng Internet.
Nếu chúng ta tạo một phiên bản EC2 trong VPC này và bất kỳ Mạng con nào, phiên bản đó sẽ có thể truy cập công khai từ Internet. Tham khảo tài liệu được đề cập trong điều kiện tiên quyết để tìm hiểu cách tạo phiên bản Ubuntu EC2. Khi tạo phiên bản, hãy chỉ định VPC mà chúng ta vừa tạo.
Trước tiên, bạn nên hiểu thật rõ về VPC, trọng tâm của bài viết này không phải là giải thích về VPC. Để biết các thao tác có thể thực hiện trên VPC, hãy truy cập tài liệu chính thức tại đây.
Điều kiện tiên quyết
- Tài khoản AWS (Tạo nếu bạn chưa có).
- Hiểu biết cơ bản về VPC (Nhấp vào đây để tìm hiểu cách tạo VPC từ Bảng điều khiển AWS).
- Người dùng AWS IAM cóChính sách AmazonVPCFullAccessđược đính kèm vào chính sách này cùng với khóa truy cập và khóa bí mật của chính sách (Nhấp vào đây để tìm hiểu cách tạo Người dùng IAM).
- AWS CLI được cài đặt trên máy cục bộ của bạn.
- Hiểu biết cơ bản về EC2 Instance (Nhấp vào đây để tìm hiểu cách tạo Ubuntu EC2 Instance)
Chúng ta sẽ làm gì?
- Kiểm tra aws cli và xuất AWSaccess & khóa bí mật trên máy cục bộ của bạn.
- Quản lý VPC bằng aws cli.
Kiểm tra aws cli và xuất aws access & khóa bí mật trên máy cục bộ của bạn.
Nếu bạn không cài đặt tiện ích aws-cli trên máy của mình, hãy tham khảo tài liệu chính thức tại đây để cài đặt tiện ích này trên máy cục bộ của bạn, sau đó kiểm tra phiên bản của tiện ích này bằng lệnh sau.
Mã:
aws --version
Mã:
aws sts get-caller-identity
Mã:
export AWS_ACCESS_KEY_ID=
Mã:
export AWS_SECRET_ACCESS_KEY=
Mã:
aws sts get-caller-identity
Quản lý VPC bằng aws-cli
Tạo VPC bằng lệnh sau, lệnh này sẽ không tạo VPC mặc định. 10.0.0.0/16 sẽ là CIDR cho VPC sẽ được tạo. Bạn có thể chỉ định CIDR hợp lệ theo lựa chọn và yêu cầu của mình.
Mã:
aws ec2 create-vpc --cidr-block 10.0.0.0/16
Lưu ý VpcId trong ảnh chụp màn hình ở trên. Bạn sẽ thấy một VpcId khác trong đầu ra của mình. Ghi lại VpcId, chúng ta sẽ cần nó ở các bước tiếp theo.
Để mô tả tất cả các VPC từ vùng hiện tại của bạn, hãy thực hiện lệnh sau.
Mã:
aws ec2 describe-vpcs
Mã:
aws ec2 describe-vpcs --vpc-ids vpc-03c4278f3b75efd77
Mã:
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.1.0/24
Mã:
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.2.0/24
Để làm cho các subnet trở thành Công khai, chúng ta cần tạo một Cổng Internet
Mã:
aws ec2 create-internet-gateway
Mã:
aws ec2 attach-internet-gateway --internet-gateway-id igw-04f1e4f13f92599c3 --vpc-id vpc-03c4278f3b75efd77
Bây giờ, chúng ta hãy tạo một Bảng định tuyến.
Mã:
aws ec2 create-route-table --vpc-id vpc-03c4278f3b75efd77
Mã:
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0748ef7a26aefc7cc
Mã:
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0375b656eb64962e8
Việc tạo một Tuyến đường từ bảng Tuyến đường đến Cổng Internet sẽ làm cho các Mạng con được liên kết với Bảng Tuyến đường trở thành công khai
Mã:
aws ec2 create-route --route-table-id rtb-0878d652f460dbf50 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-04f1e4f13f92599c3
Bây giờ chúng ta có một VPC với 2 Mạng con, 1 Bảng định tuyến và một tuyến từ Bảng định tuyến đến Cổng Internet.
Nếu chúng ta tạo một phiên bản EC2 trong VPC này và bất kỳ Mạng con nào, phiên bản đó sẽ có thể truy cập công khai từ Internet. Tham khảo tài liệu được đề cập trong điều kiện tiên quyết để tìm hiểu cách tạo phiên bản Ubuntu EC2. Khi tạo phiên bản, hãy chỉ định VPC mà chúng ta vừa tạo.
Mã:
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep VpcId
Mã:
aws ec2 mô tả các trường hợp --instance-ids i-079acfea39b6ad2c9 | grep SubnetId
Mã:
aws ec2 mô tả các trường hợp --instance-ids i-079acfea39b6ad2c9 | grep PublicIpAddress
Mã:
ssh -i ~/Downloads/aws-cli.pem [emailprotected]