Open1

【AWS】VPC から作る EC2 構築ハンズオン

ひやんが / hiyangerひやんが / hiyanger

コンソールログイン

①One-time email passcode
Emailへ自分のアドレスを入力→Send passcode
メールに届いたパスコードを貼り付け→sign in

②Review and join
I agree with the Terms and ConditionsにチェックしてJoinevent

③左ペインAWS account access
Open AWS console (us-east-1)

④リージョンを東京に変更

1. VPC

概要

  • インターネットとは切り離された、ネットワーク空間を作る
  • CIDR10.0.0.0/16は10.0.0.0〜10.0.255.255(65536こ)

手順

サービス→VPC→VPC→VPCを作成
名前:my-vpc-20241213
IPv4 CIDR 10.0.0.0/16
→VPCを作成

2. サブネット

概要

  • VPC内に作るネットワークの区画(部屋)。ネットワークをわけることでセキュリティや運用(どこで何がおきたかをきりわけやすい)を効率化することができる。

  • 10.0.1.0/24 ネットワーク内に属するアドレスは、10.0.1.0 から 10.0.1.255 までの256個

手順

サービス→VPC→サブネット→サブネットを作成
VPC ID →1.で作成したVPCを選択
サブネット名:my-pub-subnet-20241213
AZ:ap-northeast-1a
IPv4 サブネット CIDR ブロック:10.0.1.0/24
→サブネットを作成

3. インターネットゲートウェイ

概要

VPCにおけるインターネットとの出入り口

手順

サービス→VPC→インターネットゲートウェイ→インターネットゲートウェイの作成
名前:my-internet-gateway-20241213
→インターネットゲートウェイを作成
※ここで作成されたインターネットゲートウェイ IDを記録しておく

アクション→VPCにアタッチ
1.で作成したVPCを選択→インターネットゲートウェイのアタッチ

4. ルートテーブル

概要

  • VPC、サブネット、IGWはおいただけはつながらないので経路を作成する
  • 送信先 0.0.0.0/0は外部インターネットへの経路
  • サブネットの関連づけ 明確に経由するサブネットを指定する

手順

サービス→VPC→ルートテーブル→ルートテーブルの作成
名前:my-route-table-20241213
VPC:1.で作成したVPCを選択
→ルートテーブルを作成

作成したルートテーブルを選択→ルート→ルートを編集
ルートを追加:送信先 0.0.0.0/0
ターゲット:インターネットゲートウェイ / 3.で作成したIGWを選択
→変更を保存

サブネットの関連づけ
サブネットの関連付けを編集
2.で作成したサブネットを選択
→関連付けを保存

※ここでVPCからリソースマップをみると
サブネットからIGWが正しく接続されているかがわかる

5. セキュリティグループ

概要

  • インターネットのアクセスを制限する(ファイアウォール)
  • インバウンド httpのアクセスをどのIPからも許可

手順

サービス→VPC→セキュリティグループ→セキュリティグループの作成
セキュリティグループ名:MySecurityGroup20241213
説明::MySecurityGroup20241213
VPC:1.で作成したVPCを選択
インバウンドルール タイプ:http ソースIP:0.0.0.0/0 ※全開放なので、実際に設定するときは注意する

6. EC2作成

概要

  • AL AWS専用のOS(Fedraベース)
  • ユーザーデータ EC2起動時にスクリプトを仕込める
    ここではアクセスのため、Apachとhtmlを設定

手順

サービス→EC2→インスタンス→インスタンスを起動
名前:MyWebServer-20241213
マシンイメージ:デフォルト(AL2023)
インスタンスタイプ:デフォルト
キーペア:キーペアなしで続行(今回のハンズオンではSSH接続しない)

ネットワーク設定→編集
VPC:1.で作成したVPCを選択
サブネット:2.で作成したサブネットを選択
パブリックIP割り当て:有効にする
ファイアウォール(セキュリティグループ)
既存のセキュリティグループ 5.で作成したセキュリティグループを選択

高度な詳細→ユーザーデータ
(起動時に仕込めるスクリプト Apacheとhtmlを仕込んでる)
下記を貼り付ける

#!/bin/bash

yum update -y
yum install -y httpd
systemctl start httpd
echo "<h1>EC2 ハンズオンおつかれさまでした!!</h1>" > /var/www/html/index.html

→インスタンスを起動(キーペアなしで続行)

7. Webサーバへアクセス

サービス→EC2→インスタンス→作成したインスタンスを選択
パブリックIPv4アドレスをコピーし下記でアクセス

http://IPアドレス

※オープンアドレスだとhttpsになってアクセスできないので注意

※お片付け(インスタンス停止)
(0.0.0.0/0でフルオープンにしているので一応停止する)
サービス→EC2→インスタンス→作成したインスタンスを選択
インスタンスの状態→インスタンスを停止→停止

今回リソースは消さないが、自分のアカウントを運用する場合は、
不要なリソースはできるだけすべて削除しておくとよい
課金される