【2025年8月最新】Azure VPSでマイクラサーバー構築完全ガイド|B1sプラン・NSG・IOPS最適化

【2025年8月最新】Azure VPSでマイクラサーバー構築完全ガイド|B1sプラン・NSG・IOPS最適化






【2025年8月最新】Azure VPSでマイクラサーバー構築完全ガイド|B1sプラン・NSG・IOPS最適化



Azure VPSでマイクラサーバー構築完全ガイド

目次

B1sプラン・NSG・IOPS最適化・自動バックアップ対応

最終更新: 2025年8月5日 | バージョン1.21.8対応

2025年8月最新情報

Microsoft Azureでマイクラサーバーを運用したいけれど、複雑な設定に戸惑っていませんか?Azure VPSは世界レベルのインフラを提供する一方で、Network Security GroupやIOPS設定など、独特の仕様があります。この記事では、B1sプランでの小規模運用から、本格的な大規模サーバーまで、Azure特有の設定を完全解説します!

1. Azure VPSの基礎知識とメリット

Azure Network Security Group

出典: Microsoft Learn

Azure Virtual Machinesの特徴

Azure VPSの強み


  • 世界規模のインフラ: 60+リージョンでの展開

  • エンタープライズグレード: 99.95%のSLA保証

  • 柔軟なスケーリング: 需要に応じた自動拡張

  • 豊富なセキュリティ機能: 多層防御システム

  • 統合管理: Azure Portalでの一元管理

マイクラサーバーでのメリット

技術的優位性
  • 低遅延ネットワーク: Azure Accelerated Networking
  • 高速ストレージ: Premium SSD with IOPS
  • 自動化: ARM テンプレートでの構築
  • 監視: Azure Monitor による24時間監視
  • 災害復旧: Azure Site Recovery
コスト効率
  • 従量課金制による柔軟な課金
  • リザーブドインスタンスで最大72%割引
  • ハイブリッド特典による既存ライセンス活用

2. B1sプランでの小規模サーバー構築

B1sプランの仕様と制限

B1sプランスペック

vCPU: 1コア
メモリ: 1GB
ストレージ: Premium SSD 対応
ネットワーク: 制限あり(640 Mbps)
月額料金: 約¥1,200-1,500

適用範囲


  • 2-5人の小規模サーバー

  • バニラサーバー(MODなし)

  • テスト・開発環境

  • 学習目的

Azure Portalでの VM作成

ステップ1:仮想マシンの作成

1. Azure Portalにログイン
2. “仮想マシン” → “作成”
3. 基本設定:
– リソースグループ: minecraft-rg
– 仮想マシン名: minecraft-server
– リージョン: Japan East
– イメージ: Ubuntu Server 22.04 LTS
– サイズ: Standard_B1s

ステップ2:認証設定

認証の種類: SSH公開キー
ユーザー名: azureuser
SSH公開キー: 新しいキーペアの生成
キーペア名: minecraft-server_key

ステップ3:ディスク設定

OS ディスクの種類: Premium SSD
暗号化の種類: 既定値
削除オプション: VM と一緒に削除

初期セットアップスクリプト

自動セットアップ用 cloud-init

#cloud-config
package_update: true
packages:
  - openjdk-21-jre-headless
  - screen
  - htop
  - unzip

write_files:
  - path: /opt/minecraft/start.sh
    content: |
      #!/bin/bash
      cd /opt/minecraft
      screen -dmS minecraft java -Xms512M -Xmx896M -jar server.jar nogui
    permissions: '0755'
    
  - path: /opt/minecraft/server.properties
    content: |
      server-port=25565
      gamemode=survival
      difficulty=normal
      max-players=5
      view-distance=6
      simulation-distance=4
      enable-command-block=false
      white-list=false
      motd=Azure Minecraft Server

runcmd:
  - mkdir -p /opt/minecraft
  - cd /opt/minecraft
  - wget https://piston-data.mojang.com/v1/objects/4707d00eb834b446575d89a61a11b5d548d8c001/server.jar
  - echo "eula=true" > eula.txt
  - chown -R azureuser:azureuser /opt/minecraft

3. Network Security Group設定詳解

