Chapter4 初めてのEC2インスタンスの起動

本日は、EC2のインスタンスの生成と、CDKにおけるハンズオンの方法について学んだ。

今回から初めてハンズオンを実行する。その際、ハンズオンのためのソースコードを事前にダウンロードしておく。

AWS CDKのインストールと設定

まずは、CDKをインストールする。インストールをする際は、Node.js(12.0以上推奨)が必須となる。まずは、以下のコマンドを実行し、CDKのインストールを行う。

  • sudo npm install -g aws-cdk@1.100

本ハンズオンでは、1.100バージョンで動作するので、それに合わせてCDKのバージョンは1.100にした。

さて、続いてはbootstrapで初期設定を行う。

  • cdk bootstrap aws://アカウント番号/リージョン名

と、ホームディレクトリ上で打ち込めば、初期設定は完了だ。

準備

ここからはハンズオンの準備を整える。まず、冒頭でダウンロードしたソースコードが格納されているディレクトリにアクセスし、handson/ec2-get-startedで、ディレクトリの移動を行う。

その後、pythonのvenv仮想環境内に依存ライブラリをインストールする。まず、

  • python3 -m venv .env

で、env.という仮想環境を生成し、sourceコマンドで.env/bin/activateにアクセス。そうすると、(.env)と表示され、仮想環境にアクセスできたことがわかる。さて、早速依存ライブラリを生成しよう。ec2-get-startedディレクトリ内に元々存在するrequirements.txtを読み込み、依存ライブラリをインストールする。

これで、依存ライブラリのインストールは完了した。

次に、SSH鍵を生成する。まず、exportで、鍵の名前を格納する変数を用意する。そして、その変数を組み合わせ、AWS側と自分のPC側の両方にキーペアを作成する。

これでsshキーの作成は完了なのだが、最後に.sshディレクトリに移し、更にアクセス権限を400にしておく。

もし、アクセス権限の設定を行わないと、不正取得のリスクが大きい上に、そもそも下のような警告が出て、sshキーが無視される。

これで、準備は完了だ。

デプロイ&アクセス

さて、いよいよデプロイに移る。まずは、cdkのバージョンが1.100になってることを確認し、仮想環境内にアクセス。その状態で、キーネーム込でデプロイを行う。

デプロイには、少々時間が掛かるが、成功すると、以下のような結果が帰ってきた。

さて、インスタンスAWSのEC2サービスにアクセスし、生成されているか確認してみる。

確認できたら、sshキーを用いてアクセスする。@以降は、EC2インスタンスIPアドレスを入力。成功すれば、上のような結果が返り、プロンプトの入力部分が[ec2-user@ip-……]となる。

EC2インスタンスを操作してみる

さて、EC2にアクセスしたので、少しデータを覗いてみよう。まずは、catで/proc/cpuinfoを覗いてみる。

続いては、topコマンドを実行し、実行中のプロセス、メモリの消費量を見る。

続いて、dfコマンドで、ストレージディスクについて調べる。最後に、Python3をアップロードしてみる。まずは、yumをアップデートする必要があるため、sudoとupdateを用いてアップデート。

アップデートが完了すれば、python3.6をインスタンス内にインストールする。

Complete!と出れば、python3.6のインストールは完了である。

動作確認のため、python3と打ち、動作するかどうかを確認する。>>>となれば、Python3.6のインストールは成功だ。確認できれば、Ctrl+Dで終了。

EC2インスタンスを終了

さて、これで試したいことは終了したので、EC2からログアウトをする。exitと打てばログアウトできる。

最後にスタックが生成されているかを確認してみる。今回のハンズオンではMyFirstEc2というスタックを生成した。

そして、使い終わったインスタンスは削除。

ついでに、キーペアの削除もしておく。因みに、キーペアの削除は、これからもインスタンスを用いる場合は削除しなくても問題はない。

このように、初めてのEC2インスタンスの起動を行った。