世界コンピュータ将棋選手権に我らが @bleu48 先生と出場しました。 ソフトウェアは @bleu48 さんが作ってて自分は関わっていないのだけどインフラ担当しました。
しかし我らがソフトウェア『二番絞り』は11位*1 二次予選敗退でした。
今日の二次予選結果です。 pic.twitter.com/JDPrN4weIQ
— 48 (@bleu48) 2021年5月4日
敗戦の軌跡
今回はインフラ担当として大きな失敗をしてしまったので反省の意を込めて書きます。
早朝に問題に気付く
当初予定はGCPに用意されているNVIDIA A100 Tensor Core GPUを16枚指したモンスタースペック a2-megagpu-16g
を利用予定でした。
a2-megagpu-16g
はプレビューで申請が必要なのだけど、事前に問い合わせをして利用可能にし、予行練習済みでした。
そして当日の朝、事件は起こった。
GCPの…リソース不足で…インスタンスが…立ち上がりません……
— そーだい@初代ALF (@soudai1025) 2021年5月2日
大会開始は10時から、朝5時から始まるインスタンス起動できるまで帰れま10が始まりました。
インスタンス起動できません!
そーだいさん、久々のピンチです。
— そーだい@初代ALF (@soudai1025) 2021年5月2日
結論から言うとリージョンに該当のインスタンスのリソースが枯渇していて事前停止状態にしていたインスタンスの起動ができない状態でした。 何度も繰り返してもErrorを吐き続け、時間は刻々と過ぎていきます。
ルーク、AWSを使え
とにかく試合には出る必要があったので代替を用意しました。
AWSでの代替インスタンスは p4d.24xlarge
ですがA100 * 8枚です。
スペックは半分ですがとにかく動かす必要があるので急遽対応します。
AWS、A100*8がシュッと立ち上がる(コア制限が1台のmin設定にデフォルトでしてあるし、リソース不足にならないところがこれがBusinessの差やぞ!って気持ち。
— そーだい@初代ALF (@soudai1025) 2021年5月3日
しかし用意してるAMIがubunut 18.04までだし、A100 * 16はないのでそこがGoogleとの差やぞ!って気持ちもあって両方いい感じに合体してくれ。
AWSに慣れている+上記のとおり、GAのインスタンスなので特に問題もなく、そしてLIMITにひっかかることもなく立ち上がります。 OSの問題などはあったものの、とりあえず一次予選には間に合い、こちらを使って一次予選は突破しました。 とりあえずAWSはCUDAの11対応のためにubuntu 20.04対応 & A100 * 16枚差しインスタンスをお願いしますっ!
サポートとのやりとり
AWSで一次予選はなんとかなりそうなものの、本番は明日の二次予選から。 それまでにはa2-megagpu-16gが必要…ということでGoogleに問い合わせていきます。
無料チャットサポート
5/2の朝の時点で担当営業にはメールを送っているけどGW中なので反応はありません*2。 Googleはホワイト企業でいいところだなぁって感じながら無料チャットサポートに問い合わせます。 無料チャットサポートは英語のみ。 ここぞとばかりにDeepLが大活躍してやりとりをしていきます。
初めてGCPの英語チャットサポート使ったけど、平易な英語を使ってくれるし、レスポンスも早いのでとても体験が良かったです。 特に会話に詰まることなどなく、問題が伝わり調査してくれたし、調査中のレスポンスも良かったがポイントですね。
しかし無料チャットサポートの裁量の範囲では解決できず… 一次予選は突破した&様々な理由で徹夜してたのでこの日は撤退して翌日に期待します。
有料サポートケースを作成
翌朝 5/3 も起動を試すが失敗。 これはまずいってことで一旦削除し、a2-megagpu-16gが使える全リージョンの組み合わせでチャレンジしますが、全ての組み合わせで失敗し、無事死亡。 これはいよいよまずいぞってことで本番障害だ!!っとサポート課金して本番障害でチケットを切りました。 そこに先程のチャットサポートのケース番号を付与すると、事前にちゃんと読んだ上で担当から返信*3があって調査・対応開始してくれます。 しかし日本語対応は「平日の 9~17時」なのでここでも英語対応で、DeepLが爆裂大活躍しました。 そして数時間後…。
英語で丁寧に謝られたので全てを諦めてラーメンを食べようと思う。今日は食べていいと思う。 https://t.co/rs7QHX0wy2
— そーだい@初代ALF (@soudai1025) 2021年5月4日
とても丁寧な対応をしてくれた上でこの結果に。 つまり今回のような特別なインスタンスでプレビューのようなインスタンスはサポート側ではどうすることもできず、ちゃんとした手続きをした上でリソース確保とLIMIT解除の依頼をする必要があるとのことでした。 更にそのための正式な手続きを行う権利は担当営業側にあるということで冒頭のGW中問題に戻ってきて申請することも叶わず試合終了。 二人で話あってGCPは諦めることに…
その結果惜しくもあと1勝届かず予選敗退となりました。
感想として
GCPのサポート体験はとてもよかった。 英語であることを除けばAWSよりもレスポンスが早く*4障害の内容理解も早かったです。 しかしサポートでできることの限界が当然あって、それを解決する必要がある場合に緊急度を上げる方法が一般的には無いのが厳しいなと思いました。 プレビューだからそれは我慢しろってことだとは思うけど、全リージョンでプールがない状態でサービスを提供しているとなると辛いですね。 仮に検証したくても立ち上がらないし、そこは改善してほしいポイントだと思ったのでフィードバックを書きました。
一方AWSはGAのインスタンスではあるものの、早期に対応できたのは良かったですね。 しかしながらサードパーティ部分のサポートが良くなく、AWSは自分のビジネスのメインストリーム以外はあと一歩だなぁというところが見え隠れしたように思います。 いい感じに悪魔合体してほしいですね。
大会そのものについては…やっぱ悔しいですね。 もう一方のチーム『白ビール』は圧巻の全勝1位抜けなので流石です。 自分がもしGCPをちゃんと用意できていれば…と思うと後悔があって悔しい気持ちでいっぱいですが仕方ありません。 次回に活かす経験とします。 なのでもっと化け物インスタンスを用意できる環境などがあればぜひ教えて下さい。 とりあえず次のチャンスがあればa2-megagpu-16gを確保したら落とさず挑もうと思います*5*6。
大会そのものはリアルタイムに棋譜を眺めるだけでも楽しかったし、You Tubeなどで開発者のインタビューなど聞けたし、めちゃめちゃ楽しかったです。 明日、いよいよ本戦なので将棋が好きな人も興味がない人もぜひ、見てほしい、オススメコンテンツです。 自分も明日は緊張することなく見れるので普通に楽しんで見よう思います。
最後に
運営の皆様、最終日が残っておりますがお疲れ様です。 実際に運営状況を目の当たりにして感謝の気持ちでいっぱいです。 特にAWSやサーバ周りのトラブルがそれなりに多く、専門の人や経験がある人も少ないように思えました。 もちろんそういう仕事がメインでは無い人がメインユーザ層のイベントですから、もしそういう クラウドインフラのスペシャリスト枠 みたいなお手伝いがあったらお声掛けください。 また他のエンジニアも興味がありそうです。
そして @bleu48 先生。 早い段階から声をかけていただき、感謝しています。 本当にありがとうございました。 右往左往しながら色々とありましたがとても良い経験になりました。 もしよろしければリベンジチャンスをいただけると幸いです。
それでは明日の白ビールに期待しながら今日は寝ます。 あーーーーーーくやしいなーーーーーーーーーーーーーーーー!!!!!!!!