4章

教科書の4章を演習していく

教科書4章で進める前に,Ubuntu

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

と入力する.

ここで,前提条件としては

  • AWSアカウントの準備
  • pyhton3.6以上のインストール
  • Node.js12.0以上のインストール
  • AWS CLIおよび,AWS CDKのインストール

python依存のライブラリのインストール

プログラムを実行するためのpython依存のライブラリをインストールする.
Docker Image上で,まずcdを使ってディレクトリの移動をする.

cd handson/ec2-get-started

docker Imageの中に,handsonがあり,handsonの中にec2-get-startedがある.他にもlsで見てみると色々ある.↓↓


ディレクトリを移動したら次に,インストールをする.今回は,python3をインストールしているので,pythonではなく,python3.
pipでインストールできなければ,pip3としてインストールしてみる.以前の記事↓
urhayataro.hatenablog.com

でpipをアップデートしていたので,きちんとできた.
入力するものは,以下のもの.

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

これで,Pythonの環境構築ができた.


SSH鍵の取得

SSHとは,Unix系のサーバに安全にアクセスするためのツール.
そのSSHを使うための公開鍵,秘密鍵を生成する.Docker Image上で以下を入力

export KEY_NAME="HirakeGoma"
aws ec2 create-key-pair --key-name ${KEY_NAME} --query 'KeyMaterial' --output text > ${KEY_NAME}.pem

この1行目で書いた,HirakeGomaから作られる,HirakeGoma.pemというものが,が秘密鍵になる.

次に,鍵のファイルの移動と編集の権限を設定する.chmodで,400にする事により,ファイル所有者のみが編集できるようにする.

mv HirakeGoma.pem ~/.ssh/
chmod 400 ~/.ssh/HirakeGoma.pem

ここまででエラーが出れば,AWSのアクセスなどの認証が上手くいっていない場合があるので,もう一度 aws configure と入力して設定してみるといい.
urhayataro.hatenablog.com

生成されたかの確認は,AWSコンソールでログインし,検索にEC2→EC2

キーペアが増えていることを確認する.


デプロイの実行

作成したHirakeGomaという名前の鍵を使い,AWSにデプロイする.

cdk deploy -c key_name="HirakeGoma"

デプロイできたら,秘密鍵を使ってログインする.今回は,下の画像より,InstancePublicIpが3.112.2.0となっているので,

この画面が表示されると,AWS上にEC2仮想サーバーを起動し,アクセスできることを示している.


AWSで上手くできているかの確認

AWSコンソールにログインし,EC2→インスタンスを見る.

先程作成したインスタンスが表示されている.画面左から3つめのインスタンスの状態を右クリックで,実行状態を変更することもできる.

次に,デプロイしたアプリケーションを見てみる.
CloudFormation→スタックを見る.

これらがあれば上手くできている.


後片付け

インスタンスの停止やスタックの削除をしなかった場合,EC2インスタンスの料金が無限に発生するので注意‼

まずはスタックの削除から.1つ前の画像右上の削除.もしくは,デプロイしたコマンドで以下を実行.

cdk destloy


SSH鍵のペアもいらない場合の削除の方法も載せておく.

AWSコンソールのEC2ダッシュボード→キーペアの右上から削除.もしくは,デプロイしたコマンドで以下を実行.

aws ec2 delete-key-pair --key-name "HirakeGoma"
rm -f ~/.ssh/HirakeGoma.pem

これで削除できているはずなので,確認する.同じように見てみる.


スタックもキーペアもなくなったことがわかる.これで4章は終了.


問題の解決

エラーが出た場合,以下を参考にもう一度やり直してみるといいかもしれない.
urhayataro.hatenablog.comurhayataro.hatenablog.com