AWS EC2 第2回EC2 Instance(Amazon Linux2)へのSSH接続

#はじめに
前回EC2 Instanceの起動を行いました。
EC2 Instanceを起動後、そのサーバーに対して何を実行させるか？によって実施する内容は色々とありますが、まずはEC2 Instanceへ接続しないことには話は始まりません。
従いまして、今回はそのEC2 InstanceへSSH接続します。

#今回実施する内容
EC2 InstanceへSSH接続します。
![SSH接続図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/8e8a9e4e-554a-470f-859d-de8ef0bb5da8.jpeg)

#環境
AMI: Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-05f4d5a411fcc68e0 (64 ビット Arm)

#参考
[Tutorial: Getting started with Amazon EC2 Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html?trk=em_a131L000005jw1jQAA&trkCampaign=pac_EC2_docs_GettingStarted_GlobalEM&sc_channel=em&sc_campaign=GLOBAL_PM_AB_ec2_201904_&sc_medium=em_78339&sc_outcome=PaaS_Digital_Marketing&sc_geo=NAMER&sc_country=mult&sc_content=AWS_Webpage&mkt_tok=eyJpIjoiTVdJeFlXRTVNelJsTWpOaCIsInQiOiJKY0tIN1NYckFZeXNobUUyWmpuSjVlMEJuZmV1ZGh2ZkFLK2dQRHljTUd0Qlgrd1ZpV3VaM08zNTE0KzQ3NHlwMGdlYnl5MURlU0tQeFVna2hFdWpvdnBjS3RqTUFPYUNyUVwva0tDME04Vk9rTnhqc1poOG1XdnlJUU1sMTlqdTBsbVh5NjZQNElSNmhNWFdQcjBIKzl3PT0ifQ%3D%3D)

[インスタンスのライフサイクル](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)

[AWS EC2 EC2 Instance (Amazon Linux AMI)の作成2](https://qiita.com/Mount/items/819cdd4a960ac62ae597)
この記事のもととなるEC2 Instance (Amazon Linux2)構築の記事です。

#用語
特になし

#EC2 Instanceの起動、開始、停止、再起動、終了
EC2 Instanceの状態遷移させるにあたり、「起動」、「開始」、「停止」、「再起動」、および「終了」という表現がありますので、これを説明します。
これらは、インスタンスの画面から「インスタンスの状態」で変更することができます。

詳しくは、「[インスタンスのライフサイクル](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)」を見てもらえればと思いますが、ザクっと４つをイメージで覚えるとよいと思います。

|状態|説明|
|:--|:--|
|起動|EC2 Instanceを作ること。PCを買ったと思えばよいかと思います。|
|開始|EC2 Instanceの電源を入れて立ち上げること。PCを起動するイメージです。|
|停止|EC2 Instanceの電源を切ること。PCをシャットダウンするイメージです。|
|再起動|EC2 Instanceを停止して開始すること。PCの再起動のイメージです。|
|終了|EC2 Instanceを破棄すること。PCを捨てるイメージです。|

基本的には、「開始」、「停止」、「再起動」だけ使えばよく、新たにEC2 Instanceを作成したいときには「起動」、EC2 Instanceを破棄したくなったら「終了」でよいと思います。

なお、「終了」すると、構築したEC2 Instanceがなくなってしまうため、バックアップを作成することもできますが、まずは終了を誤ってしないようにしておくことがよいと思います。

EC2の画面の「アクション」→「インスタンスの設定」→「終了保護を変更」で、「有効化」にチェックしておくと誤って終了しようとしてもできないようになっています。
![終了保護.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/fa8193b1-0816-1f9d-4a11-f10a2119eba0.jpeg)

#SSH接続

1. EC2 Instanceの開始
    EC2コンソール画面上で、起動するEC2 Instanceのチェックボックスをチェックして、「インスタンスの状態」→「インスタンスの開始」を選択する。

2. パブリックIPv4アドレスの確認
    起動すると、EC2 InstanceにパブリックIPv4アドレスが割り当てられます。EC2コンソール画面の下に該当の情報がでますので、それを確認する。
    IPアドレスを固定にするElastic IPアドレスも使用可能ですが、わずかですが費用がかかるため、初期設定中はまだ使わなくてもよいかなと思います。

3. SSH接続
    2のパブリックIPv4アドレスに接続します。
    SSH接続できるなら何でもよいのでしょうが、私は「Tera Term」を使用します。
    ホスト：上記で確認したパブリックIPv4アドレス
    サービス：SSH
    TCPポート：22
    SSHバージョン：SSH2
    IPバージョン：AUTO
    で接続します。
![SSH login.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/d7c1ba11-c196-173c-3db8-97877d6bb757.jpeg)

    「セキュリティ警告」が表示されますが、「続行」を押して続けます。
    SSH認証画面が表示されます。ここで、以下を設定してOKを押すと、SSH接続できます。
    ユーザー名：ec2-user
    パスフレーズ：なし
    認証方式：「RSA/DSA/ECDSA/ED25519鍵を使う」を選択し、ファイルを開くボタンを押して、EC2 Instance起動時に作成したキーペアを設定する。
![SSH接続.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/1317a969-dc8c-74ed-71d5-2f0bf726810c.jpeg)

    デフォルトでは、SSH接続は、キーペアで接続してパスワードはないようです。

#Internet gatewayやセキュリティ
デフォルトだと、上記の通りすんなりとSSH接続できてしまいますが、セキュリティがざるかといえばそうでもなく、いたるところに設定があります。

##Internet gateway
「今回実施する内容」の図で、Internetから、AWS Cloudに接続するにあたり、最初に「Internget gateway」が設定されています。
AWSのサービスから、VPC（Vertual Private Cloud）を選択して、VPCコンソール画面を表示させます。
左側のメニューから「インターネットゲートウェイ」を選択すると、インターネットゲートウェイIDとそれに関連づくVPC IDがリストされます。
作成したEC2 Instanceに関連づくVPC IDをクリックすると、詳細が表示され、そこにあるルートテーブルをクリックするとルートテーブルが表示されます。
![ルートテーブル.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/85e490d3-8db3-ece7-1ee4-7a6fc2dbc4d6.jpeg)

ここで、1つ目はターゲットがローカルとなっています。VPC内で複数存在する場合のゲートウェイかと思います。
２つ目は、0.0.0.0/0でターゲットはインターネットゲートウェイIDとなっています。
デフォルトではどのIPアドレスからの接続も許容するという設定と思います。

#セキュリティ
AWSのサービスからEC2コンソール画面を表示させます。
左側のメニューから「セキュリティグループ」を選択すると、セキュリティグループのリストが表示されます。
この中で、セキュリティグループ名が「launch-wizard-X」（Xは数字）のものがあると思いますが、これがEC2 Instance起動時にデフォルトで作成されるセキュリティグループです。このセキュリティグループIDをクリックすると、詳細が表示されます。そこにインバウンドルールがあり、プロトコルがTCPでポート範囲が22でソースが0.0.0.0/0（IPアドレスはなんでも可）の設定となっており、SSHだけが通るルールがあります。

![インバウンドルール.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/a1bf67ef-4895-d0d6-fc2c-3bcb700241fe.jpeg)

ここで、デフォルトでは、SSH接続だけ許容する設定になっていることがわかります。

アウトバウンドについては、なんでも可になっています。デフォルトで何か外にでていくことはないので、これでよいのかなとは思います。

#おわりに
今回は、SSH接続の仕方について説明しました。