こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
プライベートでになりますが、AWSを近々で教える予定があります。
その方はAWSを学んだ後Python/Djangoを学ぶようなので、Django環境を徐々に拡張していくような形でAWSを学べれば良いかなと思い準備をしています。
この記事はその準備をしているものになります。
他の記事は以下の記事で別途管理しております為、適宜ご覧ください。
今回構築するAWS環境
初回なので本当に簡単な環境です。Djangoもインストールしません。
TokyoリージョンにVPCとsubnetを設定します。
その後Internet GatewayをVPCにアタッチし、RouteTableを整えます。
EC2用のSecurityGroupを作成し、併せてEC2をデプロイ。最後にEC2からインターネットに接続出来るかを確認していきます。

今後RDS→ELB(ALB)→CloudFrontの順で本環境にデプロイしていき、環境をそれっぽくしていく予定です。
また、Route53やACM,Cloud9,ECS,Lambda,CloudFormation周りも組み込んでいけると良いのかなぁと思っています。
環境構築
VPCのデプロイ
AWS管理コンソールからVPCの管理画面に遷移して、以下の設定値を入れます。
VPC名はclassact-vpcとし、CIDRは192.168.0.0/16としました。

作成出来たことを確認します。

subnetの設定
同じくVPCの管理画面に遷移してサブネットの作成画面を開きます。
subnetを作成するVPCは上記で作成したVPCを指定します。subnet名をclassact-public-subnet01とし、CIDRを192.168.1.0/24としました。

正常に作成出来たことを確認します。

Internet Gatewayを作成しVPCにアタッチする
VPCの管理画面に遷移してインターネットゲートウェイの作成画面を開きます。
名前をclassact-igwとして作成を実行します。

作成出来たことを確認します。画面右上にあるアクションからVPCにアタッチを押下します。

最初に作成したVPCを選択し、アタッチを実行します。

VPC IDのところにVPCが記載されていることを確認します。

RouteTableの作成と設定
VPCの管理画面に遷移してルートテーブルの作成画面を開きます。
名前をclassct-rtとして、VPCはこのルートテーブルを配置するVPCを指定します。

作成出来ていることを確認します。
画面下のルートタブを押下し、ルートを編集を押下します。

一番上のものはデフォルトで作成されており、消せないものになります。これはVPC内のサービス(ex.EC2等)同士で通信する際に使用するものです。
このテーブルにインターネットに抜けるための設定を追記していきます。
0.0.0.0/0(全てのアドレス)を記入し、ターゲットをVPCにアタッチしたInternet Gatewayを指定します。

作成出来たことを確認します。画面のようにメインにいいえが付いている場合、右上のアクションタブからメインルートテーブルを選択します。
※同じ手順ならいいえとなっていると思います。

設定と入力しOKを押下します。

VPCの画面からリソースマップタブを押下し、サブネットが上記でメインにしたルートテーブルに紐づいていることを確認します。また、ルートテーブルからVPCにアタッチしたInternet Gatewayにも紐づていることを確認します。

SecurityGroupを作成
EC2にアタッチするSecurityGroupを作成します。
EC2の管理画面からSecurityGroupの作成画面を開きます。SSHとICMP,HTTPのInboundを開放します。Outboundは全て開放します。

作成出来ていることを確認します。

EC2のデプロイ
EC2をデプロイしていきます。名前をclassact-ec2-djangoとし、OSをubuntu22.04にしています。
ネットワーク設定で今まで作成したVPCとsubnet、SecurityGroupを指定します。またパブリックIPは有効化とします。

デプロイ出来たことを確認します。

EC2にログインし、インターネットに接続できることを確認する
上記で作成したEC2にチェックマークを付けて、画面右上にある接続を押下します。

デフォルトの設定のまま接続を押下します。

EC2をCUIで操作が可能です。ping google.comと実行し下記の様になれば、作成したネットワークが正常に稼働し、インターネットに抜けていることがわかります。

オマケ CloudFormationを使ったデプロイとyaml
以下の記事でCloudFormationを使ったデプロイ手順を書いております。
適宜ご覧ください。
CloudFormationで使うyamlは以下GitHubで管理しています。