【個人的備忘】EC2にアタッチしたEBSをマウントする（Windows）

## 記事の背景
個人的な備忘です。
正確な情報についてはAWS公式ドキュメントをご覧ください。

https://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/ebs-using-volumes.html


「EBSを追加でアタッチしたのに使えません！」
と言う質問に対する必要な操作の流れをまとめる
→ （そんな初歩的な質問が..!?）の方はここから先に進まなくて大丈夫です。
　同じ疑問を持った方は冒頭のドキュメントを参照ください。



## 前提
AWSのAmazon EC2（OS：Windows Server 2025）において、ルートボリュームに加えて
Dドライブ用にEBSがアタッチされている状態であること
（割り当てるドライブはなんでもOK）

利用したAMI：Microsoft Windows Server 2025 Full Locale English AMI provided by Amazon
ami-0f2b7d16d1c8c53d0
※所有者amazonのパブリックイメージを使う
　言語設定は英語だよ

## 結果

**【Before】**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/d4a6bdc7-bd3a-498d-bddd-30b991b9d8c9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/19f5816d-01e2-4723-ab78-8783cc86c063.png)

**【After】**
EC2に追加でアタッチしたEBSがDドライブとしてマウントされていること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/b91eb8bf-e78e-4322-96f7-7afd4ac932e8.png)

AWSコンソール（EC2）上では変化していないこと
※すでに事前状態で対象のEC2に対してEBSをアタッチしているため
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/19f5816d-01e2-4723-ab78-8783cc86c063.png)

## 手順
### 1 EC2（Windows Server）へRDP接続
RDPでインスタンスに接続
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/00480475-27aa-46c9-8c90-3f23e9548ea3.png)


### 【STEP2】Disk Management でボリュームを初期化・フォーマット
Windowsキー + R → diskmgmt.msc と入力 → Disk Management を起動

「Initialize Disk（ディスクの初期化）」というダイアログが表示されたら：
GPT（GUID Partition Table） を選択 → OK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/1c8b0864-644a-43bb-9b12-4bb3a7d8bd5c.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/78f5e1c3-2a1b-4c71-a0be-3121bbaaeffb.png)


新しいディスク上で「Unallocated（未割り当て）」領域を右クリック → 「New Simple Volume...（新しいシンプル ボリューム）」を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/07a0c07d-23cf-4628-ac95-960edb7af9ec.png)


ウィザードに従い：
Assign the following drive letter：D
File System：NTFS
Volume Label：任意
「Finish」で完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/fe176751-d317-4d27-ba31-b90d496ea0f5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/0f40d39d-9bbb-401d-8168-85c5678eaae0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/9173db46-dd90-46c2-9055-2188f1bdc46a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/909e6c2b-78c2-4ff0-a729-5d32ff0d4043.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/d61629be-0c2d-475f-b640-612d7cbf3442.png)

### 【STEP3】確認
エクスプローラーからもDドライブに新規ボリュームがマウントされていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/b91eb8bf-e78e-4322-96f7-7afd4ac932e8.png)

## Windows環境での疑問をQ&Aで整理（ChatGPTより生成）


### Q1. 「マウント（mount）」って何ですか？
 **A. ディスクをOSに接続して、使えるようにすることです。**

マウントとは、ストレージ（ディスク）を**OSのファイルシステムに接続すること**。  
Windowsであれば、「**C: や D: ドライブ**として認識・操作できるようにする作業」です。

#### たとえ話：
- EBSは「外付けHDD（箱）」のようなもの。
- マウントは「その箱をパソコンにUSBで接続し、認識させる作業」です。

マウントされていないEBSは、**OSにとっては「謎の物体」状態**です。

---

### Q2. EBSを「アタッチ（Attach）」しただけでは使えないのはなぜ？
 **A. OSはアタッチされたEBSをすぐには使えないからです。**

「Attach」は、**EC2という物理マシンにEBSを“つなぐ”だけの操作**です。  
ただしOS（WindowsやLinux）から見ると、それはまだ「**未初期化の生ディスク**」。

#### ▶ EC2（OS）側で必要な作業：
1. **Initialize（初期化）**：パーティションテーブル（例：GPT）を作る  
2. **Format（フォーマット）**：NTFS（Windows）やext4（Linux）でフォーマット  
3. **Mount（マウント）**：ドライブ文字（D:など）やマウントポイントを割り当て

これらを経て、**ようやくファイルの読み書きが可能になります。**

---

### Q3. Windowsの場合、なぜRDPでログインして操作しないといけないの？

 **A. Windowsのディスク操作はOS内部でしか完結できないからです。**

EBSをWindows EC2に追加した場合、以下の操作を**OSの中（GUIやPowerShell）で実施する必要があります**：

- ディスクの初期化（Initialize）
- パーティションの作成
- フォーマット（NTFS）
- ドライブ文字（例：D:）の割り当て

AWSコンソールではこれらは制御できません。  
そのため、**RDPでのログイン操作が必要になります。**

---

### Q4. AWSマネジメントコンソールだけで完結させる方法はないの？

💬 **A. コンソールだけでは完結しませんが、「User Data」を使えば自動化は可能です。**

Linuxでは `/etc/fstab` や `user-data` を使って自動マウントができます。  
Windowsでも、**PowerShellスクリプトを「User data」に組み込むことで、RDPせずに初期化・フォーマット・マウントまで自動化できます。**

---

### Q5. 実際にUser Dataで自動マウントするには？

#### 例：追加したEBS（`xvdf`）をDドライブとしてマウントするスクリプト

```powershell
<powershell>
# xvdf を対象にディスクを探す
$disk = Get-Disk | Where-Object { $_.PartitionStyle -eq 'RAW' }

# 初期化（GPT）→ 新しいパーティション作成 → フォーマット（NTFS）→ Dドライブ割当
if ($disk) {
    Initialize-Disk -Number $disk.Number -PartitionStyle GPT -PassThru |
        New-Partition -UseMaximumSize -DriveLetter D |
        Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisk" -Confirm:$false
}
</powershell>
```

---

課金防止のためEC2やEBS、スナップショットは不要であれば削除しましょう。
以上！