Switch branches/tags
Nothing to show
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