AWSでWindowsサーバを1からたててMacからRDP接続してみるまで

久しぶりにWindowsサーバをたてることにしたので、忘備録も兼ねて1からAWSにサーバをたてる方法を書いていこうと思います。  
＊2022/8月の段階ですので、マネジメントコンソールは変化している可能性がありますので、ご了承ください

## 前提として
- VPCの設定はハンズオン等と同じように設定するため、業務用として使うとセキュリティがガバガバで怒られると思います。
- AWSのアカウント作成はしてあるものとします。
- Windowsサーバをたてて使えるところまでがゴールです
- 初めての人向けなので、冗長なところがあります

## VPCを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/242b2c03-b489-8a12-28d6-15cb676b55fe.png)
[AWSマネジメントコンソールの画面](https://console.aws.amazon.com/)にログインし、上の検索窓に「VPC」と打ち込むと管理画面が出てきます。そこから「VPCウィザードを起動」を選択します。
  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/522fa570-f571-d4a8-1a94-2a25c914c05f.png)
そうするとVPC設定の選択画面に遷移します。今回は「1個のパブリックサブネットをもつVPCの作成」を選択します。  セキュリティ面を考慮するならパブリックとプライベートサブネットを持つVPCを選んで、パブリック側には踏み台を、プライベート側にはサーバ本体を置く構成が良いです。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/58bee8e2-7aaa-b447-d655-1726d559eeb5.png)
使用するVPCの設定をします。CIDRブロックはデフォルト(10.0.0.0/16)のままで、パブリックサブネットは適当な値(10.0.2.0/24)にしています。
アベイラビリティゾーンも適当です。すでに1aと1cが居たので今回は1dを選択しました。
VPC名とサブネット名は自分がわかりやすいように入力をします。
これでVPCの作成を押すと、自動ですべて作成してくれます。
  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/c34a7ac1-1597-c808-5dd2-0e65a8b41e9a.png)
一応確認をしていますが、全て作成されていました。

さて、VPCを1から作成してもいいのですが、そうすると以下の作業が発生します。文字通り何も分からん状態で挑むと全くつながらなくてめっちゃ苦労しますのでご注意を（経験談）
1. VPCの作成
2. サブネットの作成
3. インターネットゲートウェイの作成してVPCにアタッチ
4. ルートテーブルを作成し、インターネットゲートウェイを登録
5. サブネットにルートテーブルを紐付ける

## EC2を起動する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/c6e4ea25-0507-d03f-609f-c024b71f42a3.png)
VPCの画面からでも良いですし、VPCを作ったときの検索窓から「EC2」と打ち込んでダッシュボードに行く方法でも構いません。「EC2インスタンスを起動」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/3ade224c-eff8-e115-9cd7-6cac9a995314.png)
クイックスタートの画面を見ると「無償利用枠の範囲」のインスタンスが優先的に載っています。ここでWindowsを選択しても良いのですが、英語版なのでこの後の設定が面倒です。そして無償枠が終わった人には何も意味をなさない言葉となっていまいます・・・。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/e6fa2e71-b210-fa4b-8355-904f32d130fd.png)
どうせ無償枠がないんだしラクするためにも、コミュニティAMIから選択をします。OSをWindowsで検索窓に「japanese」と入力すると、予め日本語対応されたWindowsサーバをたてることができます。

その後の設定は使う内容によって前後するのですが、ちょっとたてて遊ぶだけなので、ほぼデフォルトのままにします。  

- インスタンスタイプ→t2.micro
- ストレージ→汎用SSD
- タグ→キー「name」 値「WindowsServer」
- セキュリティグループ→新規作成（RDPの初期がされています）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/649b33e9-a7dd-d754-e036-d09a739ae8fe.png)
詳細設定でネットワークを選択する場面があるのですが、そこを先程作成したVPCにします。あとは鍵を作成した場合はなくさないようにしましょう。この後使うのでログインが出来なくなります。
全ての設定を確認してOKなら作成を押します。5分ほどで出来上がります。

## RDP接続する
MacにはRDPで接続するツールが無いので、ストアから[Microsoft Remote Desktop](https://apps.apple.com/jp/app/microsoft-remote-desktop/id1295203466?mt=12)を入手します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/8c42d59e-eb71-b717-8de9-b6b079b52f72.png)
EC2の画面に戻り、作成したインスタンスのインスタンスIDを押します。上の「接続」を押して次の画面に進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/ae3fe374-703a-8ef4-bf35-79e7e3e101c3.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/82107d0e-f90c-1c19-1dde-e7780c7b3bf6.png)


## ※パブリックドメインが表示されてない場合
パブリックドメインが設定されていない場合は次の設定を確かめます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/f0b4e88c-ded0-a91e-ac8f-9446b18f6f47.png)
1. VPCの管理画面から作成したVPCを選択
2. 詳細画面から「DNSホスト名」「DNS解決」が有効になっているかを確認する
3. 無効になっている場合は「アクション」からそれぞれ「DNSホスト名の編集」「DNS解決の編集」を選択し、有効化する

自分の場合、これでもだめだったので、次の方法で解決しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/0e392184-f085-af44-b4d1-68ae1d2e9e5b.png)
1. VPCの管理画面から「Elastic IP」を選択
2. 「Elastic IPの割当」を選択し、作成したEC2インスタンスに割り当てる


## 参考
[[初心者向け]VPC作成からEC2インスタンス起動までを構成図見ながらやってみる（その1）](https://dev.classmethod.jp/articles/creation_vpc_ec2_for_beginner_1/)
[[初心者向け]MacからEC2 WindowsへRDP接続してみた](https://dev.classmethod.jp/articles/mac-ec2-windows-rdp-connect/)