Chapter4

ハンズオンの実行

 Chapter1で行った環境構築に加え、使用するソースコードgithubからダウンロードする。

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

 を実行

 ただし、Docker imageですでにダウンロードされているので今回はスルーできる

 Docker imageからハンズオンを使用する場合

$ docker run -it tomomano/labc:latest

 を実行するとインタラクティブシェルが"root@aws-handson"に変わる




SSHコマンドにふれる

$ ssh <user name>@<host name>

 でアクセス先のIPアドレスやホストネーム

 でアクセス先のユーザー名

 SSHコマンドでログイン時の秘密鍵ファイルを指定できる

$ ssh -i Ec2SecretKey.pem <user name>@<host name>

 のような形で使う




プログラムの実行

 まずPythonの依存ライブラリをインストールする

$ cd handson/ec2-get-started

 ↑でディレクトリに移動し、venvから仮想環境を作成とインストールを行う

python3 -m venv .env

source .env/bin/activate

pip install -r requirements.txt

 上記を実行することでPythonの環境構築が完了




EC2仮想サーバーの起動

 EC2インスタンスにはSSHでログイン

 SSHの公開鍵と秘密鍵が必要となるので

$ export KEY_NAME="HirakeGoma" ←キーの名前は自由

$ aws ec2 create-key-pair --key-name $(KEY_NAME) --query 'KeyMaterial' --output text > ${KEY_NAME}.pem

 を実行することでディレクトリ内にHirakeGoma.pemというファイルを生成

$ mv HirakeGoma.pem ~/.ssh/

 ↑でファイルを~/.ssh/ディレクトリに移動

$ chmod 400 -/.ssh/HirakeGoma.pem

 上記のコマンドでファイルのアクセス権限を限定が可(400は所有者のみ操作可能)




 AWSにアプリをデプロイ

$ cdk deploy -c key_name="HirakeGoma"

 上記を実行することでHirakeGomaを鍵に指定




 SSHで先程のインスタンスに接続

$ ssh -i ~/.ssh/HirakeGoma.pem ec2-user@<IP address>

 -iで生成した秘密鍵を指定しEC2インスタンスにデフォルトで存在するec2-userを使用

 は自身で作成したインスタンスIPアドレスを入力

 画面が表示されればOK




スタックの削除

$ cdk destroy

 上記のコマンドを実行するとスタックの削除が始まる

 また、SSHの鍵も不要となるので

$ aws ec2 delete-key-pair --key-name "HirakeGoma"

$ rm -f -/.ssh/HirakeGoma.pem

 を実行することでec2から鍵を削除できる。