Skip to content

AWSでやねうら王

yaneurao edited this page Jan 5, 2024 · 10 revisions

AWSでやねうら王を動かす手順についてです

Windows環境 + 将棋所で使う場合について書いています。他の環境で使う場合も、参考になると思います。

🌈 やねうら王チームの勉強会の動画

AWSでやねうら王を動かす手順を動画で解説

AWS EC2起動

AWS EC2を借りて起動します。

今回は、Ubuntu 20.04を使います。

⚠ このあとsshで接続するので、キーペアは .pem 形式のほうを選択してください。

sshで接続してみます。

コマンドプロンプトから。

ssh -i "保存したpemファイルの名前.pem" ubuntu@【ここにIPアドレス】

⚠ コマンドプロンプトは、保存したpemファイルのある場所で開いてください。

💡 sshコマンドは、Windows 10 RS4(1803)以降、もしくはWindows 11ならば最初から使える状態になっています。

sshコマンドを使う時にUNPROTECTED PRIVATE KEY FILEと出たら

秘密鍵のアクセス権限設定に余計なものが付いていると起きる現象です。 (例: 「NT AUTHORITY\Authenticated Users : そのコンピュータにログイン出来る人全部」から読み取り可能な場所に秘密鍵ファイルを配置している)

LinuxでSSHを使う場合も、SSH鍵のパーミッションとかが他の一般ユーザーから読み取り可能だったり不適切だと起きるエラーです。

Windowsの場合、Cドライブ直下に掘った、アクセス権限を弄っていない(NT AUTHORITY\Authenticated Users からのアクセスが許可されている)作業用フォルダを使っていて、そこに秘密鍵を置こうととした時などに起きやすいです。

  • Linuxならパーミッションを600に変更。
  • Windowsならそのファイルにアクセス可能なユーザーを自分だけに変更する。
    • 解決しない時 👉 ユーザーフォルダ (C:\Users\%USERNAME%\) の下であれば、変なこと(ユーザーフォルダに他ユーザーからのアクセス権限を追加してしまっている、など)をしていなければ、標準ではそのユーザー(+SYSTEM+Administrators)でしかアクセスできない権限設定になっているので、ユーザーフォルダの下にSSH秘密鍵を格納するためのフォルダを作成して入れるのがお勧め。

💡 参考 : SSHでUNPROTECTED PRIVATE KEY FILEと言われたら : https://note.affi-sapo-sv.com/ssh-unprotected-key.php

VSCode + SSH Remote

VSCode + SSH Remoteを用いて、ソースコードや評価関数ファイルなどを転送します。

やねうら王をビルドします

engineの.batファイルを作成します。

例えば、aws-engine.bat というファイルを新規に作成して、以下の内容にします。

ssh -i "保存したpemファイルの名前.pem" ubuntu@【ここにIPアドレス】 ./YaneuraOu-by-gcc

⚠ この .batファイルと同じフォルダに .pemファイルが存在している必要があります。

また初回接続時には、sshコマンドが「知らないホストだけどいいかな?」みたいな確認のメッセージが出てきて面倒なので、このチェックを省略するオプションをつけておいたほうが運用が楽でしょう。これは、以下のように「-o StrictHostKeyChecking=no」と書きます。

あと、一定時間データのやりとりがない場合、ssh接続は自動的に切断されてしまうので、15秒おきに応答の確認をすることで接続を維持するために「-o ServerAliveInterval=15」もつけておくと良いでしょう。

ssh -i "保存したpemファイルの名前.pem" -o StrictHostKeyChecking=no  -o ServerAliveInterval=15 ubuntu@【ここにIPアドレス】 ./YaneuraOu-by-gcc

将棋所でエンジンとして登録します

上で作成した.batファイルは、将棋所からエンジンとして登録できます。

AWS利用上の注意事項

AWSを初めて使う時は、大きなスペックのインスタンスを使わせてもらえないかも知れません。その場合は、利用枠を広げる申請が必要になります。

👉 オンデマンドインスタンスの EC2 vCPU 制限引き上げをリクエストをする方法を教えてください。 : https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-on-demand-instance-vcpu-increase/

AWSのインスタンスを使い終わったら、AWSのダッシュボードで

  • 起動中のインスタンスが0になっているか
  • ボリュームの数が0になっているか
    • ストレージ容量に対してもわずかだがお金がかかり続ける。

を必ず確認するようにしましょう。

Clone this wiki locally