AWSアカウントを作る(3)EC2を立ててログインする

作業内容
マネジメントコンソールでEC2を構築してセッションマネージャーで接続します。
セッションマネージャーを使うために専用のIAMロールを作成してEC2に割り当てる必要があります。
この記事では以下の順番で操作を行います。
- IAMロールの作成
- EC2の作成
- セッションマネージャーで接続
ゴール
EC2にセッションマネージャーで接続してechoコマンドでhello worldを表示します。地味。。。
必要なもの
- 作業時間:30分
- 費用:無料※!EC2の無料枠の使用を想定しています。AWSアカウント作成から12カ月以内の場合は無料です。無料枠がない場合は5円ぐらいかかります。
- AWSアカウント
登場する主なコンポーネント
- EC2
AWSの仮想サーバーです。課金が秒単位のため必要なときだけ起動して使い終わったら停止することで費用を節約することができます。 - セッションマネージャー
ブラウザ上でEC2に接続して操作を行うための機能です。2019年9月に登場しました。
この機能が登場するまではEC2サーバー上でSSHサービスを起動してSSHで接続するのが一般的でした。初心者にはハードルが高く、接続するための鍵情報の管理などで多くの問題がありました。
セッションマネージャーの登場でEC2への接続の難易度は大幅に下がりました。 - IAMロールとIAMポリシー
EC2にセッションマネージャーで接続するためには専用の権限をつける必要があります。
権限のことをAWSではIAMポリシーと呼びます。IAMポリシーには多くの種類が存在しますが、今回はセッションマネージャーを使うための権限をEC2に与えます。
EC2にIAMポリシーを直接与えることはできないので、IAMロールを使ってEC2に割り当てます。
図にすると以下のようなイメージとなります。ただし、上記の説明は正確ではありません。IAM権限は理解が難しく、とりあえずEC2を動かすレベルであれば上記の理解で問題ないでしょう。IAMについて詳しく知りたい場合は専用の記事を書く予定なのでそちらを参照してください。
EC2の作成手順
- リージョンを東京に変更する
マネジメントコンソールにログインしたら右上のリージョンを確認してください。東京になっていない場合は東京に変更します。
「アジアパシフィック(東京)」を選択すると東京リージョンに変わります。 - マネジメントコンソールからIAMサービスを選択する
マネジメントコンソールの左上の「サービス」を押すと表示されるメニューから「セキュリティ、ID、およびコンプライアンス」を選択します。表示されるサブメニューから「IAM」を選択します。 - IAMロール一覧を表示する
IAMダッシュボード左側のメニューから「ロール」を選択してロール一覧を表示します。 - IAMロールの作成を開始する
「ロールを作成」ボタンを押してIAMロールの作成をはじめます。 - EC2用のロールとして作成する
「ユースケースの選択」から「EC2」を選択して「次のステップ:アクセス権限」ボタンを押します。 - セッションマネージャー用のポリシーを選ぶ
「ポリシーのフィルタ」に「AmazonSSMManagedInstanceCore」を入力して絞り込みます。
表示されたポリシーのチェックボックスをチェックして「次のステップ:タグ」ボタンを押します。 - タグの作成はスキップする
タグの追加画面が表示されますが、必須ではないのでスキップして「次のステップ:確認」ボタンを押します。 - ロールに名前をつける
「ロール名」に「SessionManagerRole」を入力し「ロールの作成」ボタンを押します。 - 一覧に作成したロールがあることを確認する
これでIAMロールの作成は完了です。 - EC2ダッシュボードを表示する
マネジメントコンソールの左上の「サービス」を押すと表示されるメニューから「コンピューティング」を選択します。表示されるサブメニューから「EC2」を選択します。 - EC2インスタンス一覧んを表示する
EC2ダッシュボード左側のメニューから「インスタンス」を選択してインスタンス一覧を表示します。 - EC2の作成を開始する
右上の「インスタンスを起動」ボタンを押してEC2の作成をはじめます。 - マシンイメージにAmazon Linux 2 AMIを選択する
マシンイメージの一覧から「Amazon Linux 2 AIM」を選択します。
「Amazon Linux 2 AIM」が複数表示されている場合、リストの一番上に表示されている最新バージョンを選択します。 - インスタンスタイプに無料枠対象のt2.microを選択する
インスタンスタイプの一覧から「t2.micro」を選択して「次のステップ:インスタンス詳細の設定」ボタンを押します。 - IAMロールにSessionManagerRoleを設定する
IAMロールに「SessionManagerRole」を設定して「確認と作成」ボタンを押します。 - 構成を確認する
AMIが「Amazon Linux 2 AIM」になっていること、インスタンスタイプが「t2.micro」であることを確認して「起動」ボタンを押します。!「インスタンスのセキュリティを強化してください。 セキュリティグループ launch-wizard-1 は世界に向けて開かれています。」というメッセージが心配になる方も多いと思います。
このメッセージの通り、このサーバーは全世界に公開されてSSHというサーバー接続用のサービスのポートが利用可能な状態で構築します。
しかし、起動したEC2サーバーでSSHのサービスを起動しないため、全世界のユーザーが接続して操作を行うことはできません。
心配な気持ちを抑えて、このまま先に進みましょう。 - キーペアは作成せずにEC2を作成する
キーペアの使用に関するダイアログが表示されます。
「キーペアなしで続行」を選択し「私は、キーペアがない場合・・・」のチェックボックスをチェックして「インスタンスの作成」ボタンを押します。!ちゃんとEC2に接続できるか心配になるメッセージが表示されていますが、キーペアはSSH接続を行う場合に必要となるものです。今回の手順ではSSHは使用せずにセッションマネージャーで接続するためキーペアの作成は不要です。
心配な気持ちを抑えて、このまま先に進みましょう。 - インスタンスの作成が開始されたことを確認する
「インスタンスは現在作成中です」が表示されていることを確認して「インスタンスの表示」ボタンを押します。 - 一覧に作成したEC2があることを確認する
EC2の一覧に追加された行のインスタンスの状態が「実行中」になっていることを確認します。 - EC2に接続する
EC2の一覧の左側のチェックボックスをチェックして「接続」ボタンを押します。 - 接続方法にセッションマネージャーを選択する
「セッションマネージャー」を選択して「接続」ボタンをおします。 - セッションマネージャーでコマンドを実行する
別タブでコンソール画面が表示されます。(起動するまではAWSコンソールの画面で処理が行われます)
ここで「echo hello world!」コマンドを入力してみましょう。
以下画面のようにhello world!が表示されれば正常に接続できています。 - セッションマネージャーを終了する
「exit」コマンドを入力してセッションマネージャーを終了します。 - 終了確認ダイアログを閉じる
終了確認ダイアログが表示されるので「閉じる」ボタンを押します。 - EC2一覧を表示する
接続画面に戻るのでパンくずリストの「インスタンス」を選択してEC2一覧を表示します。 - 作成したEC2を停止する
EC2の一覧の左側のチェックボックスをチェックして「インスタンスの状態」プルダウンから「インスタンスを停止」を選択します。 - 確認ダイアログで停止を押す
確認ダイアログが表示されるので「停止」ボタンを押します。 - 一覧の表示が停止中になったことを確認する
EC2の一覧のインスタンスの状態が「停止中」となったことを確認します。
しばらくすると「停止済み」に自動的に変わります。 - 一覧の表示が停止済みになったことを確認する
EC2の一覧のインスタンスの状態が「停止済み」となったことを確認します。
停止中のインスタンスは課金されません。
感想
セッションマネージャーの登場でEC2の構築や操作が格段に楽になりました。
セッションマネージャーの登場でSSH接続することは少なくなっていると思うので、EC2作成時のキーペアの確認は表示しないほうが初心者を不安にさせなくて良いと思いますね。