こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
プライベートでになりますが、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で管理しています。