Azure と AWS の仮想マシンを個人的に比較

Azure Virtual Machine (Azure VM) と Amazon Elastic Compute Cloud (Amazon EC2) は、クラウドコンピューティングにおける主要な仮想マシンサービスです。
両者には多くの類似点がありますが、それぞれに特徴があります。

## 仮想マシンの基本機能

### インスタンスタイプ

- **Azure VM:** シリーズごとに特徴があり、バースト対応、汎用、メモリ最適化、コンピューティング最適化、GPU つき、など
  - https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/series/
- **Amazon EC2:** ファミリーごとに特徴があり、バースト対応、一般用途向け、メモリ最適化、コンピューティング最適化、GPU つき、など
  - https://aws.amazon.com/jp/ec2/instance-types/

### 物理配置

- **Azure VM:** 可用性セット[^p1]や近接配置グループ[^p3]がある
  - 障害ドメイン: 共通の電源とネットワーク スイッチを共有する VM のグループを定義
  - 更新ドメイン: 同時に再起動できる VM と基盤となる物理ハードウェアのグループを定義
  - 近接配置グループ: VM を物理的に近い場所に配置
- **Amazon EC2:** プレイスメントグループのオプションがある[^p2]
  - クラスター: AZ 内で密な場所にインスタンスをまとめる
  - スプレッド: 別々のハードウェアに分散配置し、物理サーバーの障害影響の確立を軽減
  - パーティション: インスタンスを論理的なパーティションに配置し、パーティションの異なるインスタンスが同一のハードウェアを共有しないよう分散配置

[^p1]: https://learn.microsoft.com/ja-jp/azure/virtual-machines/availability-set-overview
[^p2]: https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html
[^p3]: https://learn.microsoft.com/ja-jp/azure/virtual-machines/co-location

### 休止状態によるコスト削減

- **Azure VM:** 可能
  - https://azure.microsoft.com/ja-jp/updates/general-availability-vm-hibernation-general-purpose
  - [2024/5/28 に GA した](https://azure.microsoft.com/ja-jp/updates/general-availability-vm-hibernation-general-purpose)
- **Amazon EC2:** 可能
  - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Hibernate.html

### 課金モデル

- **Azure VM:** 分単位での課金で、1 分未満の利用分を切り捨て[^s1]
- **Amazon EC2:** 秒単位での課金、最小課金時間は 60 秒[^s2]

[^s1]: https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/linux/#faq
[^s2]: https://aws.amazon.com/jp/ec2/pricing/

### 料金節約オプション

- **Azure VM:** Azure Reserved Virtual Machine Instances[^r1]、Spot Virtual Machines[^r2] が利用可能
  - Azure Reserved Virtual Machine Instances: 1 年または 3 年分の前払いまたは月払いにより、VM 料金を最大 72%割引
  - Spot Virtual Machines: 未使用の Azure コンピューティング容量を、従量課金制の価格と比較して最大 90% の割引価格でプロビジョニング
- **Amazon EC2:** リザーブドインスタンス[^r3]、Savings Plans[^r4]、スポットインスタンス[^r5] が利用可能
  - リザーブドインスタンス: 1 年 または 3 年分の前払いまたは月払いにより、EC2 料金を最大 72%割引
  - Savings Plans: リザーブドインスタンスの後継で、より優れた柔軟性
    - Compute Savings Plans: インスタンスファミリー、サイズ、アベイラビリティーゾーン、リージョン、OS、またはテナンシーに関わらず EC2 インスタンスの使用に自動で適用
    - EC2 Instance Savings Plans: アベイラビリティーゾーン、サイズ、OS、またはテナンシーに関わらず、そのリージョン内で選択されたインスタンスファミリーのコストを自動的に削減
  - スポットインスタンス: 未使用の EC2 容量を活用して、オンデマンド料金が最大 90% 割引

[^r1]: https://azure.microsoft.com/ja-jp/pricing/reserved-vm-instances
[^r2]: https://azure.microsoft.com/ja-jp/products/virtual-machines/spot
[^r3]: https://aws.amazon.com/jp/ec2/pricing/reserved-instances/
[^r4]: https://aws.amazon.com/jp/savingsplans/compute-pricing/
[^r5]: https://aws.amazon.com/jp/ec2/spot/

## 関連サービス

### 仮想マシンのイメージ

- **Azure VM:** そのものを解説する記事が見つかりませんでしたが、「VM イメージ」で良さそうです
  - https://learn.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage
  - https://learn.microsoft.com/ja-jp/partner-center/marketplace-offers/azure-vm-use-own-image
- **Amazon EC2:** Amazon Machine Image (AMI)
  - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AMIs.html

### インスタンスへのセキュアなアクセス

- **Azure VM:** Bastion を利用
  - https://learn.microsoft.com/ja-jp/azure/bastion/bastion-overview
- **Amazon EC2:** AWS Systems Manager の Session Manager 等を利用
  - https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html

## バックアップ

- **Azure VM:** Azure Backup を利用
  - https://learn.microsoft.com/ja-jp/azure/backup/backup-azure-vms-introduction
  - バックアップは、Recovery Services コンテナーに転送される
- **Amazon EC2:** AWS Backup を利用
  - https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html
  - バックアップは、Backup Vault に保存される

### ディスク (揮発性のある内蔵ディスク)

- **Azure VM:** 一時ディスク
  - https://learn.microsoft.com/ja-jp/azure/virtual-machines/managed-disks-overview#temporary-disk
- **Amazon EC2:** インスタンスストア
  - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/InstanceStorage.html

### ディスク (永続的な保存、ネットワーク接続)

- **Azure VM:** マネージドディスク
  - https://learn.microsoft.com/ja-jp/azure/virtual-machines/managed-disks-overview
- **Amazon EC2:** Amazon Elastic Block Store (EBS)
  - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/storage_ebs.html

### 仮想ネットワークカード

- **Azure VM:** ネットワーク インターフェイス
  - https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-network-network-interface
- **Amazon EC2:** Elastic Network Interface (ENI)
  - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/storage_ebs.html