azure for student　登録からSSH接続まで

## 1. はじめに
Azure VMを作成して**自宅IPアドレスからのみ**接続できるように一連の手順を解説した。
### 開発環境
macOS Sonoma 14.5

## 2. azure for studentへの登録方法
以下のページから登録を開始できる。
https://azure.microsoft.com/ja-jp/free/students

「無料で始める」をクリック

大学のメールアドレスとパスワード、その他必要事項を入力してアカウントを作成してください。すると以下のようなazure portalのホームページに自動で遷移する。これで登録は完了。
![スクリーンショット 2024-06-10 16.57.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/1ff801bf-66da-fc9b-50e4-2ac97f95dcbb.png)

## 3. リソースグループの作成
本来はサブスクリプション（azureを使用するための認可証のようなもの）の作成から行うが、学生の場合は自動で無料で使用できるサブスクリプションが作成されている。ですので今回はリソースグループの作成から説明していく。

①まず検索バーで「リソースグループ」と検索し選択する

②以下の写真のような画面に遷移したら「作成」を選択する
![スクリーンショット 2024-06-10 17.03.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/298dc00e-b6c1-6e59-b610-97a7c2b65c2c.png)
③下記のように各項目を入力する。リソースグループの名前は一意のものを入力する。
![スクリーンショット 2024-06-10 17.08.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/840b109f-91fc-edf8-00f4-a0115918146a.png)
④「確認及び作成」→「作成」を選択する。

⑤リソースグループに新しく作成したリソースグループが追加されたことを確認する。写真のように表示されていればOK
![スクリーンショット 2024-06-10 17.12.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/b32f0c13-0b6c-2a1a-a183-447dd20a328e.png)

## 4. 仮想ネットワーク/サブネットを作成
①ホームの検索バーで「VNet」を検索し、「仮想ネットワーク」を選択する。

②「作成」を選択する。

③それぞれの項目を記入する。
リソースグループは先ほど作成したものにし、名前は一意のものを入力する。その他２つは前回と同じ。他はデフォルトで大丈夫。
![スクリーンショット 2024-06-10 17.18.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/ea44191e-d5f4-bc0c-2e74-e9de361a5282.png)

④「確認及び作成」→「作成」を選択する。

⑤仮想ネットワークに新しく作成した仮想ネットワークが追加されたことを確認する。
![スクリーンショット 2024-06-10 17.28.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/0f9be038-590b-24db-d343-b23efa3b4e35.png)


## 5. セキュリティーグループの作成
①ホームの検索バーで「ネットワークセキュリティグループ」を検索し、選択する。
②「作成」を選択する。
③各項目を入力する。入力することは今までと同じ
![スクリーンショット 2024-06-11 13.47.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/4a186e02-7af8-ed11-569c-3c3a2dd49169.png)
④「確認及び作成」→「作成」を選択する。
⑤NSGに新しく作成したNSGが追加されたことを確認する。
![スクリーンショット 2024-06-11 13.49.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/7aac8294-4eaa-0a85-80b9-1a9bacd85580.png)
⑤作成したNSGを選択する。

⑥受信セキュリティ規則を選択し、「追加」を選択する。
![スクリーンショット 2024-06-14 12.34.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/4758c9d3-c30c-e332-c95a-2a2d30ec68db.png)

⑦下記の項目を記入する。
**[Linuxの場合]**
|項目|内容|
|:---:|:---:|
|ソース|IPアドレス|
|ソースIP アドレス/CIDR 範囲	|自宅PCのIPアドレスを記入する|
|ソースポート範囲|*|
|宛先|任意|
|サービス|SSH|
|アクション|許可|
|優先度|100|
|名前|一意の名前|

自分のIPアドレスがわからない場合は下記サイトで調べることができる。
https://www.cman.jp/network/support/go_access.cgi

**[Windowsの場合]**
|項目|内容|
|:---:|:---:|
|ソース|IPアドレス|
|ソースIP アドレス/CIDR 範囲	|自宅PCのIPアドレスを記入する|
|ソースポート範囲|*|
|宛先|任意|
|サービス|RDP|
|アクション|許可|
|優先度|100|
|名前|一意の名前|


