ハンズオン資料

「構築しただけでは終わらせない。学びを言葉にして、"自分の技術"にする。」

View on GitHub

💻 Day 2: コンピュート・ネットワーク ハンズオン

🎯 このハンズオンで学ぶこと

🏗️ 構築するシステム

Phase 1: Default VPCでの基本体験

🌐 インターネット → 🔒 セキュリティグループ → 💻 EC2(Apache)

Phase 2: カスタムVPCでの本格構築

🌐 インターネット → 🚪 IGW → 🏢 VPC → 🔒 セキュリティグループ → 💻 EC2(Apache)

⏰ 所要時間

📋 前提条件


🚀 Phase 1: Default VPCでEC2起動

目標

「まずは簡単に!Default VPCでWebサーバを起動してみよう」

Step 1: セキュリティグループ作成

  1. EC2コンソールにアクセス
  2. 左側の「ネットワークとセキュリティ」から「セキュリティグループ」を開く
  3. 「セキュリティグループを作成」をクリック

基本設定

インバウンドルール

ユーザーデータで Apache HTTP Server(httpd)をインストールし、HTTPを使ってWebページを配信します。ブラウザから http://[パブリックIP] でアクセスできるように、HTTPの標準ポートであるTCP 80へのインバウンド通信を許可します。

アウトバウンドルールはデフォルトのままにします。

  1. 「セキュリティグループを作成」をクリック

Step 2: EC2インスタンス起動

  1. EC2コンソールにアクセス
  2. 「インスタンスを起動」をクリック

基本設定

キーペア(ログイン)

ネットワーク設定

「編集」ボタンを押す

セキュリティグループ

セキュリティグループはVPCに所属します。ここで選択しているVPCがデフォルトVPCであることを確認してください。

ストレージを設定

8GiB (gp3) デフォルトのまま。

高度な詳細

インスタンスを起動

すべてのインスタンスを表示

Step 3: 動作確認

  1. インスタンスが「実行中」状態かつステータスチェックが「2/2のチェックに合格しました」になるまで待機 (2分〜5分程度)

    参考: Status checks for Amazon EC2 instances

  2. パブリックIPアドレスをコピー

  3. ブラウザで http://[パブリックIP] にアクセス
  4. 🎉 Webページが表示されれば成功!

Step 4: Session Managerで接続体験

  1. インスタンスを選択
  2. 「接続」→「ウェブブラウザで」→「SSMセッションマネージャー」

  3. 「接続」をクリック
  4. ブラウザ内でLinuxコマンドを実行
     sudo su - ec2-user
     sudo cat /var/www/html/index.html
     sudo tail -f /var/log/httpd/access_log
    

    sudo = superuser do とする説とsubstitute user, doとする説がある
    su = substitute user
    ec2-user = Amazon Linux AMIで作ったマシンに作られるユーザー名
    cat = ファイルの中身を確認するコマンド。
    tail = ファイルの末尾を表示するコマンド。オプションの-fは、--followの短縮系で、「output appended data as the file grows(ファイルが育つ(grows)につれて、新しいデータを追いかけて(follow)表示する)」の意味
    sudo tail -f /var/log/httpd/access_log した後、http://[パブリックIP] にアクセスし、ブラウザをリロードすると、ログが成長する様子が見える
    sudo tail -f /var/log/httpd/access_log の止め方は、「Ctl + c」


🏗️ Phase 2: カスタムVPCでの本格構築

目標

「本格的なネットワーク設計!自分専用のVPCを構築しよう」

Step 1: VPC作成

  1. VPCコンソールにアクセス
  2. 「VPCを作成」をクリック

    #### VPC設定

    • 作成するリソース: VPCなど
    • 名前タグの自動生成: ✅️ チェック ON
    • 名前タグ: プロジェクト => my-custom に変更
    • IPv4 CIDR: 10.0.0.0/16 (デフォルトのまま)

    #### サブネット設定

    • アベイラビリティーゾーン数: 1
    • パブリックサブネット数: 1
    • プライベートサブネット数: 0

    #### その他設定

    • NATゲートウェイ: なし
    • VPCエンドポイント: なし

  3. 「VPCを作成」をクリック

Step 2: セキュリティグループ作成

  1. EC2コンソールで、左側の「ネットワークとセキュリティ」から「セキュリティグループ」を開く
  2. 「セキュリティグループを作成」をクリック

基本設定

インバウンドルール

ユーザーデータで Apache HTTP Server(httpd)をインストールし、HTTPを使ってWebページを配信します。ブラウザから http://[パブリックIP] でアクセスできるように、HTTPの標準ポートであるTCP 80へのインバウンド通信を許可します。

アウトバウンドルールはデフォルトのままにします。

  1. 「セキュリティグループを作成」をクリック

Step 3: カスタムVPCでEC2起動

  1. EC2コンソールで「インスタンスを起動」

基本設定

キーペア(ログイン)

ネットワーク設定

「編集」ボタンを押す

セキュリティグループ

custom-web-sg が表示されない場合は、選択中のVPCが my-custom-vpc であることを確認してください。

ストレージを設定

8GiB (gp3) デフォルトのまま。

高度な詳細

インスタンスを起動

すべてのインスタンスを表示

Step 4: 動作確認と比較

  1. 新しいインスタンスの動作確認 (Phase 1と同じ)
  2. Default VPCとカスタムVPCの違いを確認
    • VPCコンソールでネットワーク構成を比較
    • セキュリティグループの所属VPCを確認


🎯 学習ポイント

Default VPC vs カスタムVPC

セキュリティグループの重要性

ユーザーデータの活用


🚨 トラブルシューティング

Webページにアクセスできない

  1. インスタンス状態確認: 「実行中」になっているか
  2. セキュリティグループ確認: ポート80が開いているか
  3. パブリックIP確認: 正しいIPアドレスを使用しているか
  4. プロトコル確認: httpを使っているか。httpsでアクセスしていないか。
  5. ユーザーデータ確認: Apacheが正常にインストールされているか

Session Managerで接続できない

  1. IAMロール確認: LabInstanceProfileが設定されているか
  2. VPC設定確認: インターネット接続が可能か
  3. 時間待機: インスタンス起動直後は接続できない場合がある

VPC作成でエラー

  1. CIDR重複確認: 既存VPCと重複していないか
  2. リージョン確認: 正しいリージョンで作業しているか

🎊 完了!

おめでとうございます!あなたは今、以下を達成しました:

仮想サーバの起動: EC2インスタンスを自在に操作
ネットワーク設計: VPCで自分専用のデータセンター構築
セキュリティ設定: ファイアウォールで通信制御
自動化体験: ユーザーデータでサーバ設定自動化

🚀 次のステップ

明日(Day3)は、データベースでデータを永続化します。今日構築したWebサーバにデータベースを接続して、本格的なWebアプリケーションを作りましょう!

💡 今日の気づきを記録しよう

今日もお疲れさまでした! 🔥