Network Security Group Configuration

出典: Microsoft Learning

NSGの作成と基本設定

NSG作成手順

1. Azure Portal → “ネットワーク セキュリティ グループ”
2. “作成” をクリック
3. 基本設定:
– リソースグループ: minecraft-rg
– 名前: minecraft-nsg
– リージョン: Japan East

マイクラサーバー用セキュリティルール

1. Minecraft サーバーアクセス

名前: Allow-Minecraft
優先度: 100
ソース: Any
ソースポート範囲: *
宛先: Any
宛先ポート範囲: 25565
プロトコル: TCP
アクション: 許可

2. SSH アクセス(管理用)

名前: Allow-SSH
優先度: 110
ソース: My IP address
ソースポート範囲: *
宛先: Any
宛先ポート範囲: 22
プロトコル: TCP
アクション: 許可

3. Query ポート

名前: Allow-Query
優先度: 120
ソース: Any
ソースポート範囲: *
宛先: Any
宛先ポート範囲: 25565
プロトコル: UDP
アクション: 許可

高度なセキュリティ設定

地域制限ルール(推奨)

# PowerShell スクリプト例
$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName "minecraft-rg" -Name "minecraft-nsg"

# 日本国内のみアクセス許可
$rule = New-AzNetworkSecurityRuleConfig `
  -Name "Allow-Japan-Only" `
  -Protocol TCP `
  -Direction Inbound `
  -Priority 90 `
  -SourceAddressPrefix "223.252.0.0/16,210.251.0.0/16" `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 25565 `
  -Access Allow

$nsg.SecurityRules.Add($rule)
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg

時間制限アクセス


Application Security Group 作成

時間ベースのアクセス制御

自動化スクリプトによるルール更新

4. 自動バックアップシステム構築

Azure Backupの設定

Recovery Services コンテナー作成

1. Azure Portal → “Recovery Services コンテナー”
2. “作成” をクリック
3. 基本設定:
– コンテナー名: minecraft-backup-vault
– リソースグループ: minecraft-rg
– リージョン: Japan East

VMバックアップポリシー設定


毎日午前3時に自動バックアップ

日次: 30日間保持

週次: 12週間保持

カスタム バックアップスクリプト

Minecraft データ専用バックアップ

#!/bin/bash
# minecraft_backup.sh

# Azure CLI認証
az login --identity

# 設定
STORAGE_ACCOUNT="minecraftbackup"
CONTAINER_NAME="world-backups"
MINECRAFT_DIR="/opt/minecraft"
DATE=$(date +%Y%m%d_%H%M%S)

# Minecraft サーバー停止
echo "Stopping Minecraft server..."
screen -S minecraft -X stuff "save-all$(echo -ne '\r')"
sleep 10
screen -S minecraft -X stuff "stop$(echo -ne '\r')"
sleep 30

# ワールドデータの圧縮
echo "Creating backup archive..."
tar -czf "/tmp/world_backup_$DATE.tar.gz" -C $MINECRAFT_DIR world

# Azure Blob Storage にアップロード
echo "Uploading to Azure Storage..."
az storage blob upload \
  --account-name $STORAGE_ACCOUNT \
  --container-name $CONTAINER_NAME \
  --name "world_backup_$DATE.tar.gz" \
  --file "/tmp/world_backup_$DATE.tar.gz"

# 古いバックアップ削除(30日以上前)
OLD_DATE=$(date -d '30 days ago' +%Y%m%d)
az storage blob list \
  --account-name $STORAGE_ACCOUNT \
  --container-name $CONTAINER_NAME \
  --query "[?properties.lastModified < '$OLD_DATE'].name" \
  --output tsv | \
  xargs -I {} az storage blob delete \
    --account-name $STORAGE_ACCOUNT \
    --container-name $CONTAINER_NAME \
    --name {}

# Minecraft サーバー再起動
echo "Restarting Minecraft server..."
cd $MINECRAFT_DIR
screen -dmS minecraft java -Xms512M -Xmx896M -jar server.jar nogui

# 一時ファイル削除
rm "/tmp/world_backup_$DATE.tar.gz"

echo "Backup completed: world_backup_$DATE.tar.gz"

5. SSD IOPS最適化テクニック

Azure Diskの種類と性能

ディスクタイプ IOPS スループット 価格/月 推奨用途
Standard HDD 500 60 MB/s ¥500 テスト環境
Standard SSD 6,000 750 MB/s ¥1,500 小規模サーバー
Premium SSD 20,000 900 MB/s ¥3,000 中規模サーバー
Ultra SSD 160,000 4,000 MB/s ¥10,000+ 大規模サーバー

Premium SSD 最適化設定

ディスク設定最適化

{
  "diskSizeGB": 128,
  "diskIOPSReadWrite": 500,
  "diskMBpsReadWrite": 100,
  "caching": "ReadWrite",
  "writeAcceleratorEnabled": false,
  "tier": "P10"
}

Linux ファイルシステム最適化

# /etc/fstab 最適化
/dev/sdc1 /opt/minecraft ext4 defaults,noatime,discard 0 2

# I/O スケジューラー最適化
echo mq-deadline > /sys/block/sdc/queue/scheduler

# Read-ahead 設定
blockdev --setra 4096 /dev/sdc1

Ultra SSD 構成(大規模サーバー用)

Ultra SSD 作成スクリプト

# Ultra SSD ディスク作成
$diskConfig = New-AzDiskConfig `
  -Location "Japan East" `
  -DiskSizeGB 1024 `
  -DiskIOPSReadWrite 10000 `
  -DiskMBpsReadWrite 500 `
  -AccountType "UltraSSD_LRS" `
  -CreateOption "Empty"

$disk = New-AzDisk `
  -ResourceGroupName "minecraft-rg" `
  -DiskName "minecraft-ultra-disk" `
  -Disk $diskConfig

# VM にアタッチ
$vm = Get-AzVM -ResourceGroupName "minecraft-rg" -Name "minecraft-server"
$vm = Add-AzVMDataDisk -VM $vm -Name "minecraft-ultra-disk" -CreateOption "Attach" -ManagedDiskId $disk.Id -Lun 1
Update-AzVM -ResourceGroupName "minecraft-rg" -VM $vm

6. Azure独特の運用ベストプラクティス

Azure Monitorによる監視

カスタムメトリクス設定

#!/bin/bash
# azure_metrics.sh

# Azure Monitor エージェント設定
curl -sL https://aka.ms/InstallAzureMonitoringAgent | bash

# カスタムメトリクス送信
TPS=$(screen -S minecraft -p 0 -X stuff "forge tps$(echo -ne '\r')" | grep "TPS" | awk '{print $2}')
PLAYERS=$(screen -S minecraft -p 0 -X stuff "list$(echo -ne '\r')" | grep "players online" | awk '{print $3}')

# メトリクス送信
curl -X POST https://dc.services.visualstudio.com/v2/track \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Microsoft.ApplicationInsights.Event",
    "time": "'$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)'",
    "data": {
      "baseType": "EventData",
      "baseData": {
        "name": "MinecraftMetrics",
        "properties": {
          "TPS": "'$TPS'",
          "Players": "'$PLAYERS'"
        }
      }
    }
  }'

ダッシュボード設定

TPS Trend

5分間隔でのTPS推移監視

Player Count

1時間ごとの最大プレイヤー数

Resource Usage

CPU・メモリ・ディスク使用率

Azure DevOpsによるCI/CD

パイプライン設定例

# azure-pipelines.yml
trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  resourceGroup: 'minecraft-rg'
  vmName: 'minecraft-server'

stages:
- stage: Deploy
  jobs:
  - job: UpdateServer
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: 'minecraft-service-connection'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: |
          # サーバー停止
          az vm run-command invoke \
            --resource-group $(resourceGroup) \
            --name $(vmName) \
            --command-id RunShellScript \
            --scripts "screen -S minecraft -X stuff 'stop'"
          
          # サーバーファイル更新
          az vm run-command invoke \
            --resource-group $(resourceGroup) \
            --name $(vmName) \
            --command-id RunShellScript \
            --scripts "cd /opt/minecraft && wget -O server.jar https://piston-data.mojang.com/v1/objects/latest/server.jar"
          
          # サーバー起動
          az vm run-command invoke \
            --resource-group $(resourceGroup) \
            --name $(vmName) \
            --command-id RunShellScript \
            --scripts "cd /opt/minecraft && screen -dmS minecraft java -Xms512M -Xmx896M -jar server.jar nogui"

7. コスト最適化戦略

Azure Cost Managementの活用

コスト予算アラート設定

月額予算
¥5,000
80%使用時アラート
¥4,000
90%使用時アラート
¥4,500

スケジュールベース自動停止


プレイヤー0人時の自動停止

深夜時間帯の自動停止

平日昼間の自動停止

Reserved InstancesとSpot Instances

契約タイプ B1s年額 割引率 適用シナリオ リスク
従量課金 ¥14,400 - 不定期使用 高コスト
1年Reserved ¥10,080 30% 定期使用 中途解約不可
3年Reserved ¥7,200 50% 長期運用 長期拘束
Spot Instance ¥2,880-7,200 50-80% 開発・テスト 強制停止リスク

コスト最適化のベストプラクティス

基本戦略

  • 使用時間の最適化

  • 適切なサイズ選択

  • ストレージ最適化
高度な戦略

  • ハイブリッド特典活用

  • リザーブドインスタンス

  • 自動スケーリング

8. Azure vs 他社VPS比較

包括的比較

項目 Azure B1s XServer VPS ConoHa VPS カゴヤ VPS
月額料金 ¥1,200 ¥830 ¥682 ¥550
CPU 1コア 2コア 1コア 1コア
メモリ 1GB 2GB 1GB 1GB
ストレージ Premium SSD NVMe SSD SSD SSD
ネットワーク 制限あり 無制限 無制限 無制限
SLA 99.95% 99.99% 99.99% 99.95%
グローバル展開
エンタープライズ機能

推奨シナリオ

Azure推奨シナリオ


  • 海外プレイヤーが多い

  • エンタープライズ級の可用性が必要

  • 他のAzureサービスとの連携

  • 高度な監視・分析が必要

  • コンプライアンス要件が厳しい

他社VPS推奨シナリオ


  • 国内プレイヤーのみ

  • シンプルな構成で十分

  • コスト最優先

  • 技術サポートを重視

推奨構成まとめ

小規模サーバー(2-5人)

Azure: B1s + Standard SSD
代替: カゴヤ 1GBプラン

中規模サーバー(5-15人)

Azure: B2s + Premium SSD
代替: エックスサーバー 4GBプラン

大規模サーバー(15人以上)

Azure: D2s_v3 + Ultra SSD
代替: ConoHa 8GBプラン
推奨: ConoHa for GAME

まとめ

Azure VPSは世界レベルのインフラと豊富な機能を提供しますが、設定の複雑さとコストが課題となる場合があります。Network Security Groupによる高度なセキュリティ、Azure Backupによる企業レベルの災害復旧、Premium SSDによる高性能ストレージなど、エンタープライズ級の機能が魅力です。

Azure VPS選択のポイント

  1. グローバル展開: 海外プレイヤーとの低遅延通信
  2. エンタープライズ機能: 高度な監視・バックアップ・セキュリティ
  3. スケーラビリティ: 需要に応じた柔軟な拡張
  1. 統合性: 他のAzureサービスとのシームレス連携
  2. コンプライアンス: 厳格なデータ保護要件への対応

ただし、国内での小中規模運用では、エックスサーバー VPS for GameConoHa for GAMEカゴヤ CLOUD VPSの方がコストパフォーマンスに優れる場合が多いのも事実です。

2025年のマイクラサーバー運用では、要件に応じた適切なプラットフォーム選択が成功の鍵となります。この記事を参考に、最適なインフラを選択してください!

免責事項

※本記事は2025年8月5日時点の情報に基づいて執筆されています。Azureの料金体系やサービス内容は変更される可能性があるため、最新情報は公式サイトをご確認ください。

重要: Azure VPSの設定は複雑で、誤った設定により予期しない料金が発生する可能性があります。必ず料金アラートを設定し、テスト環境で十分検証してから本番環境に適用してください。重要なデータは複数の場所にバックアップを取ってください。


目次