自分のIPアドレスがわからない場合は下記サイトで調べることができる。
https://www.cman.jp/network/support/go_access.cgi

⑧「追加」を選択し、受信セキュリティ規則に規則が追加されたことを確認する。
⑨ もう２つ規則を追加するので⑥から⑧を下記の値で繰り返す。
**規則１**
|項目|内容|
|:---:|:---:|
|ソース|Any|
|ソースポート範囲|*|
|宛先|Any|
|サービス|Custom|
|宛先ポート範囲|8080|
|プロトコル|Any|
|アクション|拒否|
|優先度|4096|
|名前|一意の名前|

**規則2**
|項目|内容|
|:---:|:---:|
|ソース|Any|
|ソースポート範囲|*|
|宛先|Any|
|サービス|Custom|
|宛先ポート範囲|80|
|プロトコル|TCP|
|アクション|許可|
|優先度|500|
|名前|一意の名前|

LinuxとWindowsで必要規則が異なりますが、下記のようになっていればOK。
![スクリーンショット 2024-06-14 12.47.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/cb148bfa-e7af-fe33-8fdf-88a71fa37276.png)
⑩送信セキュリティ規則を選択し、「追加」を選択する。
下記規則を追加する。
|項目|内容|
|:---:|:---:|
|ソース|任意|
|ソースポート範囲|*|
|宛先|サービスタグ|
|宛先サービスタグ|Internet|
|サービス|HTTPS|
|アクション|許可|
|優先度|100|
|名前|一意の名前|

⑪「追加」を選択し、送信セキュリティ規則に規則が追加されたことを確認する。
⑫ ⑩から⑪を下記の値で繰り返す。

|項目|内容|
|:---:|:---:|
|ソース|Any|
|ソースポート範囲|*|
|宛先|Any|
|サービス|Custom|
|プロトコル|Any|
|アクション|拒否|
|優先度|4096|
|名前|一意の名前|

[Linuxの場合、下記も追加する]　※WindowsでもHTTP通信を許可したい場合は追加する。

|項目|内容|
|:---:|:---:|
|ソース|任意|
|ソースポート範囲|*|
|宛先|サービスタグ|
|宛先サービスタグ|Internet|
|サービス|HTTP|
|アクション|許可|
|優先度|101|
|名前|一意の名前|

LinuxとWindowsで必要規則が異なりますが、下記のようになっていればOK。
![スクリーンショット 2024-06-14 12.56.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/716c9995-ccc7-237a-c066-b133d1b8687a.png)
⑬「サブネット」を選択する。
![スクリーンショット 2024-06-14 12.57.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/1f93696e-f119-9d28-ca21-d97dbf97a8ad.png)
⑭「関連付け」を選択する。
⑮VNet/Subnetを作成するの際に作成したVNetとSubnetを選択し、OKを選択する。
⑯「サブネット」にサブネットが追加されたことを確認する。

## 6. パブリックIPアドレスの作成
注意点：パブリックIPアドレスは１ヶ月$3ほどコストがかかります。
①ホームの検索バーで「パブリックIP」を検索し、選択する。
②「作成」を選択する。
![スクリーンショット 2024-06-17 16.27.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/751b0c25-994d-291f-bdc2-03395f557a88.png)
③下記の項目を記入する。下記以外の項目はデフォルトのままで問題ない。
|項目|内容|
|:---:|:---:|
|サブスクリプション|工程1で作成したサブスクリプションを選択する。|
|リソースグループ|工程2で作成したリソースグループを選択する。|
|名前|一意のパブリックIPアドレス名を記入する。|
|リージョン|どこでも問題ないが、日本国内なら東日本か西日本が良い。|

④「確認及び作成」→「作成」を選択する。
⑤パブリックIPアドレスに新しく作成したパブリックIPアドレスが追加されたことを確認する。
![スクリーンショット 2024-06-17 16.32.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/2bd4fb47-777b-6076-360b-878e2982ede4.png)

