Azure VM vs Amazon EC2構築ガイド|コストと性能で選ぶクラウド基盤

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Azure > Azure VM vs Amazon EC2構築ガイド|コストと性能で選ぶクラウド基盤
「AzureのVMとAWSのEC2、どちらを選べばいいのか」という問いは、クラウド選定の現場で繰り返される問題です。
両者は機能的に近く見えますが、構築コマンド・ネットワーク設計・課金の仕組みがそれぞれ異なります。「amazon azure」で検索するエンジニアの多くは、コストや構築手順を比べながら判断したいはずです。

この記事では、Azure VMとAmazon EC2をazコマンドとaws CLIで実際に構築しながら、コスト・性能・運用性の3軸で選定基準を整理します。Ubuntu 24.04 LTS / RHEL 9.4を対象に、実行結果付きで解説します。

この記事のポイント

・az vm createとaws ec2 run-instancesでそれぞれ5分以内にLinux VMを起動できる
・コスト比較ではスペック・予約プラン・既存資産によりAzure/AWSどちらが有利かが変わる
・VNetとVPCのサブネット設計の違いを把握するとトラブルが大幅に減る
・既存のMicrosoft/AWS資産とチームスキルが選択の最大の決め手になる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Azure VMとAmazon EC2の基本アーキテクチャ比較

両サービスの設計思想の違いを先に把握すると、後の手順が理解しやすくなります。
比較項目 Azure VM Amazon EC2
ネットワーク単位 VNet(仮想ネットワーク) VPC(Virtual Private Cloud)
サブネット設計 VNet内に自由に配置(AZをまたげる) サブネット=1つのAZ固定
CLIツール az(Azure CLI) aws(AWS CLI)
認証方式 az login(Entra ID) aws configure(アクセスキー)
リソース管理単位 リソースグループ リージョン + タグ
無料枠(12ヶ月) B1s(1vCPU/1GB)750時間 t2.micro(1vCPU/1GB)750時間
AzureはVMを作成する前に必ず「リソースグループ」を用意します。AWSのEC2は「VPC → サブネット → インスタンス」の順で設計しますが、Azureは「リソースグループ → VNet → VM」という整理です。どちらも概念は似ていますが名称と操作コマンドが異なります。

Azure VMを構築する実践手順(azコマンド)

1. ログイン確認とリソースグループの作成

まずAzure CLIのバージョンとサブスクリプションの状態を確認します。

# Azure CLIのバージョン確認 az --version # ログイン中のサブスクリプションを確認 az account show --query "{name:name,id:id}" -o table

Name Id --------------- ------------------------------------ My Azure Sub xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

リソースグループを東日本リージョンに作成します。

# リソースグループの作成 az group create --name rg-linux-lab --location japaneast

{ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-linux-lab", "location": "japaneast", "name": "rg-linux-lab", "properties": { "provisioningState": "Succeeded" } }

2. Azure VMの作成(Ubuntu 24.04 LTS)

az vm create 1コマンドでVNet・サブネット・パブリックIPを自動生成しながらVMを起動できます。

# Standard_B2s(2vCPU・4GB RAM)でUbuntu 24.04 LTS VMを作成 az vm create --resource-group rg-linux-lab --name vm-ubuntu-01 --image Ubuntu2404 --size Standard_B2s --admin-username azureuser --generate-ssh-keys --location japaneast

{ "fqdns": "", "id": "/subscriptions/xxxxxxxx/resourceGroups/rg-linux-lab/providers/Microsoft.Compute/virtualMachines/vm-ubuntu-01", "location": "japaneast", "macAddress": "00-0D-3A-xx-xx-xx", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "20.xxx.xxx.xxx", "resourceGroup": "rg-linux-lab" }

SSH接続と動作確認を行います。Linux ポート確認の全コマンドでVM側のポートが開いているか確認する方法も参考になります。

# Azure VMへのSSH接続 ssh azureuser@20.xxx.xxx.xxx # 接続後:OSバージョン確認 cat /etc/os-release

NAME="Ubuntu" VERSION="24.04.1 LTS (Noble Numbat)" ID=ubuntu ID_LIKE=debian VERSION_ID="24.04" PRETTY_NAME="Ubuntu 24.04.1 LTS"

3. NSG(ネットワークセキュリティグループ)の確認

AzureのNSGはAWSのセキュリティグループに相当するファイアウォールです。

# NSGインバウンドルールの一覧表示 az network nsg rule list --nsg-name vm-ubuntu-01NSG --resource-group rg-linux-lab --query "[].{Name:name,Priority:priority,Direction:direction,Port:destinationPortRange,Access:access}" --output table

Name Priority Direction Port Access ---------------- ---------- ----------- ------ -------- default-allow-ssh 1000 Inbound 22 Allow

デフォルトでSSH(22番)のみ許可されています。本番環境では接続元IPを --source-address-prefixes "自分のPCのIPアドレス/32" で絞るのが鉄則です。

Amazon EC2を構築する実践手順(aws CLIコマンド)

1. VPCとサブネットの確認

EC2ではVPCが前提です。まずデフォルトVPCの存在を確認します。

# デフォルトVPCの確認(東京リージョン) aws ec2 describe-vpcs --filters "Name=isDefault,Values=true" --region ap-northeast-1 --query "Vpcs[0].{VpcId:VpcId,CIDR:CidrBlock}" --output table

----------------------------------------- | DescribeVpcs | +----------------+----------------------+ | CIDR | VpcId | +----------------+----------------------+ | 172.31.0.0/16 | vpc-0abc1234def5678 | +----------------+----------------------+

2. Amazon EC2インスタンスの作成(Ubuntu 24.04 LTS)

# Ubuntu 24.04 LTSの最新AMI IDを取得(Canonical公式・東京リージョン) AMI_ID=$(aws ec2 describe-images --owners 099720109477 --filters "Name=name,Values=ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*" "Name=state,Values=available" --region ap-northeast-1 --query "reverse(sort_by(Images,&CreationDate))[0].ImageId" --output text) echo "使用するAMI_ID: $AMI_ID"

使用するAMI_ID: ami-0d52744d6551d851e

# EC2インスタンスの起動(t3.medium: 2vCPU・4GB RAM) aws ec2 run-instances --image-id "$AMI_ID" --instance-type t3.medium --key-name my-key-pair --region ap-northeast-1 --count 1 --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=ec2-ubuntu-01}]' --query "Instances[0].{InstanceId:InstanceId,State:State.Name,Type:InstanceType}" --output table

-------------------------------------------------- | RunInstances | +---------------------+----------+--------------+ | InstanceId | State | Type | +---------------------+----------+--------------+ | i-0abcd1234ef5678 | pending | t3.medium | +---------------------+----------+--------------+

3. 起動待機とSSH接続

# インスタンスの起動を待機(running状態になるまでブロック) aws ec2 wait instance-running --instance-ids i-0abcd1234ef5678 --region ap-northeast-1 # パブリックIPの取得 EC2_IP=$(aws ec2 describe-instances --instance-ids i-0abcd1234ef5678 --region ap-northeast-1 --query "Reservations[0].Instances[0].PublicIpAddress" --output text) echo "EC2 IP: $EC2_IP" # SSH接続 ssh -i my-key-pair.pem ubuntu@$EC2_IP

EC2 IP: 13.xxx.xxx.xxx Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-1015-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro Last login: Wed Oct 15 09:32:11 2026 from 203.xxx.xxx.xxx ubuntu@ip-172-31-xx-xx:~$

コストで比較する:azure vmとamazon ec2の料金設計

2vCPU・4GB RAMクラスを東日本・東京リージョンで比べます(従量課金の参考値・2026年10月時点)。
比較項目 Azure VM(Standard_B2s) Amazon EC2(t3.medium)
vCPU / RAM 2vCPU / 4GB 2vCPU / 4GB
時間単価(参考) 約¥5.4/時間 約¥8.7/時間(0.0544USD/h換算)
月間フル稼働(参考) 約¥4,000 約¥6,400
予約割引(1年) 約40%引き(Reservedプラン) 約40%引き(RIスタンダード)
Windows Serverライセンス Hybrid Benefit適用可(大幅割引) BYOL(ライセンス持ち込み)対応
※価格は為替・プランにより変動します。必ず公式の料金ページで最新値を確認してください。

コスト面でAzureが有利なケース:
・Windows Serverライセンスを保有している(Hybrid Benefitで最大40%削減)
・Microsoft 365やEntra IDとの統合でライセンスをまとめて管理したい
・Azure DevOpsやVisual Studioのクレジットが発生している

コスト面でAWSが有利なケース:
・Spot Instanceで中断耐性のあるバッチ処理を大量に回す(スポット市場の歴史が長い)
・Savings Plansで複数サービス(EC2・Lambda・Fargate)をまとめて予約購入したい

Azureの学習コストを下げたい方は、LinuxエンジニアのためのAzureハンズオン学習ガイドもあわせて確認してください。

性能・機能で比較する:どちらが現場で使いやすいか

1. ネットワーク設計の違い

AzureのVNetは「サブネットがAZをまたげる」設計です。同じサブネットに異なるAZのVMを置けます。
AWSのVPCは「サブネット=1つのAZ固定」なので、マルチAZ構成では必ずサブネットを複数作る必要があります。

どちらが優れているかではなく、AWSのほうが「AZごとに何が動いているか」が見やすく、障害の影響範囲が把握しやすいという利点があります。一方Azureは「サブネットを増やさずに冗長化できる」シンプルさが魅力です。

2. CLIの操作性

Azure CLIとAWS CLIはどちらもPythonベースで構造が似ています。実際にVM一覧を取得するコマンドを比べてみます。

# Azure CLI:VMの一覧(tableフォーマット) az vm list --resource-group rg-linux-lab -o table # Name ResourceGroup Location Zones # ------------- --------------- ---------- ------- # vm-ubuntu-01 rg-linux-lab japaneast # AWS CLI:EC2インスタンスの一覧(JMESPathクエリが必要) aws ec2 describe-instances --query "Reservations[].Instances[].{ID:InstanceId,Name:Tags[?Key=='Name']|[0].Value,State:State.Name}" --region ap-northeast-1 --output table # ----------------------------------------------------- # | DescribeInstances | # +---------------------+--------------+---------+ # | ID | Name | State | # +---------------------+--------------+---------+ # | i-0abcd1234ef5678 | ec2-ubuntu-01| running | # +---------------------+--------------+---------+

AWS CLIは --query でJMESPath記法が必要になる場面が多く、慣れるまで記述が複雑です。Azure CLIは -o table だけで整形された出力が得やすい傾向があります。

3. OSイメージ・ディストリビューション

OS Azure VM Amazon EC2
RHEL 9 ○(マーケットプレイス) ○(AMIマーケットプレイス)
Ubuntu 24.04 LTS ○(標準イメージ) ○(Canonical提供AMI)
Rocky Linux / AlmaLinux ○(コミュニティ提供) ○(AMIマーケットプレイス)
Amazon Linux 2023 ×(AWS専用) ○(AWSネイティブ・RHEL系)
Azure Linux(CBL-Mariner) ○(Microsoft開発・維持) ×(Azure専用)
RHEL系の実務スキルを習得するなら、どちらのクラウドでも同じRHELやRocky Linuxのイメージを使えます。rpm コマンドの使い方はRHEL系OS共通の知識として両クラウドで活かせます。

トラブルシュート:よくある接続エラーの対処法

1. Azure VM:「Connection timed out」でSSHが繋がらない

NSGのインバウンドルールにSSH(22番)が存在しないか、ソースIPが制限されているケースです。

# NSGにSSHルールを追加(接続元IPを自分のPCのIPに絞る) az network nsg rule create --nsg-name vm-ubuntu-01NSG --resource-group rg-linux-lab --name allow-ssh-myip --priority 100 --protocol Tcp --direction Inbound --source-address-prefixes "203.xxx.xxx.xxx/32" --destination-port-ranges 22 --access Allow

全IP(0.0.0.0/0)は絶対に使わないこと。AzureのSecurity Centerが警告を出すだけでなく、ブルートフォース攻撃の対象になります。

2. Amazon EC2:「Permission denied (publickey)」が出る

鍵ファイルのパーミッションが緩い場合にSSHクライアントが接続を拒否します。

# 症状の確認 ssh -i my-key-pair.pem ubuntu@13.xxx.xxx.xxx # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ # @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ # Permissions 0644 for 'my-key-pair.pem' are too open. # 修正:所有者のみ読み取りに変更 chmod 600 my-key-pair.pem # 再接続 ssh -i my-key-pair.pem ubuntu@13.xxx.xxx.xxx

3. Azure VM:az loginの「AADSTS50076」エラー

多要素認証(MFA)が必要な組織テナントで対話型ログインが難しい場合は、デバイスコードフローを使います。

# デバイスコードフローで認証(MFA対応) az login --use-device-code # To sign in, use a web browser to open the page # https://microsoft.com/devicelogin # and enter the code XXXXXXXX to authenticate.

本記事のまとめ:amazon azureどちらを選ぶかの判断軸

判断軸 Azure VMが有利 Amazon EC2が有利
既存資産 Microsoft 365・Entra ID・Windows Server AWS S3・RDS・Lambda等のAWSサービス群
コスト戦略 Hybrid BenefitとAzure予約割引の組み合わせ Spot InstanceとSavings Plansの柔軟活用
ネットワーク設計 AZをまたぐシンプルなサブネット設計 AZ単位のサブネットで障害範囲を明確化
エコシステム Azure DevOps・GitHub Actions・Microsoft製品統合 ECS・EKS・Lambda・豊富なマネージドサービス
チームスキル Microsoft製品に慣れたメンバー多数 AWSに慣れたエンジニアが多い
認定資格 AZ-900・AZ-104を目指している SAA・SOA・DVAを取得したい
「amazon azureどちらが優れているか」という問いに普遍的な答えはありません。ただ、「どちらでもLinuxサーバーの基礎スキルが共通で活かせる」点は確かです。azコマンドとaws CLIの構文の違いは慣れの問題にすぎず、VNet/VPC・サブネット・セキュリティグループ(NSG)の概念は本質的に同じです。まずLinuxの基礎を固めてからクラウドのCLI操作に進む学習順序が、現場では最も効率的です。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
AzureでもAWSでも通じるLinuxの実践スキルを2日間のハンズオンセミナーで体系的に学べます。
>> LinuxエンジニアのためのAzure学習ガイドはこちら

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。