将棋ソフトを誰でも超ハイスペック環境で動かせる「AWS」の使い方を解説!!ノートパソコンでも毎秒2000万局超えの性能で検討が可能に!!

将棋ソフトをAWSで高性能化しよう!!ノートPCでも毎秒2000万局面の検討が可能に!!

今や将棋とコンピュータは切っても切り離せない時代になりました。

そんな中、手元のPCでの検討に限界を感じ
「そろそろ将棋の為にパソコンを買い換えようかな?」と考えている方もいらっしゃると思います。

しかし少し待ってください!!

実はパソコンを買い換えることなく
高性能なPCを利用するのと同じ性能で将棋ソフトを動かすことが出来るのをご存知でしょうか?

下の画像をご覧ください。

毎秒2300万局面というとてつもない高性能での局面解析を行っていますが
実は上記の将棋ソフト、ノートパソコン上動かしています

 

電王戦で使われたPCの三倍以上の性能
AWSというサービスを利用して実現する方法を解説していきます。

 

目次

まずはAWSのアカウントを作成

AWSは正式名称をAmazon Web Services(アマゾン ウェブ サービス)と言います

なんとなく雰囲気から伝わるようにネット通販最大手のAmazonが行っているサービスです。

ただし、Amazonのアカウントは利用できないので
AWS用に新規にアカウントを作成する必要があります。

AWSのサイトに飛び「サインアップ」をクリック

上記の画像では「ログイン/アカウント作成」になっていますが
現在ですと「サインアップ」の文字になっていると思います。

メールアドレス、パスワード、アカウント名を設定

上記のような画面にジャンプするので

Eメールアドレス、パスワード、AWSアカウント名を入力しましょう。

ここで言うアカウント名というのはニックネームのようなものなので

本名でなくてOKです。あとから変更をすることも可能です。

本名、住所、電話番号を入力

住所、本名、電話番号を入力します

この項目は全て半角の英数字での入力ですので注意してください。

ローマ字で入力しましょう。

初期設定では最初に決めたニックネームがフルネーム欄に入っているので

うっかりそのまま次のステップに進んでしまう場合もあるかと思いますが

その場合にでもフルネームは後から変更が可能なので気にせずに次のステップに進みましょう。

支払い情報を入力

 

今度は支払い情報の入力画面に移ります。

手元のクレジットカードの番号などを入力しましょう。

クレジットカードを所有していない状況でAWSを使うには?

推奨しませんが
一応、おさいふPontaでも行けるようです。

その場合には
チャージ額が不足しないように
細心の注意を払って利用してください。

電話番号の認証

電話番号が正しいかどうかの認証があります。

画像はAWSの公式サイトより引用

携帯電話の番号で認証する場合には

国コードは日本、内線は空欄でOKです。

Amazonから機械音声による通話が掛かってくるので

音声の指示に従いながら認証を完了させましょう。

サポートプランを選択

電話番号の認証が完了すると
最後のサポートプランの選択画面に移ります。

無料のベーシックプランを選択しましょう。

このサポートプランも後から変更が可能です。
サポートが必要になった場合には適宜有料プランに変更してください。

ただし、将棋ソフトに関する質問に答えてくれるかどうかは不明です。

アカウントの作成はこれで完了です。

AWSの初期設定を行う

アカウントの作成が完了したら

今度はAWSの初期設定を行います。

まずはAWSにログインする

トップページの右上にある「アカウント」をクリックしてください。

項目が出現するので「AWSマネジメントコンソール」をクリックします。

ログイン画面になるので
最初に登録をしたメールアドレスを入力しましょう。

あとはパスワードを打ち込めばログインは完了です。

リージョンの変更

初期のままですと

将棋ソフトの検討で
1手動かす度に毎回アメリカまでアクセスをする事になるので
日本国内へのアクセスで済むように変更を加えます。

ログイン後の画面で上記のように選択をして
「アジアパシフィック(東京)」を選択します。

これで局面を動かす度にアメリカまで通信することはなくなりました。
いったんAWSからログアウトしておきましょう。

