Cách tạo VPC bằng Python Boto3 trên Ubuntu

theanh

Administrator
Nhân viên
Boto3 là Amazon Web Services (AWS) SDK dành cho Python. Đây là thư viện Python cho phép người dùng hoặc nhà phát triển tạo, cấu hình và quản lý các dịch vụ và tài nguyên AWS. Boto3 cung cấp API cho các dịch vụ AWS có thể được sử dụng để quản lý các dịch vụ và tài nguyên AWS như EC2, RDS, S3, v.v.

Để tìm hiểu thêm về Boto3, bạn có thể truy cập trang web chính thức của nó tại đây.

Trước khi tiếp tục, tôi cho rằng bạn đã quen thuộc với VPC. Nếu chưa, bạn có thể nhấp vào đây để tìm hiểu cách tạo VPC từ bảng điều khiển AWS.

Trong bài viết này, chúng ta sẽ xem cách cài đặt thư viện Boto3 và sử dụng nó để tạo một VPC đơn giản cùng với các thành phần phụ thuộc của nó trong AWS. Chúng tôi sẽ tạo một mạng con công khai trong VPC.

Điều kiện tiên quyết​

  1. Tài khoản AWS (Tạo nếu bạn chưa có)
  2. Hiểu biết cơ bản về VPC
  3. Hiểu biết cơ bản về Python
  4. Python có sẵn trên hệ thống

Những gì chúng ta sẽ làm​

  1. Cài đặt Boto3
  2. Biết phương pháp cần thiết
  3. Tạo VPC bằng Python Boto3

Cài đặt Boto3​

Python mặc định có trong Ubuntu 18.04 Server, vì vậy bạn không cần phải cài đặt nó.

Để kiểm tra phiên bản Python trên hệ thống của bạn, hãy sử dụng lệnh sau.

which python/usr/bin/python --version

HOẶC

python --version



Nếu bạn không có pip và đang sử dụng Ubuntu 18.04, hãy thực hiện lệnh sau để cập nhật kho lưu trữ cục bộ trước.

sudo apt update



Để cài đặt pip, hãy sử dụng lệnh sau

sudo apt install python-pip



Để kiểm tra phiên bản Pip đã cài đặt, hãy thực hiện lệnh sau.

pip --version



Sau khi bạn có python và pip, bạn có thể cài đặt Boto3.

Cài đặt Boto3 rất đơn giản và dễ dàng. Để cài đặt Boto3, hãy sử dụng lệnh sau.

pip install boto3

Để kiểm tra xem Boto3 đã được cài đặt chưa và để kiểm tra phiên bản của nó, hãy thực hiện lệnh sau.

pip show boto3





Biết các phương pháp cần thiết​

Để tạo VPC và các thành phần phụ thuộc của nó, chúng ta sẽ sử dụng các phương pháp sau.
  1. create_vpc
  2. create_route_table
  3. create_internet_gateway
  4. create_subnet
  5. associate_with_subnet
Bây giờ, chúng ta hãy xem các phương thức với danh sách các tham số được chấp nhận của chúng. Chúng ta sẽ không sử dụng tất cả các tham số nhưng bạn có thể thử nếu muốn.

Cú pháp yêu cầu của phương thức create_vpc
Mã:
phản hồi = máy khách.create_vpc( CidrBlock='chuỗi', AmazonProvidedIpv6CidrBlock=Đúng|Sai, Ipv6Pool='chuỗi', Ipv6CidrBlock='chuỗi', DryRun=Đúng|Sai, InstanceTenancy='mặc định'|'chuyên dụng'|'máy chủ', Ipv6CidrBlockNetworkBorderGroup='chuỗi')
  1. CidrBlock:Phạm vi mạng IPv4 cho VPC, theo ký hiệu CIDR. Đây là trường bắt buộc và không thể tạo VPC nếu không có trường này.


Cú pháp yêu cầu củaphương thứccreate_route_table
Mã:
route_table = ec2.create_route_table( DryRun=True|False, VpcId='string')
  1. VpcId:ID của VPC. Đây là trường bắt buộc và được sử dụng để tạo Bảng định tuyến trong VPC được chỉ định


