0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VPCを学ぶ - つながってないサーバ

Last updated at Posted at 2025-04-24

孤立したサーバ

概要

まずはインターネットにつながっておらず、ネットワークスイッチにつながっているだけという構成を再現してみる。

image.png

つまるところ、自宅にサーバを買ってきて、LANケーブルとネットワークスイッチを1:1で配線し電源を入れただけ。といった状態を体験したい。

設定の独自解釈のER図

VPCはサブネットを複数持つ。
EC2はサブネットを指定する。

目標

どこからもつながらないサーバなので、どこからも操作できないはず。

以下手順

VPC

VPCは Virtual Private Cloudの略で、EC2はこれのうちのどこかに所属することになっている。

なので、VPCをまずは作るが、できるだけ何もないVPCを作る

できるだけ何もないVPCを作成

作成画面を出す

  1. VPCダッシュボードへ行く
    1. ダッシュボードからサービスを検索「VPC」
  2. 左のメニューから「お使いのVPC」
  3. 右上の「VPCを作成」ボタンを押す

image.png

パラメータ入力

作成するリソース

あえて「VPCのみ」

名前タグ

わかりにくいとツライのでとかにしておく

learning-{{年月日}}-{{名前}}

実例) learning-250417-kato

IPv4 CIDR ブロック

「IPv4 CIDRの手動入力」を選ぶ

IPv4 CIDR

10.0.0.0/16 とする

IPv6 CIDRブロック

ちょっといったんv6は考えないんで IPv6 CIDR ブロックなし

テナンシー

「デフォルト」

タグ

操作なし

作成

プレビューコードはオススメ

aws ec2 create-vpc --instance-tenancy "default" --cidr-block "10.0.0.0/16" --tag-specifications '{"resourceType":"vpc","tags":[{"key":"Name","value":"learning-20250417"}]}' 

確認したら、「VPCを作成」ボタンを押す。
デフォルトだと 5VPC/regionなので、割とすぐ上限がくるので注意。

サブネットの作成

作成したVPCの中に、スイッチングハブを設置した感じで作成する。

サーバー(EC2)を作成する際、どのスイッチングハブに接続するかを指定するのが必須なので、ここで作っておかねばならない。

作成画面を出す

  1. VPCダッシュボードへ行く
    1. ダッシュボードからサービスを検索「VPC」
  2. 左のメニューから「サブネット」
  3. 右上の「サブネットを作成」ボタンを押す

パラメータ

VPC ID
先ほど作ったものを指定する。
例) learning-250417-kato

サブネットの設定

サブネット名

先ほどのに所属してるのがわかるようにしておく

例) learning-250417-subnet1

アベイラビリティーゾーン

ここでAZを指定できる。
「指定なし」だと、自動になるらしい。
いったん「指定なし」としておく

IPv4 VPC CIDR ブロック & IPv4 サブネット CIDR ブロック

VPC作成時に指定した 10.0.0.0/16 が表示されているが、これより狭いブロックを指定する必要がある。

10.0.0.0/16 (同じ値) とする

サブネットを作成

サブネットを作成ボタンを最後に押す

EC2

できるだけ何もないEC2を作成

作成画面を出す

  1. EC2ダッシュボードへ行く
    1. ダッシュボードからサービスを検索「EC2」
  2. 左のメニューから「インスタンス」
  3. 黄色の「インスタンスを起動」ボタンを押す

パラメータ入力

名前とタグ

learning-ec2-{{日付}} とでもしておく
例) learning-ec2-25-417

アプリケーションおよびOSイメージ

デフォルトの「Amazon Linux 2023 AMI」でOK

アーキテクチャなどなどもそのまま。

インスタンスタイプ

デフォルトの t2.micro でOK。

キーペア(ログイン)

「キーペアなしで続行(推奨されません)」を選択してもいいが、「新しいキーペアの作成」で作成&ダウンロードしておいてもよい。
(どうせログインできないが、キーを設定してあってもログインできないというのを体験できる)

ネットワーク設定

右の「編集」ボタンをクリックして設定する。以下、クリックすることででてくるメニューにおいて操作する。

VPC

