fast.aiという、深層学習のMOOCをやっている。
この講座ではAWS上にインスタンスを構築し、その上で処理を実行するようになっている。
fast.aiがあらかじめ用意しているシェルを実行すると、自動的にインスタンスが作られる……はずなのだが、何度やっても上手く行かず、だいぶ手間取った。
自分の環境で表示されたエラーメッセージとその対処法をまとめておく。
エラーメッセージ:
An error occurred (VpcLimitExceeded) when calling the CreateVpc operation: The maximum number of VPCs has been reached.
→http://wiki.fast.ai/index.php/AWS_install#Common_Problems から訳:
スクリプトを実行するたびにVPCを作成している。
VPCの数には上限があるので、何度も実行していると上限に達してエラーとなる。
https://console.aws.amazon.com/vpc/home からVPCを削除すること
エラーメッセージ:
setup_p2.sh: 行 13: /home/[User-name]/.ssh/aws-key.pem: Permission denied
→http://wiki.fast.ai/index.php/AWS_install#Common_Problems から訳:
一度スクリプトを実行すると鍵が作られる。すでに鍵があるとエラーになるので削除すればよい。
rm ~/.ssh/aws-key-fast-ai.pem
(私の場合はrm ~/.ssh/aws-key.pem だった。当初の環境から途中で色々と微修正が入ったようである。微修正の一部として、鍵のファイル名も変わったのだろう)
エラーメッセージ:
An error occurred (InvalidKeyPair.Duplicate) when calling the CreateKeyPair operation: The keypair 'aws-key' already exists.
→これはさっきの「Common_Problems」には載っていない。
「何か変になったときに、作りかけのを綺麗にして最初からやり直す」ためのページがある。
http://wiki.fast.ai/index.php/Starting_Over_with_AWS
これを順にやれば良い。(このエラーの場合、手順の5番めを実行すれば直るはず)
エラーメッセージ:
An error occurred (InvalidAMIID.NotFound) when calling the RunInstances operation: The image id '[ami-bc508adc]' does not exist
で、元凶はこのエラーだった。この大元のエラーに気づかずに、何度も同じスクリプトを実行していると、上記のエラーが出てきて余計分からなくなってしまったのだ。
結論から言うと、リージョン(地域)の設定に問題がある。「米国西部(オレゴン)」に設定してから
東京でもp2インスタンスが使えるので、レイテンシを考えたら東京でインスタンスを立てればよいかと思ったのだが、
このimage idというやつは地域に依存しているらしい。
リージョンを「米国西部(オレゴン)」にしてから、EC2のインスタンスを新規作成し、検索欄にIDを入力すると、確かにfast.aiのインスタンスが表示される。すぐに使えるように色々とインストールを済ませているのだろう。
しかしリージョンを東京にしてから同様にIDを入力しても、インスタンスは表示されない。
fast.aiのGitHubに上がっていたシェルを見ても、リージョンによってIDが変わることが分かる。そして東京に対応したIDは無いということも分かる。
https://github.com/fastai/courses/blob/master/setup/setup_p2.sh
「東京リージョンでp2インスタンスを作ることは可能。しかし、(fast.ai側で実行用の環境を整えた)講座用の設定済みインスタンスは東京リージョンに対応していない」というのが実情らしい。
大人しくオレゴンにして作り直したら上手くいった。
こんな調子で、ちゃんと継続できるかな……?
2018年2月4日 追記:
Qiitaの記事fast.aiの最初の最初のAWS設定につまずかないためにに思いっきり同じことが書いてあった……。