Cú pháp yêu cầu củaphương thứccreate_internet_gateway
Mã:
phản hồi = máy khách.create_internet_gateway( DryRun=Đúng|Sai)[B]
Mỗi VPC có một Cổng Internet duy nhất. Điều này sẽ được đính kèm với VPC



Cú pháp yêu cầu của phương thức create_subnet
Mã:
mạng con = ec2.create_subnet( AvailabilityZone='string', AvailabilityZoneId='string', CidrBlock='chuỗi', Ipv6CidrBlock='chuỗi', OutpostArn='chuỗi', VpcId='chuỗi', DryRun=Đúng|Sai)
  1. CidrBlock: Phạm vi mạng IPv4 cho mạng con, theo ký hiệu CIDR. Điều này được sử dụng để chia nhỏ VPC.
  2. VpcId: ID của VPC.


Cú pháp yêu cầu củaassociate_with_subnetmethod
Mã:
route_table_association = route_table.associate_with_subnet( DryRun=True|False, SubnetId='string', GatewayId='string')
  1. SubnetId:ID của mạng con.
    Hoặc
  2. GatewayId:ID của cổng internet hoặc cổng riêng ảo.
Để tạo VPC, hãy tạo "vpc.py" với khối mã sau.

Đảm bảo bạn thay đổi giá trị của "aws_access_key_id_value" và "aws_secret_access_key_value" bằng access_key_id và access_key_value của riêng bạn. Ngoài ra, hãy thay đổi giá trị của "region_name".

Nếu muốn, bạn có thể thay đổi giá trị của CidrBlock cho "create_vpc" và "create_subnet" hoặc bạn có thể giữ nguyên.

vim vpc.py[/b]
Mã:
import boto3ec2 = boto3.resource('ec2', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT', aws_secret_access_key='KHÓA-BÍ MẬT-CỦA-TÀI-HOÀN-CHÍNH-AWS', region_name='Khu-vực-AWS')vpc = ec2.create_vpc(CidrBlock='192.168.0.0/16')# Gán tên cho VPCvpc.create_tags(Tags=[{"Key": "Name", "Value": "my_vpc"}])vpc.wait_until_available()print(vpc.id)# Tạo và đính kèm Cổng Internetig = ec2.create_internet_gateway()vpc.attach_internet_gateway(InternetGatewayId=ig.id)print(ig.id)# Tạo bảng định tuyến và tuyến công khai đến Cổng Internetroute_table = vpc.create_route_table()route = route_table.create_route( DestinationCidrBlock='0.0.0.0/0', GatewayId=ig.id)print(route_table.id)# Tạo một mạng consubnet = ec2.create_subnet(CidrBlock='192.168.1.0/24', VpcId=vpc.id)print(subnet.id)# liên kết bảng định tuyến với mạng conroute_table.associate_with_subnet(SubnetId=subnet.id)[B]
Bây giờ, để tạo một VPC với cấu hình được chỉ định ở trên, hãy thực thi pythonscript bằng lệnh sau.

python vpc.py

Bạn có thể xác minh xem VPC đã được tạo từ AWS Console chưa.



Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng VPC có CIDR và Tên đã chỉ định đã được tạo. Bạn có thể kiểm tra các thành phần như Subnet, Internet Gateway, Route Table.

Kết luận
[/b]​

Trong bài viết này, chúng ta đã thấy cách tạo VPC với Public Subnet. Chúng ta đã tạo một Route Table, Internet Gateway, Subnet trong VPC. Chúng ta đã thấy cách một subnet có thể được liên kết với Route Table có một tuyến Public đến một Internet Gateway. Bây giờ bạn có thể tùy chỉnh mã này và tạo một VPC với nhiều subnet, liên kết chúng với Route Table và có các Subnet Công khai hoặc Riêng tư theo yêu cầu của bạn. Để tạo một Subnet Riêng tư, bạn sẽ cần tạo một Nat Gateway và liên kết nó với Subnet. Sự kết hợp này sau đó sẽ biến Mạng con thành Riêng tư với kết nối đi ra Internet.
 
Back
Bên trên