利用の下準備としてWindowsを最新状態にしておく

AWSを将棋ソフトで利用する為には
Windowsの本体側での準備も必要となってきます。

Windowsに付属している。
SSHという機能が必須となるのですが
この機能、最新状態のWindowsでないと扱えません

必ずアップデートが完了してから次のステップに進んで下さい。

Windowsが最新になっているか確認

まずは現在のWindowsの状態が最新になっているか確認します。
SSH機能はWindowsが最新の状態でないと利用できません

確認のためにキーボードの「Windowsボタン」を押しながら
キーボードの「R」を押してください。

上記のような画面になるので「winver」と入力してOKをクリックします。

1803と表示されていればOKです。(上記の画像はNG例

1803よりも番号が小さい場合には下の記事を参考にアップデートしましょう。

Windows10 April 2018 Update(1803)へアップデートする方法

Windows 7やWindows 8を利用している場合

無償でWindows10にアップグレードする事が可能です。

Windows 10 無償アップグレード方法【無料】2018年2月現在もOK

アップグレードが終わったら
念の為にバージョンが1803以上になっているかも確認しておきましょう。

実際にAWSが動くか動作の確認を行う

Windowsの更新が完了したら
早速AWS上のコンピュータ(EC2インスタンス)を利用する作業に入ります。

AWSに登録をしたばかりの状態では

750時間までの試験用の枠が設けられているので

まずはその無料枠を使って本番利用のリハーサルを兼ねた動作確認を行います。

AWSにログインしてEC2の画面を開く

再びAWSにログインをします。

今度は左側にある検索欄に「EC2」と入力をして
クラウド内の仮想サーバーという項目をクリックしましょう。

インスタンスを作成する

上記の画面に切り替わるので

「インスタンスの作成」をクリックします。

AMIを選択する(重要)

次の画面では
「コミュニティAMI」
→「(検索欄に)shogi」
→「computer-shogi-2018-09-14-orqha – ami-05d2627696347decd」を「選択」

という手順でAMIを選択します。

なにこれ?

AMIというのは調整済みのEC2インスタンスの設定ファイル(的なもの)です。

簡単に将棋ソフトをAWS経由で利用できるようにこちらで用意しました。

AWSで動作する将棋エンジンと
現在最強と言われているorqha評価関数ワンセットで導入済みとなっています。

インスタンスを選択する

次にインスタンスを選択します。

これはAWS上で利用するコンピュータの性能を決定する項目ですが

今回はテスト目的ですので「t2.micro」と書いてあるタイプを選択しましょう。

項目が正しく選ばれているか確認する

最後に確認画面が出てくるので
項目が正しければ、「作成」をクリックしましょう。

キーペアをダウンロードしてインスタンスを作成

step7で「作成」を押すと
上記のような画面が出現します。

キーペア名は自由に決めて頂いて構いませんが
今回は説明のために
キーペアの名前を「key」にしたと仮定して解説を続けます。

ダウンロードしたキーペアを置いておく場所は?

「キーペアのダウンロード」でダウンロードしたkey.pemファイルは
将棋エンジンを設置したい場所に移し替えておいて下さい。

キーペアファイルは
AWS上のコンピュータに接続する上で必要になります。

EC2の画面に戻る

キーファイルの保管が終わり
「インスタンスの作成」をクリックすると上記の作成中画面に移ります。

再びEC2の設定画面に戻りたいので、左上の「サービス」をクリックしましょう。

大量のサービス項目が立ち上がるので

その中から「EC2」をクリックします。

インスタンスが動いていることを確認

上のような画面に移行するので

インスタンスの状態が「running」になっていることを確認しましょう。

動いていることが確認出来たら
パブリックDNSという項目にある「ec2~~~~~amazonaws.com」という文字列に着目しておいてください。

次の項目で利用します。

バッチファイルの作成

先ほどのブラウザ画面を開いたまま、メモ帳を起動してください。

メモ帳の開き方が分からない方は
「Windowsボタン」→「Windowsアクセサリ」と進むと
「メモ帳」という項目があるので、それをクリックしましょう。

@echo off
setlocal
cd /d %~dp0
ssh -i key.pem ec2-user@■■■■ cd ./engine;./YaneuraOu-AVX2
pause

メモ帳を開いたら上記の文字列を貼り付けます。
■■■■の部分、画像で反転している部分の文字列は
さきほどブラウザ上で着目してもらったパブリックDNSに置き換えてください。
「key.pem」の部分はキーペアを作成する際に指定をした名前です。

.bat形式で保存する

文字のコピーが完了したら
今度は先ほどkey.pemを保存したフォルダ
つまり将棋エンジンを置きたいフォルダに
先ほどの内容を保存するのですが、単純な保存ではないので注意してください。

上記の画像のように
「test.bat」という名前で保存します。

保存をするフォルダに「key.pem」が存在することを確認してください。
「key.pem」が存在しないとソフトは動きません

動作の確認

設置が完了したら先ほど保存をした、test.batをダブルクリックしてください。

上記のような画面が出現するはずです。

出現しない場合は、手順を間違えているので
インスタンスを削除した上で最初からやり直してください

無事に出現した場合には、「yes」と打ち込んで「Enter」を押しましょう。
その後、一度上記の画面を閉じて、再度test.batを開きます

今度は真っ暗な画面のままになっているので
「usi」と打ち込んで再び「Enter」キーを押します。

上記のような文字列が出現したら動作テストは成功です。

インスタンスを削除する

動作テストが完了したので
使わなくなったインスタンスは削除しておきます。

インスタンスの一覧画面に戻り
今回動かしたインスタンスを右クリック、「削除」を選択することで削除できます。
使わなくなったインスタンスは必ず削除しましょう。

いよいよ本番投入へ

準備と動作テストが完了したので
いよいよ冒頭の画面のような、超ハイスペックな検討用のEC2インスタンスの取得に入ります。

準備に抜けがないか最後の確認

検討用のEC2インスタンスには利用料金が発生します。
料金の相場としては1時間で約70円です。

念の為にこれも確認をしておきますが
ShogiGUIまたは将棋所はインストール済みである事が前提となっています。

まだ上記のソフトを導入していない方は
先に進む前にインストールをしておいて下さい。

EC2の一覧画面に進み、EC2インスタンスを作成

お馴染みのインスタンスの一覧画面に進み

「インスタンスの作成」をクリックしましょう。

AMIを選択する(重要)

AMIを選択しましょう。

インスタンスタイプの選択

インスタンスタイプの選択画面に進んだら
「フィルタ条件」から、「コンピューティングの最適化」をクリックします。

様々な種類のインスタンスが並んでいますが
今回は「c5」から始まるインスタンスから選んでいきます。

数字だけ並べられてもピンと来ないと思うので
なんとなくの目安を一覧にして並べてみました。

パット見では性能が低そうに見える「c5.4xlarge」でさえ
電王戦に使われたPCを超える性能を備えています。

今回の解説では
贅沢に「c5.9xlarge」を利用しますが
皆さんの用途に合わせて上記の中から好きなインスタンスを柔軟に選んでください。

c5.18xlargeでは駄目なの?

確かに性能的にはc5.18xlargeがベストなのですが
あまりに人気な為に予約が満杯になっていて取得自体が困難な状況です。

理論上は最高スペックですが
選択可能な中ではc5.9xlargeが最もハイスペックと考えていいでしょう。

EC2インスタンスの詳細な設定を行う

取得するEC2インスタンスの種類が決まったら
チェックボックスにチェックを入れて
「次の手順:インスタンスの詳細の設定」をクリックします。

AWSのEC2インスタンスの相場価格を確認する

詳細画面に入ったら
「購入のオプション」にチェックを入れましょう。

一時間辺りの現在の価格が表示されます。

価格が一時間当たり何ドルまでなら許容出来るのかを「最高価格」の欄に打ち込んでおきましょう。
どれだけ多めに打ち込んだとしても
実際の支払いは相場価格での支払いとなります。

日本 円→ドル通貨換算機

現在の価格が高すぎると感じた場合には
「戻る」をクリックしてインスタンスのタイプを変更してください
打ち込み終わったら、「確認と作成」をクリックします。

リクエスト有効期間の終了って何?

なんとなく自動で終了してくれそうな雰囲気を感じさせる項目ですが
自動シャットダウンの設定ではありません!!

実行が始まったEC2インスタンスは手動で終了させる必要があります。

自動終了の設定項目だと勘違いしないように注意しましょう。
今回は特に設定をする必要はありません

スポットインスタンスリクエストの確認をする

確認画面に移るので
項目が正しいのか確認をしておきましょう。

この時に、自分の設定をしたEC2インスタンスのvCPUの数も覚えて置いてください。
後ほど将棋ソフトの設定をする際に利用します。

キーペアの選択

キーペアの選択画面が出現するので
最初のテスト時に作成したキーペアを選択しておきましょう。
万が一、削除や紛失をしていた場合には新しいキーペアを作成して下さい。

スポットインスタンスリクエストの成功例と失敗例

上記のような画面になった場合には成功です。

早速次の項目に進みましょう。

スポットリクエストは失敗することもあります。

一番多いのが「Max spot instance count exceeded」というエラー表示です。

これは選択したタイプのEC2インスタンスが余っていないというエラーです。

「c5.18xlarge」を選択した場合には
ほぼ確実に上記の画面が表示されているはずです。

素直に選択するEC2インスタンスのスペックを下げましょう。

EC2インスタンスの動作をチェック

局面の検討をする前に動作のチェックをしていきます。
まずはインスタンスのタイプが正しい事
インスタンスの状態がrunningになっている事を確認します。

確認出来た場合
ブラウザはそのままにしておいた状態で
メモ帳を開いて下さい。

テスト時とは緑の部分の文字列が少し異なるので注意

@echo off
setlocal
cd /d %~dp0
ssh -i key.pem ec2-user@■■■■ cd ./engine;./YaneuraOu
pause

上記の文字列を貼り付けます。
■■■■は先ほどのパブリックDNSに置き換えます。

key.pemを置いてあるフォルダに保存しましょう。
今回はAWS.batという名前で保存します。

batファイルをクリック(必須)

保存が完了したら、AWS.batをダブルクリックします。

上記のようなウィンドウが出現するので「yes」と打ち込んで「Enter」

再びAWS.batを開き「usi」と打ち込んで「Enter」

「TOURNAMENT」の文字が見えていれば正しい.batファイルが作成されています。

ShogiGUI(将棋所)にAWSのエンジンを登録

これで準備は整いました。

ShogiGUIを開いて、「エンジン設定」から「エンジンの追加」と進んでいきます。

先ほどのAWS.batをエンジンとして登録するのですが
「すべてのファイル」という項目を選択していないと見えないので気を付けて下さい。

 

今度はエンジン設定です。

AWS経由で動かしているという事が分かりやすいエンジン名にしておきましょう。
スレッド数は、インスタンスの生成時に覚えて置いた
vCPUの二倍の数を設定します。

Hashの数値はインスタンスのメモリの容量の数値の1024倍を超えない数値に設定しておきます。
上記の画像では少し余裕をもって設定をしています。

AWSで将棋ソフトを動かそう!!

以上で作業は完了です!!

あとは思う存分超ハイスペック環境での将棋の検討をお楽しみください。

お疲れ様でした!!

検討が終わったらインスタンスの削除を忘れずに

検討が終わったら、必ずインスタンスの削除を行ってください。

これを行わないと課金が延々と発生してしまいます。

二回目以降は?

一度動くことが確認できたら
あとはAWS.bat内に記述してあるパブリックDNS
新しく起動したEC2インスタンスのパブリックDNSで置き換えるだけで動作します。

その場合にも.batファイルのクリックによる動作確認は必ず行ってください。
少なくとも「yes」を打ち込むところまでは行わないと、将棋ソフトとしては動作しません。

課金額にはくれぐれも注意しましょう!!