5章
デプロイ
まずはデプロイから.
以下よりダウンロードしたディレクトリ内で行う.
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の設定を調べて色々してみても,何をしてもだめだったので諦めるしかない.