AzureでMinecraftサーバー
JAZUG 札幌支部 松田
2015/07/11
自己紹介
JAZUG札幌支部のスタッフ
札幌でソフトウェア作るお仕事
ほんのちょっとだけ変かもしれないけど、普通の人
Twitter:@DarkCrash3
Facebook:yasuaki.matsuda.75
Copyright© 2015, JAZUG All Rights Reserved.
2
きたあずの紹介
■正式名称
Japan Azure User Group 札幌支部
■活動概要
Cloudにちょっと興味のあるゆるふわな方から
実ビジネスで使用される方まで学べる勉強会を開催しています。
■Webサイト
http://kitaazu.azurewebsites.net/
Copyright© 2015, JAZUG All Rights Reserved.
3
きたあずちゃん
(@kitaazu_chan)
Microsoft Azure 豊富なサービス
Copyright© 2015, JAZUG All Rights Reserved.
4
Microsoft Azure 豊富なサービス
Copyright© 2015, JAZUG All Rights Reserved.
5
Minecraft って?
軽く紹介。軽く
Copyright© 2015, JAZUG All Rights Reserved.
6
Minecraft
『Minecraft』(マインクラフト)は、Notch(マルクス・ペ
ルソン)とその会社 (Mojang AB) の社員が開発したサンドボッ
クスゲームである。ブロックを空中や地面に配置し、自由な形
のものを作っていくゲームである。シングルプレイやマルチプ
レイがあり、日本語圏では『マイクラ』という略称で呼ぶこと
もある。
ウィキペディア (Wikipedia): フリー百科事典
「Minecraft」より引用
Copyright© 2015, JAZUG All Rights Reserved.
7
Minecraft スクリーンショット
Copyright© 2015, JAZUG All Rights Reserved.
8
Minecraft Official Movie
Copyright© 2015, JAZUG All Rights Reserved.
9
Minecraftの生活
3種類のゲームモード。
一つはサバイバルモード、実生活っぽい要素がある。
一つはクリエイティブモード、ひたすら建造物を作る。
一つはアドベンチャーモード、冒険。
(初期はクリエイティブモードしかなかったらしい。)
Copyright© 2015, JAZUG All Rights Reserved.
10
Minecraftの生活(サバイバル)
資源
集め
道具
作り
ブロック
設置
戦い!
食べる
寝る
栽培
繁殖
Copyright© 2015, JAZUG All Rights Reserved.
11
Minecraftの生活(資源集め)
Copyright© 2015, JAZUG All Rights Reserved.
12
Minecraftの生活(道具作り)
Copyright© 2015, JAZUG All Rights Reserved.
13
Minecraftの生活(ブロック設置)
Copyright© 2015, JAZUG All Rights Reserved.
14
Minecraftの生活(戦い!)
Copyright© 2015, JAZUG All Rights Reserved.
15
Minecraftの生活(食べる)
Copyright© 2015, JAZUG All Rights Reserved.
16
Minecraftの生活(寝る)
Copyright© 2015, JAZUG All Rights Reserved.
17
Minecraftの生活(栽培)
Copyright© 2015, JAZUG All Rights Reserved.
18
Minecraftの生活(繁殖)
Copyright© 2015, JAZUG All Rights Reserved.
19
Minecraftの生活(クリエイティブ)
ブロック
設置
Copyright© 2015, JAZUG All Rights Reserved.
20
Minecraftの生活(クリエイティブ)
Copyright© 2015, JAZUG All Rights Reserved.
21
Minecraftの生活(クリエイティブ)
Copyright© 2015, JAZUG All Rights Reserved.
22
マルチプレイ
マルチプレイ(複数人で一つの世界)できる。
個人でマルチプレイサーバーを建てることができる!
クライアントでサーバーとして動かすこともできる!
クライアントなしの専用サーバーとして動かすこともできる!
Copyright© 2015, JAZUG All Rights Reserved.
23
公式サイトからダウンロード可能
Copyright© 2015, JAZUG All Rights Reserved.
24
Minecraftのお値段
Copyright© 2015, JAZUG All Rights Reserved.
25
Microsoftによる買収
2014年9月15日、MicrosoftによるMojang ABとMinecraftフラン
チャイズの買収が発表された。買収額は25億ドル。この買収に
伴い、マルクス・ぺルソンをはじめとするMojang AB創設者の
3人が退社する
ウィキペディア (Wikipedia): フリー百科事典
「Mojang」より引用
Copyright© 2015, JAZUG All Rights Reserved.
26
Microsoft Azure
Minecraft Azure? Microsoft Azure?
やりすぎ、疲れ目にご注意
Copyright© 2015, JAZUG All Rights Reserved.
27
Microsoft提供の仮想マシン
Copyright© 2015, JAZUG All Rights Reserved.
28
Previewポータルより
Copyright© 2015, JAZUG All Rights Reserved.
29
Bitnami 、コミュニティ提供など
Copyright© 2015, JAZUG All Rights Reserved.
30
DEMO
デプロイしてみたい?してみる?してみよう
\(’-’)/\(*’-’*)/\(’-’)/
Copyright© 2015, JAZUG All Rights Reserved.
31
おさらい
Previewポータルを開いた
+新規を選び→Marketplace
フィルターに「minecraft」と入力した
Minecraft Serverを選んで→作成
ホスト名、ユーザー名、パスワードを任意で入力
価格レベルはBasicA1、場所は東日本
作成・・・待つ
Copyright© 2015, JAZUG All Rights Reserved.
32
Microsoft提供のもの
仮想マシン作成
Ubuntu Server 14.04 LTS
カスタムスクリプト
install_minecraft_ubuntu.sh
Copyright© 2015, JAZUG All Rights Reserved.
33
何をやってるのか調べてみた
Copyright© 2015, JAZUG All Rights Reserved.
34
スクリプト覗いてみましょう1
while ! echo y | sudo apt-get install -y software-properties-common; do
sleep 10
sudo apt-get install -y software-properties-common
done
while ! echo y | sudo apt-add-repository -y ppa:webupd8team/java; do
sleep 10
sudo apt-add-repository -y ppa:webupd8team/java
done
while ! echo y | sudo apt-get update; do
sleep 10
sudo apt-get update
done
echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
while ! echo y | sudo apt-get install -y oracle-java7-installer; do
sleep 10
sudo apt-get install -y oracle-java7-installer
Done
Copyright© 2015, JAZUG All Rights Reserved.
35
スクリプト覗いてみましょう2
sudo adduser --system --no-create-home --home /srv/minecraft-server minecraft
sudo addgroup --system minecraft
sudo adduser minecraft minecraft
sudo mkdir /srv/minecraft_server
cd /srv/minecraft_server
Copyright© 2015, JAZUG All Rights Reserved.
36
スクリプト覗いてみましょう3
while ! echo y | sudo wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar; do
sleep 10
sudo wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar
done
sudo chown -R minecraft /srv/minecraft_server
totalMem=$(free -m | awk '/Mem:/ { print $2 }')
if [ $totalMem -lt 1024 ]; then
memoryAlloc=512m
else
memoryAlloc=1024m
fi
Copyright© 2015, JAZUG All Rights Reserved.
37
スクリプト覗いてみましょう4
sudo touch /srv/minecraft_server/eula.txt
sudo sh -c "echo 'eula=true' >> /srv/minecraft_server/eula.txt"
sudo touch /etc/init/minecraft-server.conf
sudo sh -c "echo 'start on runlevel [2345]' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'stop on runlevel [^2345]' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'console log' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'chdir /srv/minecraft_server' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'setuid minecraft' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'setgid minecraft' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'respawn' >> /etc/init/minecraft-server.conf"
sudo sh -c "echo 'respawn limit 20 5' >> /etc/init/minecraft-server.conf"
printf 'exec /usr/bin/java -Xms%s -Xmx%s -jar minecraft_server.1.8.jar nogui' $memoryAlloc $memoryAlloc >> /etc/init/minecraft-server.conf
sudo start minecraft-server
Copyright© 2015, JAZUG All Rights Reserved.
38
要するにこんな感じ
• software-properties-common
• リポジトリ追加・更新
• oracle-java7-installer
必要なものを
インストール
• ホームディレクトリの作成
• ユーザー作成
• グループの作成・関連付け
実行環境構築 • minecraft_server.1.8.jar
• さりげなく AWS S3!
サーバープロ
グラム取得
• /etc/init/minecraft-
server.conf を生成
• 搭載メモリ1G以上なら1G割
り当て
• 満たない場合は512M
• 即開始!
サービス登録・
実行
Copyright© 2015, JAZUG All Rights Reserved.
39
自宅サーバーだったら?
用意するものとか、電気代とか
Copyright© 2015, JAZUG All Rights Reserved.
40
自宅サーバーだとしたら・・・
インターネット接続環境
グローバルIPとTCPポート25565
サーバーマシン(デスクトップでもいける)
OSのセットアップ
維持費
故障対応
ちょっとだけアブノーマルなので刺激に飢えてきた人にとって、
これはこれでたのしい!!!と思う
Copyright© 2015, JAZUG All Rights Reserved.
41
電気代(ほくでんより)2015-07-01
Copyright© 2015, JAZUG All Rights Reserved.
42
電気代(ほくでん)30日分予測
847.44
1,695
2,542
1069.92
2139.84
3209.76
4279.68
1201.32
2402.64
3603.96
4805.28
¥500
¥1,000
¥1,500
¥2,000
¥2,500
¥3,000
¥3,500
¥4,000
¥4,500
¥5,000
50Wのサーバー 100Wのサーバー 150Wのサーバー 200Wのサーバー
消費電力別、従量電灯料金
最初の120kWhまで 120kWhをこえ280kWhまで 280kWhをこえる分
Copyright© 2015, JAZUG All Rights Reserved.
43
ところで、Azureだと?
電気代かかるの?かからないよね。
でも、月額料金とかどうなるのか
Copyright© 2015, JAZUG All Rights Reserved.
44
課金の対象となるもの
仮想マシン
ネットワーク利用(Azureデータセンター内は対象外)
ストレージアカウント
Copyright© 2015, JAZUG All Rights Reserved.
45
Virtual Machineのサイズ(1/3)
Copyright© 2015, JAZUG All Rights Reserved.
46
Virtual Machineのサイズ(2/3)
Copyright© 2015, JAZUG All Rights Reserved.
47
Virtual Machineのサイズ(3/3)
Copyright© 2015, JAZUG All Rights Reserved.
48
Virtual Machine – Basic A0~A4
負荷分散なし
自動スケールなし
Copyright© 2015, JAZUG All Rights Reserved.
49
Virtual Machine – Standard A0~A7
負荷分散対応
自動スケール対応
Copyright© 2015, JAZUG All Rights Reserved.
50
Virtual Machine - D
負荷分散対応
自動スケール対応
メモリはAシリーズより多く搭載
Aシリーズよりちょっと高速なCPUになる・・・らしい。
Copyright© 2015, JAZUG All Rights Reserved.
51
Virtual Machine – そのほか
DSシリーズは、Premium Storageになっているもの。(早い)
Gシリーズは、最新CPU、大容量メモリ。ただし日本リージョ
ンは今のところなし
A8~A9は、インテル® Xeon® E5 プロセッサ、40Gbit/s
InfiniBand ネットワーク
A10~A11は、A8~9からInfiniBand ネットワークをなくしたも
の
Copyright© 2015, JAZUG All Rights Reserved.
52
Azure Virtual Machine Linux JPY/月 (推定)
1669.54 5,236
10,473
20945.09
1821.31
6146.93
12293.86
24587.71
6450.48
12900.96
25801.9216240.03
32480.06
¥0
¥5,000
¥10,000
¥15,000
¥20,000
¥25,000
¥30,000
¥35,000
0.25コア 1コア 2コア 4コア
コア数、シリーズ別
A Basic A Standard D Standard DS Standard
Copyright© 2015, JAZUG All Rights Reserved.
53
課金 ネットワーク
受信は無料
送信は最初の5GBまで無料
5 GB - 10.0 TBまでは、 ¥14.08/GB (1GB あたり)
105GB使ったとしたら、1408-(最初の5GBは無料)
一人で使っている分には、最高で一日100MB程度
30日で3GB 0-(最初の5GBは無料)
100MB × 10(人) × 30(日) = 30GB 422.4-
Copyright© 2015, JAZUG All Rights Reserved.
54
課金 ストレージアカウント
仮想マシンのディスクとして使います。(PageBlob)
請求は、1か月あたりの平均容量
最初の 1 TB/月 までは、¥9.69/GB (1GB あたり)
30GBの固定サイズなので、290.7-
Copyright© 2015, JAZUG All Rights Reserved.
55
課金 まとめ
仮想マシン、5236-
ネットワーク、422.4-
ストレージアカウント、290.7-
合計、5949.1-
Copyright© 2015, JAZUG All Rights Reserved.
56
24時間使わない
もうちょっと手軽にならないかなぁと
Copyright© 2015, JAZUG All Rights Reserved.
57
仮想マシンFAQ
Copyright© 2015, JAZUG All Rights Reserved.
58
http://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/#Linux
課金 [停止済み]
デプロイ済みインスタンスが [停止済み] の場合、料金はかか
りますか?
その可能性があります。[停止済み (割り当て解除済み)] 状態の
場合、料金はかかりません。[割り当て済みかつ停止済み] の場
合、(ソフトウェア ライセンス自体ではなく) 割り当て済みの
仮想コアに料金がかかります。
仮想マシン内部からシャットダウンした場合になる。
Copyright© 2015, JAZUG All Rights Reserved.
59
課金 [停止済み (割り当て解除済み)]
VM を正しく停止したこと、また VM の請求が発生しないこと
を確認する方法はありますか? お客様の仮想マシンの状態は、
[Virtual Machines] タブ、または VM ダッシュボードで確認で
きます。VM の状態が [停止済み] の場合は、引き続き課金され
ます。課金されないのは、[停止済み (割り当て解除済み)] の場
合のみです。
http://azure.microsoft.com/ja-jp/pricing/details/virtual-
machines/#Linux
Copyright© 2015, JAZUG All Rights Reserved.
60
課金 仮想マシンタブ
Copyright© 2015, JAZUG All Rights Reserved.
61
課金の時間単位
仮想マシンの実行時間が 1 時間未満だった場合、いくら課金さ
れますか?
仮想マシンの実行時間に対して、分単位で料金がかかります。
時間は、1 時間単位ではなく 1 分単位で四捨五入されます。
・・・ということで1時間単位を意識してなくても大丈夫。
使うときに実行する。使わない時に止める。といった使い方が
できる。
Copyright© 2015, JAZUG All Rights Reserved.
62
仮想マシンを計画運用
使う時間帯が決まっているなら、自動的に開始と終了をさせてみよう
Copyright© 2015, JAZUG All Rights Reserved.
63
マインクラフトサーバーを使う時間
今回は、娯楽として昼休み時間帯のみ稼働するように!
11:00~14:00の3時間運用!
Copyright© 2015, JAZUG All Rights Reserved.
64
起動と停止を自動化 - Runbook
Copyright© 2015, JAZUG All Rights Reserved.
65
プレビューポータル
新規
Marketplace
フィルタ「runbook」
起動と停止を自動化 – Start Azure VMs
Copyright© 2015, JAZUG All Rights Reserved.
66
Start Azure VMs
作成
起動と停止を自動化 - Start Azure VMs
Copyright© 2015, JAZUG All Rights Reserved.
67
Automationアカウント作成
その他任意で作成
起動と停止を自動化 - AzureAD
Copyright© 2015, JAZUG All Rights Reserved.
68
Automation用のユーザー作
成
一度ログインして、パス
ワードを設定
起動と停止を自動化 – 権限
Copyright© 2015, JAZUG All Rights Reserved.
69
共同管理者に設定
起動と停止を自動化 – 資格情報
Copyright© 2015, JAZUG All Rights Reserved.
70
Automationアカウント
アセット
資格情報
新しい資格情報
AzureADユーザーを追加
起動と停止を自動化 – スケジュール
Copyright© 2015, JAZUG All Rights Reserved.
71
Automationアカウント
アセット
スケジュール
スケジュールの追加
名前を入力
開始日時
繰り返し
起動と停止を自動化 – 計画
Copyright© 2015, JAZUG All Rights Reserved.
72
Automationアカウント
Runbook
Start-AzureVMs
スケジュール
スケジュールを設定
パラメータを構成
起動と停止を自動化 – Stop-AzureVMs
Start-AzureVMsと同じ要領で作ります。
忘れないように!
止まらなくなっちゃいますからね!
Copyright© 2015, JAZUG All Rights Reserved.
73
課金 24時間→3時間
仮想マシン、5236-
仮想マシン、654.72-
ネットワーク、422.4-
ストレージアカウント、290.7-
合計、5949.1-
合計、1367.82-
Copyright© 2015, JAZUG All Rights Reserved.
74
もし
利用者が増えるなら・・・
Copyright© 2015, JAZUG All Rights Reserved.
75
Minecraft サーバーの場合
マインクラフトサーバーは、インメモリでほとんどの処理を
行っている。
データストアは、ファイルであり競合すれば壊れてしまう。
・・・つまり、単純な負荷分散はできない。
Copyright© 2015, JAZUG All Rights Reserved.
76
スケールアップ
そうしたアプリケーションには、スケールアップ。
CPU、メモリを強化してより多くのユーザーを受け入れれるよ
うにします。
Copyright© 2015, JAZUG All Rights Reserved.
77
おっと、声が聞こえる・・・?
最高を目指してみたい・・・
至極の環境を体験してみたい・・・
Copyright© 2015, JAZUG All Rights Reserved.
78
限界に挑戦!
D14インスタンス!
Javaに110GB当ててみた
どうなるのかわからない
11:00~14:00の限定
※OPなし
Copyright© 2015, JAZUG All Rights Reserved.
79
D14のお値段
1時間あたり、 ¥240.42-
24時間で、 5,770.08-
31日で、 178,872.48-
31日動かしたら、自作マシン1台作れそうです。(-)
Copyright© 2015, JAZUG All Rights Reserved.
80
補足
きたあずサイト
https://kitaazu.azurewebsites.net/
きたあずFacebookグループ
https://www.facebook.com/groups/jazugsapporo/
Jazug Facebook グループ
https://www.facebook.com/groups/jazug/
Copyright© 2015, JAZUG All Rights Reserved.
81
ご清聴ありがとうございました
Copyright© 2015, JAZUG All Rights Reserved.
82

Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1