Azure で最初のクラウドサーバを無料枠で作成する

今までクラウドは AWS を使っていましたが、Azure を試してみました。
Ubuntu サーバを無料枠で立ち上げた記録です。

# Azure にログインする

https://azure.microsoft.com にアクセスして、「無料アカウント」から microsoft アカウントでログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/937a38e1-8db3-868b-5546-3a1916206c41.png)

Microsoft Azure の画面が出てきます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a183c28b-712c-6f5e-d13e-19ec757b20b6.png)

無料サービスの中身を確認すると・・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/27cf7ebe-d405-5d88-14d1-647d330aa39a.png)

無料枠は30日を超すと自動的に従量課金に移動するらしいですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/79eae8cb-f481-f3ac-24db-37711281799c.png)

とりあえず「無料で始める」を押して

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/51ae7285-b5fb-f8ee-7e60-6642b486b4da.png)
本人確認とクレジットカードの登録が行われ、サインアップが行われます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5673cc88-153c-3484-ba89-f65698e79738.png)
利用ができるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2347915e-e61a-5900-c74d-3c6e4736e696.png)
元のページに戻って
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/66a88e9c-b72f-a771-3072-afa0d98ee708.png)

まずはクラウド上にサーバーを設置します。
大変わかりづらいんだけど右上のバツを押し、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e29848f0-8082-cca0-fef6-b1e447882634.png)

「リソースの作成」でメニューを出します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/dc876511-217d-53a9-68ff-9612549799b8.png)

今回は Ubuntu Server 22.04 LTS を選択しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a128faf9-988a-b38c-8d3a-813e53d75b1c.png)
「作成」を押して、サーバの内容を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e7b7895f-9a84-86bd-13fd-5e1da8e62b89.png)

名前を決めた後に、VMのサイズを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/879d9f5e-fc70-a959-2a07-5e0a30756221.png)

無料枠で使えるサービスは限られているので、その中から選びます。30日後も使用する場合を考える場合は、コスト/月 に注意する必要があります。今回は、テスト用に十分なB1sにしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3e88e31d-6a8d-c77e-b6bc-94426fc6e4a8.png)

SSHでのアクセス方法は公開キーを選びました。公開キーの名前を決めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e9d44932-19e2-7a6b-60a0-f1df99b71a49.png)


ストレージの耐障害性を考慮して、ホストの暗号化は選択を外しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/de58b6ec-de81-a282-cb03-481061208d6e.png)
ネットワークのIPフィルタは今回のテスト中は無しとしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3bacab74-6701-14d3-762a-0a18c3362136.png)

その他の設定はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5bd8bab3-d80b-fc55-599f-a550b4ed77e1.png)

それ以降の設定は省略して、「作成」ボタンを押すと以下のようになった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b54f6ec5-5df3-c8d4-e069-7d20905350df.png)

ここから、 pem ファイルをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d7f1a148-1080-05dc-e1e4-77f9c00ff77b.png)

B1s だと SSD が 30G 割り当てられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3ddf60d2-64a0-3048-b36e-1415f6958804.png)

デプロイに数分かかった後、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/c2074172-2ee0-f36b-a4d7-c856ccdfe742.png)
完了すると使えるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/cd11e633-3e46-69d8-ca9d-f5eb5f82bd38.png)
作成したVM

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/65c7c361-d78c-8da5-5410-c19366204ad4.png)


このキーを使って ssh をしようとしましたが、エラーが出ました。
```
$ ssh -i ~/00storage/nanbuwks/test-azure-gen_key.pem azureuser@20.125.147.200
The authenticity of host '20.125.147.200 (20.125.147.200)' can't be established.
ED25519 key fingerprint is SHA256:pgiZqC0AD+hvUr9dF+RTBXWL04hu+yEIbIiSlxTc96Q.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '20.125.147.200' (ED25519) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for '/home/nanbuwks/00storage/nanbuwks/test-azure-gen_key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/nanbuwks/00storage/nanbuwks/test-azure-gen_key.pem": bad permissions
azureuser@20.125.147.200: Permission denied (publickey).

```

これは ssh キーが他のユーザでも見えるようになっているためです。このために、以下のように操作して対応します。

```

$ chmod 400 ~/00storage/nanbuwks/test-azure-gen_key.pem 
```

再度 ssh を行うと接続できました。

```
$ ssh -i ~/00storage/nanbuwks/test-azure-gen_key.pem azureuser@20.125.147.200
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-1035-azure x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue Apr  4 15:34:31 UTC 2023

  System load:  0.02783203125     Processes:             99
  Usage of /:   5.1% of 28.89GB   Users logged in:       0
  Memory usage: 29%               IPv4 address for eth0: 10.0.0.4
  Swap usage:   0%

 * Introducing Expanded Security Maintenance for Applications.
   Receive updates to over 25,000 software packages with your
   Ubuntu Pro subscription. Free for personal use.

     https://ubuntu.com/azure/pro

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
```

