AWS
EC2

初めてEC2を触ってみたので手順をまとめた

はじめに

EC2を初めて触ってみたので、簡単に手順をまとめてみました。

システム構成

非常にシンプルです。冗長化もしてません。

system.png

ゴール

  • EC2インスタンスを起動する
  • Apatchをインストールする
  • ブラウザでTest Pageが見れる

ユーザ環境

  • Windows 10

AWS環境の構築

VPC(Virtual Private Cloud)

AWS(クラウド)にプライベートな空間を作成します。このVPC内にサブネットワークを任意で作成することができ、EC2はこのサブネットワーク内で使用することができます。

VPCの作成

VPCのサービス画面を開き、「VPCの作成」を選択します。

vpc01.png

「1個のpublicサブネットを持つVPC」を選択します。これを選択することで、必要なルートテーブルやインターネットゲートウェイの作成を自動で行ってくれるようです。便利!!

vpc02.png

ほぼデフォルトのママですが、いろいろと設定を行い、「VPCの作成」を選択します。

項目名 設定値
IPv4 CIDRブロック 10.0.0.0/16
IPv6 CIDRブロック なし
VPC名 aws-vpc-test(任意)
パブリックサブネットのIPv4 CIDR 10.0.0.0/24
アベイラビリティゾーン ap-northeast-1a
サブネット名 subnet-1a(任意)
DNSホスト名を有効化 はい
ハードウェアのテナンシー デフォルト

vpc03.png

できました!

vpc04.png

EC2

EC2を作成する前に、必要な下準備を行います。(EC2作成時に一緒に作ることもできます)

キーペアの作成

EC2のサービス画面を開き、左側のメニューにある「キーペア」を選択します。

key01.png

「キーペアの作成」を選択します。

key02.png

任意のキーペア名を入力し、「作成」を選択します。直後にpemファイルのダウンロードが行われます。後ほどssh接続する際に使用するため、忘れずに保存しましょう。

key03.png

これでキーペアの作成は完了です。

key04.png

セキュリティグループの作成

左側のメニューにある「セキュリティグループ」を選択します。

security01.png

「セキュリティグループの作成」を選択します。

security02.png

設定を行い、「作成」を選択します。

項目名 設定値
セキュリティグループ名 aws-test-security-group(任意)
説明 aws-test-security-group(任意)
VPC aws-vpc-test(先ほど作成したVPC)

セキュリティグループ(インバウンド)は下記です。マイIPは、AWS接続時に自身が使用しているIPアドレスを意味します。

項目名 設定値
タイプ SSH
プロトコル TCP
ポート範囲 22
ソース マイIP

security03.png

これにより、インバウンド(EC2インスタンスへのアクセス)は、SSH(マイIP)のみ許可されることになります。

インスタンスの作成

左側のメニューにある「インスタンス」を選択し、「インスタンスの作成」を選択します。

instanse01.png

AMIとして「Amazon Linux AMI」を選択します。

instanse02.png

インスタンスタイプは「t2.micro」を選択し、「次の手順」を選択します。AWS登録後12ヶ月は無料利用の対象です。

instanse03.png

インスタンスの詳細設定を行います。基本的にデフォルトのままです。変更する部分は下記です。設定後に「次の手順」を選択します。

項目名 設定値
ネットワーク aws-vpc-test(先ほど作成したVPC)
サブネット subnet-1a(VPC作成時に作成したサブネット)
自動割当パブリックIP 有効化

instanse04.png

ストレージの追加ですが、デフォルトのまま進みます。「次の手順」を選択します。

instanse05.png

タグの追加ですが、必要に応じてプロジェクト名や作成者などを追加してください。ここではそのまま進みます。「次の手順」を選択します。

instanse06.png

セキュリティグループの設定では、「既存のセキュリティグループを選択する」を選択します。

先ほど作成したセキュリティグループを選択し、「確認と作成」を選択します。

instanse07.png

最終確認を行い、「作成」を選択します。

instanse08.png

先ほど作成したキーペアを選択し、「インスタンスの作成」を選択します。

instanse09.png

「インスタンスの表示」を押して、しばらく待ちます。

instanse10.png

ステータスチェックが合格になり、状態がrunningならOKです。

instanse11.png

動作確認

EC2インスタンスにログイン

起動しているインスタンスにログインしてみます。

先ほどの画面にある「パブリックDNS」の内容をコピーします。

login01.png

お好みのSSHクライアントでログインします。ここではRloginを使用します。

項目名 設定値
ホスト名 先ほどコピーしたパブリックDNS
TCPポート ssh
ログインユーザ名 ec2-user
SSH認証鍵 キーペア作成でダウンロードしたpemファイル

login02.png

無事にログインできました!

login03.png

Apacheのインストール

下記コマンドでApacheのインストールと起動を行います。

$ sudo yum install httpd -y
$ sudo service httpd start
$ sudo chkconfig httpd on

ただし、セキュリティグループ(インバウンド)はSSHのみ許可しているため、ブラウザでパブリックDNSにアクセスできません。

次はセキュリティグループの設定を変更し、HTTPアクセスを許可します。

セキュリティグループの設定変更

左側のメニューにある「セキュリティグループ」を選択し、作成したセキュリティグループを選択します。

security11.png

画面下部の「インバウンド」の「編集」を選択します。

security12.png

「ルールの追加」を選択し、下記のルールを追加し、「保存」を選択します。

項目名 設定値
タイプ HTTP
プロトコル TCP
ポート範囲 80
ソース 任意の場所

security13.png

アクセス確認

適当なブラウザでパブリックDNSにアクセスすると、今度はデフォルトのTest Pageが表示されます!

test01.png

補足

IPアドレスについて

EC2のインスタンスに割り当てられるグローバルIPアドレスは、下記の2種類があります。

名称 内容
パブリックIPアドレス IPアドレスはインスタンスが起動・停止する度に変わる
Elastic IPアドレス IPアドレスは固定されている

IPアドレスが変わると不都合な場合は、Elastic IPアドレスを使用する必要があります。なお、使っていないと料金発生するので、料金形態は一度確認することをお勧めします。

冗長化について

様々な冗長化パターンがありますが、今回の内容では取り扱っていません。複数のインスタンスを作成したり、複数のサブネットを作成したり、それらを紐付けるALB(Application Load Balancer)を使用したりします。

まとめ

  • EC2インスタンス以外にもVPCやセキュリティグループなど設定すべきことがたくさんある
  • セキュリティ(ファイアフォール的な)は下記2種類が存在するので違いを理解して使う必要がある
    • ネットワークACL
      • VPC画面で設定する
      • サブネットレベルで動作する
    • セキュリティグループ
      • VPC画面またはEC2画面で設定する
      • インスタンスレベルで動作する
  • 2種類のIPアドレス(パブリックIP/Elastic IP)に注意する
  • ここからが本番(インスタンス内の環境構築、冗長化、バックアップ取得、セキュリティ対応など……)