ウェブサイト検索

UbuntuでPython Boto3を使用してVPCを作成する方法


UbuntuでPython Boto3を使用してVPCを作成する方法

このページで

  1. 前提条件
  2. 私たちが何をするか
  3. Boto3をインストールする
  4. 必要な方法を知っておく

Boto3は、Amazon Web Services(AWS)のPython用SDKです。これは、ユーザーや開発者がAWSサービスやリソースを作成、構成、管理することを可能にするPythonライブラリです。Boto3は、EC2、RDS、S3などのAWSサービスやリソースを管理するために使用できるAWSサービス向けのAPIを提供します。

Boto3について詳しく学ぶには、こちらの公式サイトを訪れることができます。

続ける前に、あなたがVPCについて知っていると仮定します。もし知らない場合は、こちらをクリックしてAWSコンソールからVPCを作成する方法を学んでください。

この記事では、Boto3ライブラリをインストールし、それを使用してAWSでシンプルなVPCとその依存コンポーネントを作成する方法を見ていきます。VPC内にパブリックサブネットを作成します。

前提条件

  1. VPCの基本的な理解
  2. Pythonの基本的な理解
  3. システムにインストールされたPython

私たちが何をするか

    Boto3をインストールする

    PythonはUbuntu 18.04 Serverにデフォルトで含まれているため、インストールする必要はありません。

    システムでPythonのバージョンを確認するには、次のコマンドを使用してください。

    どのPython
    /usr/bin/python --version

    または

    python --バージョン

    pipがインストールされていない場合、Ubuntu 18.04を使用しているなら、まずローカルリポジトリを更新するために以下のコマンドを実行してください。

    sudo apt 更新

    pipをインストールするには、次のコマンドを使用してください。

    sudo apt install python-pip

    インストールされているPipのバージョンを確認するには、次のコマンドを実行します。

    pip --バージョン

    Pythonとpipをインストールしたら、Boto3をインストールできます。

    Boto3のインストールは非常に簡単です。Boto3をインストールするには、次のコマンドを使用してください。

    pip install boto3

    Boto3がインストールされているかどうか、またそのバージョンを確認するには、次のコマンドを実行してください。

    pip show boto3


    必要な方法を知っておく

    VPCとその依存コンポーネントを作成するために、以下の方法を使用します。

    1. ルートテーブルを作成する
    2. インターネットゲートウェイを作成する
    3. サブネットを作成する
    4. サブネットに関連付ける

    さあ、使えるパラメーターのリストとともにメソッドを見てみましょう。すべてのパラメーターを使用するわけではありませんが、試してみたい場合はどうぞ。

    create_vpc メソッドのリクエスト構文

    response = client.create_vpc(
        CidrBlock='string',
        AmazonProvidedIpv6CidrBlock=True|False,
        Ipv6Pool='string',
        Ipv6CidrBlock='string',
        DryRun=True|False,
        InstanceTenancy='default'|'dedicated'|'host',
        Ipv6CidrBlockNetworkBorderGroup='string'
    )
    1. CIDRブロック: VPCのIPv4ネットワーク範囲で、CIDR表記で示されます。これは必須のフィールドであり、これがないとVPCを作成することはできません。

    create_route_table メソッドのリクエスト構文

    route_table = ec2.create_route_table(
        DryRun=True|False,
        VpcId='string'
    )
    1. VpcId: VPCのIDです。これは必須フィールドで、指定されたVPC内にルートテーブルを作成するために使用されます。

    create_internet_gatewayメソッドのリクエスト構文

    response = client.create_internet_gateway(
        DryRun=True|False
    )
    

    すべてのVPCには単一のインターネットゲートウェイがあります。これはVPCに接続されます。

    create_subnet メソッドのリクエスト構文

    subnet = ec2.create_subnet(
        AvailabilityZone='string',
        AvailabilityZoneId='string',
        CidrBlock='string',
        Ipv6CidrBlock='string',
        OutpostArn='string',
        VpcId='string',
        DryRun=True|False
    )
    1. CidrBlock サブネットのIPv4ネットワーク範囲、CIDR表記で。これはVPCを分割するために使用されます。
    2. VpcId: VPCのID。

    associate_with_subnet メソッドのリクエスト構文

    route_table_association = route_table.associate_with_subnet(
        DryRun=True|False,
        SubnetId='string',
        GatewayId='string'
    )
    1. サブネットID: サブネットのID。
      または
    2. ゲートウェイID: インターネットゲートウェイまたは仮想プライベートゲートウェイのID。

    Python Boto3を使用してVPCを作成する

    VPCを作成するには、次のコードブロックを使用して「vpc.py」を作成します。

    「aws_access_key_id_value」と「aws_secret_access_key_value」の値をそれぞれ自分のアクセスキーIDとアクセスキー値に変更してください。また、「region_name」の値も変更してください。

    望むなら、「create_vpc」と「create_subnet」のCidrBlockの値を変更することができますし、そのままでも構いません。

    vim vpc.py

    import boto3
    
    ec2 = boto3.resource('ec2', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT',
                         aws_secret_access_key='SECRETE-KEY-OF-THE-AWS-ACCOUNT',
                         region_name='AWS-Region')
    
    vpc = ec2.create_vpc(CidrBlock='192.168.0.0/16')
    Assign a name to the VPC
    vpc.create_tags(Tags=[{"Key": "Name", "Value": "my_vpc"}])
    vpc.wait_until_available()
    print(vpc.id)
    
    Create and Attach the Internet Gateway
    ig = ec2.create_internet_gateway()
    vpc.attach_internet_gateway(InternetGatewayId=ig.id)
    print(ig.id)
    
    Create a route table and a public route to Internet Gateway
    route_table = vpc.create_route_table()
    route = route_table.create_route(
        DestinationCidrBlock='0.0.0.0/0',
        GatewayId=ig.id
    )
    print(route_table.id)
    
    Create a Subnet
    subnet = ec2.create_subnet(CidrBlock='192.168.1.0/24', VpcId=vpc.id)
    print(subnet.id)
    
    associate the route table with the subnet
    route_table.associate_with_subnet(SubnetId=subnet.id)
    

    では、上記の指定された構成でVPCを作成するために、以下のコマンドを使用してpythonスクリプトを実行します。

    python vpc.py

    AWSコンソールからVPCが作成されたかどうかを確認できます。

    上記のスクリーンショットでは、指定されたCIDRと名前のVPCが作成されたことがわかります。サブネット、インターネットゲートウェイ、ルートテーブルなどのコンポーネントを確認できます。

    結論

    この記事では、パブリックサブネットを持つVPCを作成する方法を見ました。ルートテーブル、インターネットゲートウェイ、VPC内のサブネットを作成しました。また、サブネットがインターネットゲートウェイへのパブリックルートを持つルートテーブルに関連付けられる方法も確認しました。これで、このコードをカスタマイズして、複数のサブネットを持つVPCを作成し、ルートテーブルに関連付けて、必要に応じてパブリックまたはプライベートサブネットを持つことができます。プライベートサブネットを作成するには、NATゲートウェイを作成し、それをサブネットに関連付ける必要があります。この関連付けによって、サブネットはプライベートになり、インターネットへの送信接続が確立されます。

    関連記事: