5章

はじめに

この章では,GPUを使い機械学習を行う.インスタンスの上限の引き上げが必要な章になる.


デプロイ

まずはデプロイから.
以下よりダウンロードしたディレクトリ内で行う.

git clone https://github.com/tomomano/learn-aws-by-coding-source-code.git

次に作業を行うディレクトリに移動し,ライブラリのインストールから行う.

cd learn-aws-by-coding-source-code/handson/mnist

python3 -m venv .env
source .env/bin/activate
pip install -r requirement.txt

そして,SSH鍵を作り,デプロイを行う.

export KEY_NAME="HirakeGoma"
aws ec2 create-key-pair --key-name ${KEY_NAME} --query 'KeyMaterial' --output text > ${KEY_NAME}.pem
mv HirakeGoma.pem ~/.ssh/
chmod 400 ~/.ssh/HirakeGoma.pem
cdk deploy -c key_name="HirakeGoma"


このときはじめはデプロイできないはずだ.
表示されているURLに飛び,g4dn.xlargeを選択する.つまり,GインスタンスのvCPUの数を4つに申請する.反映されるまで,申請から3日ほどかかる.

改めて,デプロイができると以下が表示される.このIPアドレスを使い,SSHでログインする.


SSHでログイン

生成したHirakeGoma,pemを使い,ログインを行う.

ssh -i ~/.ssh/HirakeGoma.pem -L localhost:8931:localhost:8888 ec2-user@IPアドレス

ここで,-L localhost:8931:localhost:8888について説明する.
これは,自分のローカルマシンのlocalhost:8931へのアクセスをリモートサーバーのlocalhost:8888のアドレスにに転送するという意味である.

これを実行すると,以下の出力がされる.

ssh: connect to host IPアドレス port 22: Connect refused

SSHでやり取りをするポート22への接続が拒否されたようだ.

原因は,SSH接続を受け入れていない,ファイヤーウォールで弾かれている,IPアドレスで認証がおかしいなど考えられる.

このログが出た場合は,SSHの設定を調べて色々してみても,何をしてもだめだったので諦めるしかない.


まとめ

この章では,GPUを使った深層学習を行う予定でした.
SSHでログインする際にエラーが発生すればこの章はできないので面白くないが,これで終了する.