最近AWSを勉強しはじめたので自分でサーバーを立ててみたいと思ったので、実践してみます。自分の記録用に残しますが、他の方の参考になればうれしいです。
自分は仕事でWindows系を扱うことが多いので、良く使われているLinux系のサーバーではなくWindowsサーバーを構築してみます。(他の方でも同様にまとめている方もいらっしゃいますが、私も自力でやってみるものを記録として残したいと思います。)
結論(全体の流れ)
全体の作成手順は次のようになります。
自分でもわかるように、できる限り平易な表現でまとめていきます。
- VPC作成
- EC2サーバー構築
- RDP接続
- おまけ
概要図
まずは、今回実現する構成図をイメージします。イメージすることが何より重要だと思います。
今回はシンプルにクライアントPCからVPC内のパブリックサブネット上に構築したEC2(Windows)サーバーに対してリモートデスクトップ(RDP)接続できることを目指します。
本来であれば、そこからプライベートサブネットに構築したRDSに接続するところまで実践したいですが、まずは順番にやっていきます。機会があればそちらも実践してみます。
イメージとして、ある土地(VPC)にWindows仕様の建物(EC2)を立て、そこに家(クライアントPC)から自転車(RDP方式)で向かう、こういったことを想像してもらえると良いかと思います。
実践
VPC作成
AWSには最初からデフォルトでVPCが用意されており、そのVPCを利用して動作検証したり、仮環境を作ったりすることもあるようです。しかし、今回はせっかくですので、自分でVPCを作るところからはじめたいと思います。
そもそも、VPCとは、AWSクラウド内に構築する自分専用のネットワーク空間です。
そのVPC上にEC2というサービスを使ってサーバを立てることになります。イメージとしては、VPCは土地のようなものです。土地(ネットワーク空間)がなければ、建物(EC2)を立てることもできません。
VPCをメニューから選択し作成する
まずは、VPC(土地)を作ります。
①メニューから「VPC」を検索し、「VPCを作成」から作成を行います。
②VPCの詳細設定を行います。
③作成されたVPCを確認します。
VPC内にパブリックサブネットを作成
次に、VPC(土地)を細分化します。
今回は、インターネットから接続できるパブリックサブネットのみを作成しますが、通常は、VPC内にパブリックサブネットとプライベートサブネットを作ります。
パブリックサブネット・・・インターネットからの接続ができる(野良で向かうことができる)
プライベートサブネット・・・インターネットからの接続ができない(野良で向かえない)
①サブネットを作成します。
インターネットゲートウェイの作成
ここまでで、VPC(土地)とその中にインターネットからつながるパブリックサブネット(細分化した土地)を作成しました。
次は、インターネットゲートウェイを準備します。インターネットゲートウェイは外部のインターネットから接続するためのポイントです。インターネットゲートウェイという外の世界とつながるための窓口になるポイントを用意します。
①インターネットゲートウェイを作成します。
②作成したインターネットゲートウェイをVPCにアタッチします。
インターネットゲートウェイは作成しただけではどのVPCとも関連していません。
そこで、VPCにアタッチをすることで、インターネットゲートウェイがVPCに紐づくようになります。
ルートテーブルの作成
ここまでで、VPC(土地)とその中にインターネットからつながるパブリックサブネット(細分化した土地)を作成し、VPCにインターネットゲートウェイ(外とつながる窓口)を関連付けしたので、一応はインターネットから繋がる状態にはなりました。
しかし、このままでは繋がりません。ルートテーブルという、ネットワークの経路をこのサブネット(土地)に関連付けしてあげることで、はじめてその経路(道)を辿って、接続できるようになります。
そこで、ルートテーブルを作成します。
①ルートテーブルを作成します。
②ルートテーブルの編集をします。
ルートテーブルは作成しただけでは、足りずルールを追加してあげます。
すべての通信(0.0.0.0/0)はインターネットゲートウェイに向かう、つまり、何かしらの通信が発生したらインターネットゲートウェイ(外の世界と窓口になっている場所)に向かうようにルールを決めておきます。
③サブネットへの関連付けを行います。
ここまでで、ルートテーブルの作成(道順のルール)は決めました。そして、このルートテーブルがVPC内(土地)の中で利用できる状態でもあります。
しかし、VPCは更に細分化したサブネット(土地)をベースとしているため、このルートテーブルもサブネットへ関連付けする必要があります。
VPC設定内容の確認
ここまででVPCに関連する設定を一通り実施できました。
設定内容を確認したいと思います。VPCを選択し、リソースマップを確認することで、ここまでに設定した内容を一目で確認できます。
EC2サーバー作成
EC2設定
VPC(土地)ができたので、次はいよいよEC2サーバー(建物)を作成します。
①メニューから「EC2」を選択し、「インスタンス起動」を行います。
②どんなサーバーにするか決めていきます。
名称は自由に入力してください。例:windowsserver for handson
・AMI
EC2サーバーのOSを指定します。今回は、Windowsサーバーを立てるのでWindows Serverを選択します。
Microsoft Windows Server 2022 Baseを指定します。
・インスタンスタイプ
EC2サーバーのCPUとメモリを指定します。
t2.micro (無料のもので問題ないです)を指定します。
・キーペア
キーペアとは、サーバーに接続する際に必要となる鍵です。
「新しいキーペアの作成」を行います。後々、サーバー(建物)に入るための鍵となりますので決して無くさないように注意してください。
「キーペアを作成」することで、XX.pemファイルが手元のPCにダウンロードされます。繰り返しなりますが、決して無くさないように注意してください。
・ネットワーク設定
続いて、ネットワークの設定です。
先ほど作成したVPC(土地)にEC2(建物)を立てる設定をしていきます。
ネットワークの「編集」からネットワーク設定作業を行います。
・パブリックIPの自動割り当て
EC2サーバーのIPアドレスを割り振るかどうか決めます。
「有効化」:EC2サーバーのIPアドレスが毎回変わっても良い場合に使用します。AWS側で自動でIPアドレスを割り振ってくれますが、再起動の度にIPアドレスが変わるため、RDP接続する際に毎回、IPアドレスを変更する必要があります。ただし、後述するElasticIPアドレスが不要のため、コストを抑えることができます。
「無効化」:AWSが自動でIPアドレスを割り振ることをしません。そのため、自分でIPアドレスを指定する必要があります。その際は、ElasticIP(固定IPアドレス)を利用します。しかし、ElasticIPは有料のためコストがかかる点に注意が必要です。
今回はより実践的に、IPアドレスが自動で変わらないようにするために「無効化」を選択します。
・セキュリティグループ
EC2サーバー(建物)に接続する際のルールを決めます。今回はRDP(仮に自転車など)で接続したいため、タイプ:RDPを選択します。すると、自動でRDP接続する際に利用するプロトコル、ポートが選択されます。
・ストレージ
設定はデフォルトのままで問題ありません。
設定ができたら、「インスタンスを起動」を押してEC2サーバーを作成します。
ElasticIPアドレス設定
①EC2サーバーに付与する対してElasticIP(固定IPアドレス)を取得します。
EC2サーバー作成時に、パブリックIPの自動割り当てを「無効化」した場合のみ、EC2サーバーのIPアドレスが自動で決まらないので設定する必要があります。
VPCメニューから「ElasticIPアドレスを割り当てる」、「割り当て」を押して、作成していきます。
作成されたElasticIPアドレスを確認し、任意の名称を付けておきます。
②続いて、「ElasticIPアドレスの関連付け」を行います。
EC2サーバーに対して、作成したElasticIPアドレスを紐づけます。
インスタンスには、作成したEC2サーバーのインスタンスを選択、プライベートIPアドレスはElasticIPアドレス(パブリックな固定IPアドレス)と関連付けされるプライベートなIPアドレスとなります。表示されている内容をそのまま選択すればよいです。
RDP接続
RDP接続の実施
いよいよRDP接続の実施です。
①作成したEC2サーバーを選択し、「接続」を行います。
②パスワードを取得します。
③先ほどダウンロードしたXX.pemファイルを「プライベートキーファイルのアップロード」からアップロードします。
アップロードが完了すると、プライベートキーの内容が表示されるため、「パスワードを復号化」します。
④復号化されたパスワードを控えます。(⑤の画像を参照)
⑤「リモートデスクトップファイルのダウンロード」からRDPファイルを取得します。
⑥ダウンロードしたRDPファイルをダブルクリックして、リモートデスクトップ接続します。
⑦接続できました!
画面右上には(隠してますが)プライベートIPアドレスや、パブリックIPアドレスなどが記載されていることが確認できます。
おまけ(サーバー初期設定)
AWS上にサーバーは立ち上がりましたが、英語表記だったり、時刻が日本時間になっていたかったりするため、ここからはサーバー自体の初期設定をしていきます。
①Windows設定から「Times&Language」を選択します。
②「Language」メニューから「Add a language」を選択します。
③「日本語」を選択し、すべてのオプションを有効のままインストールします。
④日本語をインストールが行われるため、しばらく待機します。
⑤インストール終了後、言語を選択します。
⑥設定後、サインアウトします。
「Setting Windows display language」というメッセージに対して「Yes,sign out now」でもOKです。
⑦再度、RDPにて接続を行うと、日本語設定になっていることが確認できます。
ただし、RDP接続した瞬間の「ようこそ」の画面は英語だったかと思いますので、時刻設定と共に管理者用の言語変更も行っていきます。
⑧続いて、時刻を設定します。
「時刻と言語」メニューから、「地域」メニューを選択し、国または地域にて日本を選択します。
⑨管理用の言語設定を行います。
ようこそ画面とユーザーを新規作成する際の言語についても、日本語を採用します。
⑩再起動を行います。
OKを押すと、再起動の確認メッセージが出るため、そのまま再起動します。
⑪再度、RDP接続します。
「ようこそ画面」は日本語になっていたかと思います。
しかし、この時点では時刻がおかしいままです。
日付と時刻から、タイムゾーンが「大阪、札幌、東京」になっていることを確認して、「今すぐ同期」を押します。
以上で、サーバー初期設定も完了しました。
作成したサーバーからの外のインターネットへの接続も確認することができました。外の世界の手元のPCからRDP接続することができるので、その逆としてインターネットゲートウェイを介して、EC2サーバー側から外に出ることも可能という訳です。(実際のEC2サーバー上からGoogle検索が可能 下図)
お疲れ様でした!
最後に
作成したEC2サーバーは正直かなり低スペックですので本番用には別のサーバースペックがおすすめです。
慣れれば、1時間~1.5時間で作成できそうな気がしました。
やはりクラウドは便利ですね。
最後に、参考にしたサイトは以下です。非常にわかりやすく大変勉強になったので合わせてご覧ください。
コメント