ここでさっき作成したVPCを選択する。
例) learning-20250417

サブネット

さきほど作成したものが入っていることを確認する

learning-250417-subnet1 となっているはず

パブリックIPの自動割り当て

インターネットにつながってない孤立したものを作ってみたいので、ここでは「無効化」を選択

ファイアウォール (セキュリティグループ)

これはL4で指定できる。どこからもつながらない予定だが、一応「どこからでもsshはできる」という設定にしておく。(= デフォルト)

セキュリティグループ名

learning-launch-wizard-{?} とする

説明

デフォルトでOK

インバウンドセキュリティグループのルール

デフォルトでOK

高度なネットワーク設定

とりあえずここでは開かない。もしかしたらここで厳密に指定できるのかも。

ストレージを設定

デフォルトでよい。

高度な詳細

開かない

概要

インスタンス数は1でよい。他、上で入力したパラメータが表示されていることを確認する。

作成

「プレビューコード」を押してコマンドをみておくとよい

aws ec2 create-security-group --group-name "launch-wizard-5" --description "launch-wizard-5 created 2025-04-22T08:37:55.027Z" --vpc-id "vpc-0xxxxxxxx" 
aws ec2 authorize-security-group-ingress --group-id "sg-preview-1" --ip-permissions '{"IpProtocol":"tcp","FromPort":22,"ToPort":22,"IpRanges":[{"CidrIp":"0.0.0.0/0"}]}' 
aws ec2 run-instances --image-id "ami-0e449927258d45bc4" --instance-type "t2.micro" --block-device-mappings '{"DeviceName":"/dev/xvda","Ebs":{"Encrypted":false,"DeleteOnTermination":true,"Iops":3000,"SnapshotId":"snap-0c458689b862e29ba","VolumeSize":8,"VolumeType":"gp3","Throughput":125}}' --network-interfaces '{"SubnetId":"subnet-0e97da846f5d737ed","AssociatePublicIpAddress":false,"DeviceIndex":0,"Groups":["sg-preview-1"]}' --credit-specification '{"CpuCredits":"standard"}' --tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"learning-ec2-25-417"}]}' --metadata-options '{"HttpEndpoint":"enabled","HttpPutResponseHopLimit":2,"HttpTokens":"required"}' --private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":false,"EnableResourceNameDnsAAAARecord":false}' --count "1" 

「インスタンスを起動」ボタンを押して作成

確認

  1. EC2ダッシュボードへ行く
    1. ダッシュボードからサービスを検索「EC2」
  2. 左のメニューから「インスタンス」
  3. learning-ec2-{{日付}} を選択する

プライベート IPv4アドレスあれど、パブリックIPv4 DNSやElastic IPアドレスが空っぽなのを確認できる。

これはつまりどこにもつながってないということ、、、なはず。

「接続」ボタンをクリックして、接続を試みる。

『EC2 Instance Connect』 タブ

以下のような警告がでて、接続できない。

パブリック IPv4 または IPv6 アドレスが割り当てられていません
パブリック IPv4 または IPv6 アドレスがない場合は、EC2 Instance Connect を使用できません。あるいは、次を使用して接続を試みることができます。 EC2 Instance Connect エンドポイント 。

インスタンスはパブリックサブネットにありません
関連付けられたサブネット subnet-0xxxxxd (learning-250417-subnet1) はパブリックサブネットではありません。
EC2 Instance Connect を使用するには、インスタンスがパブリックサブネット内にある必要があります。 サブネットをパブリックサブネットにするには、サブネットルートテーブル内のルートをインターネットゲートウェイに追加します。

『セッションマネージャー』タブ

これはそもそも設定してないのでどうにもならない。

『SSH クライアント』タブ

キーペアが設定されていなければ、SSH経由では接続できません

と表記されている。

インスタンスIDとプライベートIP アドレス( 10.0.185.242 など)で接続方法の手順が記載されているが、VPC内のこのアドレスに接続する方法はない。

『EC2 シリアルコンソール』タブ

これがサポートされてれば、無理矢理みることはできたかもしれないが、今回のEC2タイプは対応していないので用いることはできない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?