【AWS②】サーバーを構築してみる
どうもoreoです。
前回の記事では、AWSでネットワークを構築しました。
第2回のこの記事では、AWSでサーバーを構築します。自分へのメモ的な記事になりますが、普段インフラを触らない人の参考になれば幸いです!
1 前提知識
前提知識として以下のような知識が必要になるので簡単に記載しておきます。
Amazon EC2(Elastic Compute Cloud)
AWSでサーバーを構築できるサービス。
インスタンス
EC2で起動された各サーバーのこと。
パブリックIPアドレス
インターネットと通信する時に使用するIPアドレス。
プライベートIPアドレス
社内LANなどで使うプライベートなIPアドレス。今回は前回作成したVPC領域内で通信する際に使用するIPアドレスです。
ウェルノウンポート
代表的なアプリケーションが使うポート番号として予め定められたもの。例えば、SSHの22番、SMTPの25番、HTTPの80番、HTTPSの443番などがあります。
2 サーバーを構築する
2-1 概要
今回は前回作成したVPC領域にインスタンスを作成し、SSH接続してみたいと思います。
2-2 インスタンスの作成
AWSマネジメントコンソールでEC2を開きます。右上で東京Regionが選択されていることを確認し、「インスタンス」>「インスタンスを起動」を選択してインスタンスの設定を行います。
インスタンス名
インスタンス名を「webサーバー」とします。
AMI
AMI(Amazon Machine Image)で、Amazon Linux2 AMIを選択します。AMIはインスタンスのテンプレートです。
インスタンスタイプ
インスタンスタイプ(仮想マシンのスペック)はt2.microを選択します。AWSにサインアップしてから12ヶ月以内の場合、t2.microは無料利用対象です。
ネットワーク設定
続いてネットワークの設定です。ネットワークを「VPC領域」、サブネットを「パブリックサブネット」、またパブリックIPの自動割り当てを「有効化」とします。
パブリックIPの自動割り当てを有効にしておくと、パブリックIPアドレスは起動のたびにランダムなものが設定されるようになります。
続いて、プライベートIPアドレスを「10.0.1.10」とします。
パブリックサブネットを10.0.1.0/24(10.0.1.0~10.0.1.255)と設定しているので、その範囲内でプライベートIPアドレスを割り当てます。ただし、CDREブロックの先頭の10.0.1.0はネットワーク全体を表す「ネットワークアドレス」を示し、また末尾の10.0.1.255は全てのホストを表す「ブロードキャストアドレス」を示しているので、それら以外の範囲で割り当てる必要があります。
ストレージの設定
ストレージはデフォルト値のままで設定を進めます。
セキュリティグループ
セキュリティグループはインスタンスにセキュリテイを設定する機能です。セキュリティグループ名を「WEB-SG」とします。デフォルトの設定では、SSHのウェルノウンポートであるポート22に対して全ての通信(0.0.0.0/0)が許可されています。
キーペア
インスタンスにログインするためのキーペアを「my-key」として作成し、ダウンロードしておきます。ダウンロードしたmy-key.pem
は、SSH接続用に~/.ssh
に移動しておきます。このキーペアがないと、インスタンスにログインできないので、注意してください。
インスタンスを起動する
「インスタンスを起動」を選択すると、インスタンスを起動することができます。
2-3 起動したインスタンスにSSHで接続してみる
インスタンスにSSH接続するために、インスタンスの「パブリックIPアドレス」を確認します。起動中のインスタンスをチェックし「詳細」タブで確認することが可能です。この場合、35.78.76.254となります。
続いて、ターミナルを開いて、ssh -i ~/.ssh/my-key.pem ec2-user@[パブリックIPアドレス]
を実行するとインスタンスに接続できます!
この時、UNPROTECTED PRIVATE KEY FILE
というエラーが出た場合は、chmod 400 ~/.ssh/my-key.pem
を実行し、my-key.pem
を自分だけしか読み込めないようにすれば、エラーが解消されます。
3 最後に
次回は、今回作成したインスタンスにApacheをインストールし、ファイアウォールなどの設定をしたいと思います。
4 参考
Discussion