Cwらぼっちゃ - IT技術研究ノート -

IT技術に関する記事を掲載します。

VPCとEC2インスタンスの作成

AWS でサーバーを構築するためにVPCとEC2インスタンスを作成します。
その他に、サブネット、Internet Gateway、ルートテーブルも併せて作成します。

今回構築するリソースのイメージは以下の図の通り。

f:id:CwLab:20190504180733p:plain

EC2(Amazon Elastic Compute Cloud)

仮想サーバーのこと。
EC2インスタンスを作成して、これにミドルウェアをインストールしてWEBサーバーなどのサーバーを構築していきます。

VPC(Virtual Private Cloud)

仮想ネットワークのこと。
EC2などのサーバーインスタンスが属するネットワークで、これがないとサーバー構築は始まりません。

サブネット

言わずもがなVPCの仮想ネットワークを分割したサブネットワーク。
実質ここにEC2インスタンスをぶら提げます。

Internet Gateway

サブネットをインターネットに繋げる役割を持っています。

ルートテーブル

ルーターの役割を果たします。

VPCの作成

AWS マネジメントコンソールのヘッダから「サービス」→「VPC」をクリックします。

VPC ダッシュボード」画面が表示されます。ヘッダに表示されているリージョン(地域)を"東京"に設定してください。
リージョンは物理的なデータセンター(AZ:Availability Zone)がある地域になります。
リージョンによって料金が変わる他、サーバーを展開する主な国に近い方が物理的通信距離も短くなりサーバー/クライアント間の通信速度を早くすることができます。
リージョンを選択したら、「VPC ウィザードの起動」をクリックします。 f:id:CwLab:20190504230251p:plain

「ステップ 1: VPC 設定の選択」画面から「1 個のパブリックサブネットを持つ VPC」を選択し、「選択」をクリックします。
※今回はプライベートサブネットを利用する予定はないため。
f:id:CwLab:20190505014321p:plain

「ステップ 2: 1 個のパブリックサブネットを持つ VPC」画面にて「IPv4 CIDR ブロック」、「IPv6 CIDR ブロック」、「VPC 名」、「パブリックサブネットの IPv4 CIDR」、「アベイラビリティーゾーン」、「サブネット名」、「DNS ホスト名を有効化」、「ハードウェアのテナンシー」を設定し、「VPC の作成」をクリックします。
f:id:CwLab:20190505014747p:plain

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

※CIDR(Classless Inter-Domain Routing) …IPアドレスのネットワーク部とホスト部を決められたブロック単位 で区切る方法。

VPCの作成が完了しました。
f:id:CwLab:20190505023620p:plain

VPCの作成と同時にサブネット、Internet Gateway、ルートテーブルも作成される。

EC2インスタンスの作成

AWS マネジメントコンソールのヘッダから「サービス」→「EC2」をクリックします。

f:id:CwLab:20190505031706p:plain

「手順 1: Amazon マシンイメージ (AMI)」画面からサーバーOSを選択します。
ここでは無料枠の「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択します。
f:id:CwLab:20190505153252p:plain

「手順 2: インスタンスタイプの選択」画面からインスタンスタイプを選択し、「次の手順: インスタンスの詳細の設定」をクリックします。
ここでは無料枠の「t2.micro」を選択します。
インスタンスタイプによって料金が変わりますので公式サイトで確認しておくとよいでしょう。
f:id:CwLab:20190505155518p:plain

「手順 3: インスタンスの詳細の設定」画面で作成するEC2インスタンスの設定を入力し、「次の手順: ストレージの追加」をクリックします。

f:id:CwLab:20190505161738p:plain

設定項目 入力値 補足
インスタンス 1
購入のオプション 設定しない
ネットワーク 作成したVPCを指定
サブネット 作成したサブネットを指定
自動割り当てパブリック IP 有効
配置グループ 設定しない ※プレイスメントグループとはEC2インスタンス間の通信を高速化するためのグループ
キャパシティーの予約 設定しない
IAM ロール 設定しない ※EC2からS3などにアクセスする際に利用
シャットダウン動作 停止
削除保護の有効化 設定しない
モニタリング 設定しない ※有効にすると無料枠から外れます
テナンシー 共有 ※専用にすると無料利用枠から外れます
Elastic Inference 設定しない GPUによる推論の加速ができるサービス
T2/T3 無制限 設定しない

