AWS EC2インスタンスにログインする。ポートを開放しておく。

Amazon EC2は仮想サーバ

Amazon S3クラウドストレージ

Amazon RDSはデータベース

一応言葉使いはこんな感じの認識でいると想像し易いかも↓ 

https://it-trend.jp/database/article/89-0058

 

まず前提としてリージョンは最初に選ぼうね。

 

EC2(Amazon Elastic Compute Cloud)

仮想マシン(ソフトウェア)が仮想的なlinuxサーバーを使えるようにしてくれる。このLInuxサーバー1つ分のことをEC2インスタンスと呼ぶ。あくまで仮想的な物だから物理的に一台という訳ではない。

 

AMI (Amazon Machine Image)

サーバーのデータを丸ごと保存したデータ。OSやwebサーバー等が事前にインストールされてる物もある。今はとりあえずAmazon Linux AMI を使ってる(2じゃない方)。クイックスタートからAmazon Linux AMI を選択したら、

インスタンスタイプ(スペックが違う。要はサーバーのスペック選べ)の選択に移るので、

無料枠のt2.microを選択して確認と作成ボタンを押して、インスタンス作成の確認ページに移る

間違いがなければ起動ボタンを押す

 するとキーペア のダウンロードができるのでする。インスタンス毎にキーペア を作成しといた方が理論上は安全そう。鍵管理の煩雑さとの兼ね合いではあるので、どの程度そのサーバーにアクセスされたら困るかでレベル分けしてもいいかもしれない。

注意すべきポイントとして

この時ダウンロードしてるのは秘密鍵であるということ。

これは本来はおかしいのだが(本来秘密鍵はローカルで生成して、公開鍵だけをリモートに追記する。詳しくは前にまとめたSSH参照)、AWSは信頼できるのでコンソールで作成した物をダウンロードしてる。もちろんAWS秘密鍵は持たずに破棄してくれる。

ユーザーが簡単にSSHできるようにというAWS側の配慮である。

当然他人に知られてはいけないし、無くすとログイン出来なくなってしまうので必ずダウンロードして保存しておくこと。キーペア の名前は何でもいいが、エラーのもとなのでスペースは含まないこと。

拡張子が.pemというファイルでダウンロードされる。

鍵名.pemってやつ。普通にdownload内にダウンロードされるので.sshディレクトリに移動させる。ディレクトリが無ければ作る。

chmod 600 ダウンロードした鍵の名前.pem

で権限設定しとく。

ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したインスタンと紐付けたElastic IP

でログイン可能だが、普段はec2-userではログインしない。あと説明する。

ここまでやって初めてEC2インスタンスの作成ができるようになる。

作成したらIDをメモっとく。(次のElastic IP 取得に必要なため)

 

Elastic IP

インスタンス作っただけだとサーバー起動時にIPアドレスが変わってしまうのでその都度設定を変える必要が出てくるので大変。Elastic IPを取得して紐づけることで、インスタンの起動停止にかかわらず固定のIPアドレスを使える。

まずElastic IPを取得。取得出来たら

アクションからアドレスの関連付けを選ぶ、

次のページでインスタンスを選ぶプルダウンがあるから、メモっといたインスタンスIDのインスタンスを選んで関連付ける。(プライベートI Dは入力しない)

取得したElastic IPと作成したインスタンスのパブリックIPが同一の物になってることを確認する

 

ポート開放

 インスタンスは立ち上げたばかりだとSSHしか出来ない。

普通のhttp接続とかも出来ないので必要なポートを開放していく

設定はセキュリティグループで行う

 

セキュリティグループ

EC2インスタンスが属するまとまり。複数のEC2インスタンスのネットワーク設定を一括で行うためのもの。EC2インスタンス一覧のぺーじにセキュリティーグループのリンクも書いてあるから、インスタンの属するセキュリティグループの設定ページに飛んで編集を選択する。

モーダルが開くので、「ルールの追加」ポートを開く

タイプ HTTP

プロトコル TCP

ポート範囲 「80」

送信元「カスタム/0.0.0.0, ::/0」

等としてhttpのポートを開いておく。それぞれの意味は気になったら調べるべし。普通はこれにしとけばいいと思う。

この時にルールの追加で開くこと。もともとあるSSHのポート閉じたりしないようにね。

 

EC2インスタンへのログイン 

抜粋

 

$ chmod 600 ダウンロードした鍵の名前.pem

$ ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP
#(例えばElastic IPが123.456.789であれば、ssh -i ダウンロードした鍵の名前.pem ec2-user@123.456.789 というコマンドになります)
#(ダウンロードした鍵を用いて、ec2-userとしてログイン)

 

以下の様なメッセージが表示されることがありますが、「yes」と入力して下さい。

ターミナル(ローカル)
1
2
3
4
$ ssh -i aws_key.pem ec2-user@52.68.~~~~~~
The authenticity of host '52.68.~~~~~~ (52.68.~~~~~~)' can't be established.
RSA key fingerprint is eb:7a:bd:e6:aa:da:~~~~~~~~~~~~~~~~~~~~~~~~.
Are you sure you want to continue connecting (yes/no)? 

 

左側が[ec2-user]になれば成功。

ssh接続は一定時間でタイムアウトするので、切れたら同じようにまたログインする。

-i はidentigyのi 秘密鍵ファイルのことを言ってる。

https://webkaru.net/linux/ssh-command/

 

ただしec2-userは権限が大きいため、権限を小さくしたユーザーを作成してそちらでログインするのが普通

 

 

追記予定