前回、AWS上にWindows Serverのインスタンスを作成し、RDPで接続を行うまでを手順にしました。
今回は、Amazon Linuxのインスタンスを作成し、SSHアクセスが可能な環境構築し、手順にしていきます。
期待する目標
本手順の目標は以下の通りです。
- Amazon Linuxのインスタンスを作成する
- 作成したインスタンスにSSH接続ができる
- インスタンスを終了できる
前提条件
EC2を作成するには、こちらの記事のVPCの作成まで実施している必要があります。
また、作成したAmazon LinuxのインスタンスへSSH接続を行うため、作業端末がWindowsであればTeratermなどのSSHソフトウェアが必要となります。今回はTeratermを使用してSSHを行っていきたいと思います。
EC2 インスタンスの作成
AWS Management Consoleより、[EC2]-[インスタンス]-[インスタンス]を選択します。
インスタンスより、[インスタンスを起動]-[インスタンスを起動]を押下します。
[ステップ1 : Amazon マシンイメージ]より、作成するインスタンスのマシンイメージを選択します。
今回は、無料利用枠を使用してAmazon Linuxを作成します。
利用するAMIは[Amazon Linux 2]でカーネルバージョンが[5.10]のAMIを選択しました。
[ステップ2 : インスタンスタイプの選択]より、[t2.micro]のインスタンスを選択しました。
AWSのインスタンス利用料金については、こちらのページを参照してください。
作成するインスタンスのスペックは以下の通りとなります。
- OS : Amazon Linux 2
- インスタンス名 : t.2 micro
- vCPU : 1Core
- MEM : 1GB
- DISK : 10GB
なお、インスタンスはAMIから展開するため、Amazon Linuxのインストールについては不要となります。
インスタンスの種類については、ファミリーとタイプに分かれています。
ファミリーはインスタンスがどのようとに最適化されているかによって変わります。
汎用であれば、T、M、A1が該当のファミリーとなり、CPUのリソースに特化したインスタンスファミリーであればC、メモリに最適化されたインスタンスはMなどの用途によってインスタンスの特色が異なるため、EC2を使用する目的により、ファミリーは変更してください。(基本的に文字の後の数字がインスタンスの世代となっており、数字が大きいほうが新しい世代となります。)
また、タイプについてはインスタンスの大きさを表しています。
micro < small < large < xlargeとなり、大きさによりCPUのコア数やメモリ数、NICのリンク速度などが変わってきます。(もちろん、時間当たりの料金も高くなります。)
[ステップ3 : インスタンスの詳細の設定]より、以下の設定を行います。
- インスタンス数 : 1 (展開するインスタンス数を設定)
- 購入オプション : □スポットインスタンスのリクエスト (スポットインスタンスを使用する場合は選択)
- ネットワーク : インスタンスを展開するVPCを選択
- サブネット : 選択したVPC内の展開するサブネットを選択
- 自動割り当てパブリックIP : サブネット設定を使用(無効)
これ以外の項目については、検証のためデフォルトで設定しています。
インスタンスについては、本項でどのVPCに展開するか、どのネットワークレンジに展開するかを設定しています。
設定が完了したら[次のステップ:ストレージの追加]を選択します。
[ステップ4 : ストレージの追加]より以下の設定を行います。
ストレージについては、EC2のインスタンス料金とは別に発生します。
ストレージタイプにより、ストレージの特性やIOPSが変わるため、用途によりボリュームタイプは変更してください。
クラウドの基本ですが、利用する性能を高くすると時間料金が高くなります。
ボリュームの詳細については、こちらをご覧ください。
- サイズ : 10GB (無料利用枠内を使用)
- ボリュームタイプ : 汎用SSD (gp2)
- 終了時に削除 : ■(EBSを他のインスタンスで使用する場合はチェックを外してください)
[ステップ5 : タグの追加]より、必要に応じてタグをつけてください。
今回は不要なため、[次のステップ:セキュリティグループの設定]を選択します。
このセキュリティグループはEC2におけるFirewallの役割があるため、適切に設定を行ってください。
今回は、新しくSGを作成しインバウンド(EC2へ入る通信)をSSHのみ許可する設定にしています。
このSG設定が正しくできていないと、外部からEC2へのアクセスができなくなりますので、最低限の設定を入れます。
[ステップ6 : セキュリティグループの設定]より、以下の設定を行います。
- セキュリティグループの割り当て : 新しいセキュリティグループを作成する
- セキュリティグループ名 : 任意のSG名
- 説明 : 任意の説明(必須)
- タイプ : SSH
- ソース : マイIP [接続するグローバルIPアドレスを指定(xxx.xxx.xxx.xxx/32で指定)]※
セキュリティグループの作成で気を付けることは、送信元のIPアドレスを限定することです。
マイIPに設定し、CIDRを/32にすることで1IPまで絞ることができるため、可能な限り接続元は絞ってください。
また、特殊な用途でない限りSSHで0.0.0.0/0の設定は行わないでください。
全世界から攻撃の対象となってしまします。
設定が完了したら、[起動と作成]を選択します。
[ステップ7 : インスタンス作成の確認]より、作成するインスタンスを確認し、[起動]を選択します。
[既存のキーペアを選択するか、新しいキーペアを作成します。]より、以下の設定を行います。
- キーペア : 新しいキーペアを作成(既存のキーペアを把握している場合は、そちらを選択)
- キーペアタイプ : RSA
- キーペア名 : 任意のキーペア名を設定
キーペアの設定が完了したら、[キーペアのダウンロード]を選択します。
このキーペアは紛失・流出しないように厳重に保管してください。
キーペアを紛失するとインスタンスにアクセスできなくなる場合があります。
また、キーペアが流出すると、インスタンスに不正アクセスされる可能性があります。
Linux系のインスタンスはSSHを行う際にパスワード認証ではなく、公開鍵認証を行うため、キーペアをSSHを行う端末内に配置し、適切なアクセス権を設定して保管してください。
キーペアのダウンロード後、[インスタンスの作成]を選択します。
[作成ステータス]より、[インスタンスは現在作成中です]と表示されれば、インスタンスの作成完了です。
[インスタンスの表示]を選択します。
作成したインスタンスのステータスが[実行中]となっていればインスタンスの作成と起動が完了しています。
作成後、起動まで時間がかかる場合があるため、インスタンスの[Name]部分を選択すると、名前を編集できるためインスタンスの区別を行いやすくするため、変更しておきましょう。
以上でインスタンスの作成は完了です。
Elastic IPのアタッチ
EC2インスタンスが設定できたら、Elastic IP (グローバルIP)をインスタンスに付与していきます。
Elastic IPを設定することでインスタンスに固定のグローバルIPを付与させることができます。
このようにすることで、外部のサービスを提供したり、リモートでアクセスさせることが可能になります。
[EC2]-[ネットワーク&セキュリティ]-[Elastic IP]を選択し、[Elastic IPアドレスを割り当てる]を選択します。
[Elastic IPアドレスの設定]より、[パブリックIPv4アドレスプール]-[AmazonのIPv4アドレスプール]を選択し、[割り当て]を選択します。
[Elastic IPアドレスが正常に割り当てられました]のメッセージが表示されたら、Elastic IPアドレスの割り当ては完了です。
この時点ではAmazonが保有しているグローバルIPアドレスを取得しただけなので、このElastic IPアドレスをEC2に紐づける作業が必要です。
また、必要に応じて取得したElastic IPアドレスに名前を付けておきましょう。
EC2に割り当てるElastic IPアドレスを選択し、[アクション]-[Elastic IPアドレスの関連付け]を選択します。
[Elastic IPアドレスの関連付け]より、以下の設定を行います。
- リソースタイプ : インスタンス
- インスタンス : Elastic IPを割り当てるEC2インスタンスを選択
- プライベートIPアドレス : EC2インスタンスのプライベートIPアドレスを選択
- 再関連付け : ■このElastic IPアドレスの再関連付けを許可する
Elastic IPアドレスとEC2の紐づけはインスタンスIDを選択するだけです。
ここでのポイントは、再関連付けを許可しておくことです。
再関連付けの許可は、EC2インスタンスを解体した際に、別のインスタンスへ同じElastic IPの関連付けを許可する設定になります。
EC2インスタンスをあたらに作り直したり、別のサーバへ付け直す際に再関連付けを許可していないと別のグローバルIPを割り当てることになり、様々な設定変更が必要になる場合があります。
以上の設定が完了したら、[関連付ける]を選択します。
[Elastic IPアドレスが正常に関連付けられました]のメッセージが表示されれば、EC2インスタンスとElastic IPアドレスの関連付けは完了です。
Elastic IPアドレスの欄に[関連付けられたインスタンス]に該当のインスタンスが表示されれば問題なく完了しています。
EC2 インスタンスへSSH
EC2インスタンスにElastic IPアドレスの関連付けがされ、SSHのSG設定が完了したら、インスタンスにSSHを行っていきます。
本環境の作業端末はWindowsのため、Teratermを使用してSSHを行っていきます。
Teratermを起動し、[新しい接続]を選択します。
以下の設定を行い、[OK]を選択します。
- ホスト : EC2に関連付けしたElastic IPアドレス
- TCPポート : 22
- サービス : SSH (SSHバージョン:SSH2)
Teratermは初回アクセス時にknown hostsリストにIPのエントリが存在しない場合、セキュリティの警告が表示されます。
[続行]を選択することで、接続が継続されます。
[SSH認証]より、以下の設定を行います。
- ユーザ名 : ec2-user
- パスフレーズ : 空白
- 認証方式 : RSA/DSA/ECDSA/ED25519鍵を使う
基本的にAmazon Linuxでは公開鍵認証による認証が行われます。
そのため、認証方式をパスフレーズから変更してあげる必要があります。
認証方式を変更したら、三点リーダより、秘密鍵をエクスプローラから選択します。
ここで必要な秘密鍵は、EC2作成時にダウンロードしたキーペアとなります。
キーペアを選択し、[開く]を選択します。
[秘密鍵]のパスが表示されていることを確認し、[OK]を選択します。
コンソールが表示されればSSHによる接続は完了です。
Amazon LinuxはRHEL系のOSのため、パッケージ管理システムはyumとなります。
AMIから展開した場合は、パッケージマネージャーの情報が古い可能性があるので、アップデートしておくことをお勧めします。
以上でEC2インスタンスへのSSH接続は完了です。
EC2 インスタンスの削除(インスタンスの終了)
EC2インスタンスの作成方法は前項までの手順で確認しました。
しかし、インスタンスは起動していなくてもお金がかかる部分があります。
(EC2のインスタンスは起動時間に対して時間料金が発生するが、EBSについては1GBでも使用していれば時間単位で料金が発生する。)
そのため、検証終了後に不要になったマシンはEC2とEBSをまとめて削除してあげないと、永遠に料金が発生します。
作成したものの削除ができないというのはクラウド環境では致命的なため、[作成]と[削除]は必ずセットで手順を確認しましょう。逆に「削除の手順が確立していない場合は作成を実行しない」など独自でルールを策定すると使いすぎ防止に良いと思います。
[EC2]-[インスタンス]-[インスタンス]より、削除対象のインスタンスを選択します。
削除対象のインスタンスを選択したら、[インスタンスの状態]-[インスタンスを終了]を選択します。
この際、インスタンスが起動していても自動的にシャットダウンされるため、検証終了後にシャットダウンを行わずに、インスタンスを削除することができます。
[終了 インスタンス?]より、削除対象のインスタンスが選択されていることを確認します。
AWSではインスタンスの削除のことをインスタンスの終了と明記しています。
このインスタンスを終了を実行すると、基本的に仮想マシン毎削除されてるため、原則復旧ができなくなります。
そのため、インスタンスの終了はいつも以上に慎重に確認を行ってください。
削除対象のインスタンスが選択されていることを確認したら、[終了]を選択します。
[正常に終了しました]のメッセージが表示され、削除対象のインスタンスのステータスが[終了済み]となっていることを確認します。
EC2では、削除したインスタンスも少しの間コンソール上に残ります。
しかし、バックグラウンドでは削除処理が実行されているため、30分程度でコンソール上からも削除されると思います。
以上で、EC2インスタンスの削除は完了です
Elastic IPアドレスの解放
EC2インスタンスの削除は前項で実施しました。
しかしインスタンスを削除したことによって請求が発生するものが存在します。
それが、Elastic IPアドレスです。
Elastic IPアドレスはEC2のマシンを紐づいている場合は料金が発生しませんが、EC2インスタンスが終了等によって関連付けが外れた状態になっていると、料金が発生します。
料金自体は微々たるものですが、塵も積もれば山となるという事態もあるので、不要であればElastic IPアドレスを削除します。
Elastic IPアドレスの削除は本当にそのIPアドレスを再利用する予定がないことを確認してから削除してください。一度削除してしまうと同一のElastic IPアドレスの取得は困難です。
[EC2]-[ネットワーク&セキュリティ]-[Elastic IP]を選択します。
削除対象のElastic IPアドレスを選択し、[アクション]-[ELastic IPアドレスの解放]を押下します。
[Elastic IPアドレスの解放]より、削除対象のElstic IPであることを確認し、[削除]を選択します。
[Elastic IPアドレスが解放されました]のメッセージが表示されたことを確認し、Elastic IPアドレスの削除は完了です。
キーペアの削除
前回、Windows Serverのインスタンスを起動した際にはキーペアの削除を行いませんでしたが、今回はキーペアの削除を行っていきます。
[EC2]-[ネットワーク&セキュリティ]-[キーペア]を選択します。
削除するキーペアを選択し、[アクション]-[削除]を押下します。
削除対象のキーペアを確認し、入力フィールドに[削除]と入力します。
入力が完了したら[削除]を押下します。
Amazon Linuxのように公開鍵認証を行っているLinuxのキーペアを削除する際は削除しても問題ないキーペアかを削除前に立ち止まって確認しましょう。
誤って削除対象外のキーペアを削除してしまうと復旧が困難になります。
[1個のキーペアが正常に削除されました]のメッセージが表示されれば、キーペアの削除は完了です。
まとめ
今回は、前回に引き続きEC2インスタンスの作成手順を記載しました。
前回はWindows Serverのため、EC2の作成手順までは同様でしたがアクセス方法が異なるため、Linux版も作成しました。
EC2の作成自体は一度覚えればどのインスタンスをどのVPC・サブネット上に展開するかを決めるだけなので、比較的簡単に作成ができると思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
コメント