ネットワークインターフェイス eth0のプライマリIPは"10.0.0.10"を設定します。
※サブネット:10.0.0.0/24

「手順 4: ストレージの追加」画面からEBS(Elastic Block Store)の設定を入力し、「次の手順: タグの追加」をクリックします。
無料枠は30GBまでのEBS 汎用 SSD までなので、30GiBを指定します。
f:id:CwLab:20190505174449p:plain

「手順 5: タグの追加」画面から作成するインスタンスに名前をつけます。
キーにNAME、値にWebServerを指定します。
f:id:CwLab:20190505175743p:plain

「手順 6: セキュリティグループの設定」画面で新しいセキュリティグループを作成します。
セキュリティグループの設定を入力し「確認と作成」をクリックします。
「セキュリティグループ名」に”SgWebServer”、「説明」に"Security Group for WebServer"を入力します。

f:id:CwLab:20190505182520p:plain

適用するルールは以下の通り。

タイプ TCP ポート範囲 ソース 説明
SSH TCP 22 マイ IP AdminIpOnly
HTTP TCP 80 カスタム 0.0.0.0/0 GeneralPublic

作成するEC2インスタンスの内容を「手順 7: インスタンス作成の確認」画面で確認し、「起動」ボタンをクリックします。

f:id:CwLab:20190505193952p:plain

SSHで安全にアクセスするためにキーペアを作成します。
SSHツールでEC2インスタンスにアクセスする際に、作成した秘密鍵を使用してSSH接続をします。
"新しいキーペアの作成"を選択し、キーペア名を"WebServerEc2Key"とします。
「キーペアのダウンロード」をクリックします。
キーペアのダウンロードが完了したら、「インスタンスのダウンロード」をクリックします。
ダウンロードが完了したら「インスタンスの作成」をクリックします。

f:id:CwLab:20190505191629p:plain

しばらくするとEC2インスタンスの作成が完了します。

f:id:CwLab:20190505194215p:plain

「EC2 ダッシュボード」→「インスタンス」をクリックすると作成したEC2インスタンスの詳細情報が確認できます。

f:id:CwLab:20190505204256p:plain

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

作成したEC2インスタンスSSHでログインします。
作成した際にダウンロードした秘密鍵を使用してSSHツールでログインします。
ここではWindows端末でRLogin{:target="blank"}を使用してログインしますので、ダウンロードした秘密鍵をpemをからppkに変換する作業が必要になります。
今回はWinSCP{:target="
blank"}に梱包されているPUTTYgenを利用して変換します。

秘密鍵の変換

WinSCPを起動し、「ツール」から「PuTTYgenの実行」をクリックします。
f:id:CwLab:20190506165957p:plain

「File」→「Load private key」をクリックします。
ダウンロードしたpemファイルを選択します。
f:id:CwLab:20190506172900p:plain

ロードに成功した旨のメッセージが表示されますので「OK」をクリックします。
f:id:CwLab:20190506180406p:plain

「Type of key to generate」に"RSA"を選択し「Save private key」をクリックします。
※このとき「Key passphrase」を入力すると、保存する鍵にパスワードをつけることができ、SSHログインの際に問われます。
f:id:CwLab:20190506173926p:plain

SSHログイン

RLoginを起動し、「新規」をクリックします。
f:id:CwLab:20190506180744p:plain

AWS EC2ダッシュボードの内容を基に接続情報を入力し、「OK」をクリックします。 f:id:CwLab:20190506181218p:plain

f:id:CwLab:20190506182359p:plain

設定項目 入力値 補足
エントリー WebServerEc2 任意
プロトコル ssh
ホスト名 EC2 パブリックDNSを指定 EC2 ダッシュボード参照
ログインユーザー ec2-user デフォルトユーザー
SSH認証鍵 変換したppkを指定
デフォルト文字セット UTF-8

登録した接続情報を選択し、「OK」をクリックします。
f:id:CwLab:20190506184222p:plain

ppkファイルに変換、保存した際に「Key passphrase」を指定した場合は「パスフレーズ」を入力し、「OK」をクリックします。
f:id:CwLab:20190506184435p:plain

接続に成功しました。
f:id:CwLab:20190507000958p:plain