ディスク構成を確認します。


```
azureuser@test-azure-gen:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  1.5G   28G   6% /
tmpfs           454M     0  454M   0% /dev/shm
tmpfs           182M  944K  181M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda15      105M  6.1M   99M   6% /boot/efi
/dev/sdb1       3.9G   28K  3.7G   1% /mnt
tmpfs            91M  4.0K   91M   1% /run/user/1000


```

CPUとメモリは以下のようになっていました。
```
azureuser@test-azure-gen:~$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 106
model name	: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
stepping	: 6
microcode	: 0xffffffff
cpu MHz		: 2793.626
cache size	: 49152 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 21
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data
bogomips	: 5587.25
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

azureuser@test-azure-gen:~$ cat /proc/meminfo
MemTotal:         927752 kB
MemFree:          289964 kB
MemAvailable:     523816 kB
Buffers:           21952 kB
Cached:           333456 kB
SwapCached:            0 kB
Active:           162292 kB
Inactive:         293992 kB
Active(anon):        888 kB
Inactive(anon):   108288 kB
Active(file):     161404 kB
Inactive(file):   185704 kB
Unevictable:       30852 kB
Mlocked:           27780 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                24 kB
Writeback:             0 kB
AnonPages:        130596 kB
Mapped:            60812 kB
Shmem:              4020 kB
KReclaimable:      28312 kB
Slab:              56380 kB
SReclaimable:      28312 kB
SUnreclaim:        28068 kB
KernelStack:        1932 kB
PageTables:         1908 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      463876 kB
Committed_AS:     406440 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       32464 kB
VmallocChunk:          0 kB
Percpu:              584 kB
HardwareCorrupted:     0 kB
AnonHugePages:     36864 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:       68872 kB
DirectMap2M:      978944 kB
DirectMap1G:           0 kB
```

Azure のアカウントの作成も含め、ほぼ待ち時間無しで作成できました。
今は異なっているかもしれませんが、2010年ごろにAWSのアカウントを開設しようとしたら半日ぐらい待つことがありました。
それに対し、素早くできたのは好感が持てます。


パッケージをアップグレードしようとしたら、以下のような結果になりました。

```
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
9 packages can be upgraded. Run 'apt list --upgradable' to see them.
azureuser@test-azure-gen:~$ sudo apt list --upgradable
Listing... Done
bind9-dnsutils/jammy-updates 1:9.18.12-0ubuntu0.22.04.1 amd64 [upgradable from: 1:9.18.1-1ubuntu1.3]
bind9-host/jammy-updates 1:9.18.12-0ubuntu0.22.04.1 amd64 [upgradable from: 1:9.18.1-1ubuntu1.3]
bind9-libs/jammy-updates 1:9.18.12-0ubuntu0.22.04.1 amd64 [upgradable from: 1:9.18.1-1ubuntu1.3]
libwbclient0/jammy-updates,jammy-security 2:4.15.13+dfsg-0ubuntu1.1 amd64 [upgradable from: 2:4.15.13+dfsg-0ubuntu1]
vim-common/jammy-updates,jammy-security 2:8.2.3995-1ubuntu2.5 all [upgradable from: 2:8.2.3995-1ubuntu2.4]
vim-runtime/jammy-updates,jammy-security 2:8.2.3995-1ubuntu2.5 all [upgradable from: 2:8.2.3995-1ubuntu2.4]
vim-tiny/jammy-updates,jammy-security 2:8.2.3995-1ubuntu2.5 amd64 [upgradable from: 2:8.2.3995-1ubuntu2.4]
vim/jammy-updates,jammy-security 2:8.2.3995-1ubuntu2.5 amd64 [upgradable from: 2:8.2.3995-1ubuntu2.4]
xxd/jammy-updates,jammy-security 2:8.2.3995-1ubuntu2.5 amd64 [upgradable from: 2:8.2.3995-1ubuntu2.4]

```

イメージはつどつどメンテナンスされているぽいです。


# 無料枠が過ぎた場合

30日をすぎると、以下のように表示されました。
実際には90日ほど経過した状態です。
「従量課金性の価格で Azure にサインアップします」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/dfbdb477-4caf-21a2-20ea-7806e2a1abff.png)
「次へ」を押して

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/229af999-e82f-1255-320a-8ac8e6febded.png)
今回はテクニカルサポートは無しで進めました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/09e2132e-17a4-f523-d4b7-8c6a7175057f.png)

30日からいままでは、自動で課金するようなことはなかったみたいですが、無料枠で作ったサーバはクリアされているみたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/646c77c9-c218-b3b7-60f2-0bff4d7e0fef.png)
前回と同じ構成を作ってみました。月額1000円弱です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2dd2dacb-c673-c77f-c5d2-cfbb23d4e2eb.png)

sshキーは新たに作る必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/9b6d1dbc-cbaa-aa66-03fe-836637397d7a.png)