## 7. 仮想マシンを作成
**[Linuxの場合]**
①ホームの検索バーで「VM」を検索し、選択する。
②「作成」→「Azure仮想マシン」を選択する。
![スクリーンショット 2024-06-17 16.33.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/cdcd5f81-435a-d461-c63b-985845142b01.png)
③「基本」タブで下記の通り設定する。
イメージとサイズは要件に従って設定する。azure for studentsのサブスクリプションの場合は以下の写真のサイズは１２ヶ月間無料で使用できる。（スペックはそこまで高くないので注意）
![スクリーンショット 2024-06-20 11.41.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/3d53157e-1eb6-6269-7511-c4d306f74a97.png)

パブリック受信ポートはNSGで制御しているので設定不要である。
ここで定めたユーザー名はメモしておく。
![スクリーンショット 2024-06-20 11.34.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/2cc78327-f7c4-6651-d8db-9e3e7d63cf73.png)
④SSH公開キーを設定する。自分のSSH公開キーを使用する場合は下の写真のように選択し、「SSH公開キー」という欄にキーを入力する。
### 重要!このときSSH公開鍵の名前をメモしておいてください
![スクリーンショット 2024-06-20 11.38.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/12f56a16-ad9f-4c60-b4e4-7d88a7179910.png)
⑤「ディスク」タブで下記の通り設定する。OSディスクはStandard HDDで十分なはず。
![スクリーンショット 2024-06-20 11.44.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/8bb9d535-37b1-c756-8f04-b1e704096041.png)
⑥「ネットワーク」タブで下記の通り設定する。
仮想ネットワーク、サブネット、パブリックIPアドレスは先程作成したものを使用する。
![スクリーンショット 2024-06-20 11.46.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/1b085c1a-d49c-50cf-e3b4-5bda64e88035.png)

⑦「管理」タブはデフォルトのままにしておく。
⑧「監視」「詳細」タブはデフォルトのままにしておく。
⑨「確認及び作成」→「作成」を選択する。
⑩Virtual Machineに新しく作成したVMが追加されたことを確認する。
![スクリーンショット 2024-06-20 11.51.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/8c2b49f0-b27a-ea90-14c6-a2da01431e19.png)


## 8.仮想マシンの設定と動作確認
ここからは実際にVMに接続するところまで解説する。

①ターミナルを開き、以下のコマンドを打つ。
このコマンドは他のユーザーがアクセス権限を持たないようにできるものです。~/から先の部分は先ほどメモした公開鍵に対応する自分の秘密鍵ファイルに変更。
```
chmod 400 ~/Downloads/myKey
```

②そして次に以下のコマンドを打つ。
```
　ssh -i ~/Downloads/[ダウンロードしたpemファイル名] [VM作成時に指定したユーザー名]@[VMのパブリックIPアドレス]
```

初めての接続では以下のように聞かれるのでyesと答える

```
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
```

その後、以下のように秘密鍵のパスフレーズが聞かれるので入力。
```
Enter passphrase for key '秘密鍵のディレクトリ': 
```
接続が確認できたら以下の２つのコマンドを打つ。
```
sudo apt-get -y update
sudo apt-get -y install nginx
```

そして最後にブラウザで以下のものを入力し、写真のように表示されれば完了です。お疲れ様でした
```
http://自分のパブリックIPアドレス
```

**使用後はVMの電源Downを忘れないようにしてください**

![スクリーンショット 2024-06-23 17.57.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685116/68e7703e-4596-937f-4f35-b9972e4c5a79.png)

## 9. まとめ
かなり長い説明になりましたが、なるべく丁寧に説明するよう心掛けましたので、参考になりましたら幸いです。今回の記事作成でかなりazureに関することやSSHに関することに詳しくなれました。

## 参考にさせていただいた記事
https://qiita.com/erio_vallecu/items/e61284dde21c145fb54c