Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
README.md
azuredeploy.json
metadata.json

README.md

azure-isucon-templates/isucon5-qualifier

This template allows you to create a Virtual Machines for ISUCON5 qualifier. This template also deploys a Virtual Network, Public IP addresses, Network Interfaces, and a Storage Account.

これはISUCON5予選のサーバ構成をMicrosoft Azureで再現するためのテンプレートです。上に表示されているデプロイ用ボタンをクリックすることでMicrosoft Azureに一発デプロイが可能です。

事前準備

以下を用意してください

  • Micorosoft Azureのアカウント
  • SSH公開鍵

サーバ構成

  • image
    • 参加者ノード
  • bench
    • ベンチマークノード

選択可能なサーバスペックは以下のとおりです。

サイズ CPUコア数 メモリ 備考
Standard_F1s 1 2GB
Standard_F2s 2 4GB
Standard_F4s 4 8GB デフォルト
Standard_F8s 8 16GB

スペックの詳細については公式サイトを参照してください。

なお、予選当日のサーバスペックは以下のとおりです。

種別 タイプ CPUコア数 メモリ
参加者ノード n1-highcpu-4 4 3.6GB
ベンチマークノード n1-highcpu-4 4 3.6GB

本来の設定と異なるところ

  • Ubuntu 15.10はAzureで用意されていないため Ubuntu 16.04に置き換えています
  • Ubuntuのバージョン変更に合わせてMySQLはMariaDBに変更しています
  • ベンチマークはCLIから手動で実行する必要があります

FAQ

Azure管理画面が使いにくい

AzureはCLI周りが充実しておりCLIから起動することも可能です。詳細については公式サイトのドキュメントを参照してください。

検証エラーが発生しました

エラーの詳細に「Operation results in exceeding quota limits of Core」と出ている場合、起動できるVMのコア数上限に引っかかっています。 サーバのスペックを1段階下げて起動するか、既に起動しているVMがある場合は削除してから実行してください。

なお、Visual Studio Dev Essentialsのサブスクリプションの場合、コア数の上限は合計4個までとなっているようです。Quotaの設定はAzure CLIで確認が可能です。

azure vm list-usage
azure quotas show

詳細は公式サイトのドキュメントを参照してください。

サーバへの接続方法がわからない

設定したSSH公開鍵を使ってisuconユーザにssh接続が可能です。

ssh isucon@(パブリックIPアドレス)

SSH接続ができない

公開鍵の記述が正しくない可能性はないでしょうか。

ログインしてみたら中途半端な状態なんだけど?

サーバ起動とデプロイ後にAnsibleによるプロビジョニングが始まります。 プロビジョニングの進捗は /var/log/cloud-init-output.log で確認が可能です。

tail -f /var/log/cloud-init-output.log

Ansibleによるプロビジョニングでエラーが発生した

Issueを立てて頂ければ幸いです。 プロビジョニング用のソースは/mnt配下にあります。 プロビジョニングを実行するスクリプトは/var/lib/cloud/instance/user-data.txtにあります。

ベンチマークの実行方法がわからない

ベンチマークノードにisuconユーザでログイン後、ホームディレクトリにあるbench.shでベンチマークを実行できます。

/home/isucon/bench.sh (参加者ノードのIPアドレス)

MySQLへの接続エラーになる

MariaDBに変更した関係から、MySQLへの接続にrootアカウントを使用しているプログラム実装(goなど)はmysqlへの接続に失敗します。 mysqlの接続アカウントを isucon / isucon に変更してください。

TODO

  • プロビジョニングの進捗をわかりやすくする
  • もうちょっと説明を加える
  • mysql接続エラー周りを修正する

License

MIT

References

Author

matsuu