【AWS】インフラ志望なのにAWS触ったことないってマジ?と言われないために勉強した【暇人の勉強ログ vol. 1】
はじめに
ニートを極めると勉強する習慣すら消え去っていくので、リハビリがてらAWSの再入門をしました。
参考資料
基本的に以下の書籍を読んだというブログです。
https://www.amazon.co.jp/dp/B084QQ7TCF
(はてなブログって商品画像のプレビューできなかったっけ…?)
AWS の基本
サーバ
- そもそもサーバは、適当な OS にどのようなソフトウェア (ミドルウェアとも)をインストールするかでその役割が決まる
リージョンとアベイラビリティゾーン
- 「リージョン」
- 「アベイラビリティゾーン」
- 各リージョンをさらに分割したもの。
- AZ は独立したファシリティを用い、耐障害性を高めている。
- アジアパシフィック(東京)リージョンは"ap-northeast-1a"、"ap-northeast-1c"、"ap-northeast-1d"の 3 つの AZ から構成されている
- 同リージョンの AZ 間は専用線で結ばれているだけでなく、データの複製や他 AZ のリソースの参照など可能である。
ネットワークと VPC
- Amazon Virtual Private Cloud
VPC 作成と同時に作成されるもの (予想)
Amazon DNS
VPC 内で利用可能な DNS サーバ
CIDR の 3 番目のアドレスを使用(10.0.0.0/16
の場合は 10.0.0.2
)
Router
VPC 内のルーティングを行う。VPC 内のサーバのデフォルトゲートウェイは全てこれ。
Default Route Table
デフォルトとなるルートテーブル。VPC 内は自動でルートを持ち、削除不可である。
インターネットゲートウェイ
VPC 内パブリックサブネットのデフォルトゲートウェイとして設置される。 ルートテーブルは、以下のようになる
dst | target |
---|---|
10.1.0.0/16 | local (VPC 内) |
0.0.0.0/0 | Internet Gateway |
IGW における「VPC にアタッチ」とは、以下の図でイメージされるように VPC 内の Router と IGW を接続することであると理解できる。
一方、「パブリックサブネットをインターネットに接続する」(=作成したサブネットをパブリックとして扱う)とは、ルートテーブルに {dst: 0.0.0.0/0, target: IGW}
を追加することである。
IAM
適当に作る
作業手順
VPC の作成
- コンソールから「VPC」を選択し、作成
- name: my-first-VPC
- CIDR: 10.0.0.0/16
- サブネットを作る
- ゲートウェイを作る
- パブリックサブネットとインターネットとを接続する
- ルートテーブルを作る
- VPC を作成した時点でルートテーブルが作成されている
- dst: 10.0.0.0/16, target: local
- これは、VPC 領域の CIDR ブロック宛のパケットは、全て local(=自身のネットワーク)に流される。それ以外は破棄。
- サブネットを作成すると、上記のルートテーブルがデフォルトとして設定されている
- デフォルトゲートウェイをインターネットに向けて設定
- VPC を作成した時点でルートテーブルが作成されている
EC2 の作成
t2.micro
で作成- VPC を設定
- ネットワークインターフェイスからプライマリ IP =
10.0.1.10
を設定 - ストレージを Elastic Block Store の 8GB を選択
- インスタンスを「停止」してもストレージは止まらないので注意。
- セキュリティグループを設定。とりあえず「マイ PC」に制限。
- キーペアを作成。多分秘密鍵のこと。
- 適当に保存。
SSH 注意事項
- 起動 / 停止のたびにインスタンスのグローバル IP は変わるので注意
- 固定したかったら Elastic IP を使う
- なんらかのタイミングで「マイ PC」の IP アドレスが変わるので注意
- プロバイダの気分次第
- 秘密鍵の権限は 400 にする
- ユーザ名は
ec2-user
であることに注意- IAM のユーザ名ではないっぽい
- 他 OS の場合、デフォルトユーザ名が異なるらしい
Web サーバソフトのインストール
略
DNS サーバの構成
- VPC コンソールから該当の VPC を選択し、アクション -> DNS ホスト名を編集 を選択。有効化にチェック。
- EC2 コンソールに「パブリック IPv4 DNS」が増える
- http://ec2-xx-xxx-xx-xxx.ap-northeast-1.compute.amazonaws.com のように割り振られる。
- 「プライベート IPv4 DNS」は VPC 内でのみ参照できる
- 独自ドメインを使用する場合は、 Route53 などを利用する。
EC2 内から nslookup
を実行すると次の通り。
[ec2-user@ip-10-0-1-10 ~]$ nslookup ec2-xx-xxx-xx-xxx.ap-northeast-1.compute.amazonaws.com Server: 10.0.0.2 Address: 10.0.0.2#53 Non-authoritative answer: Name: ec2-xx-xxx-xx-xxx.ap-northeast-1.compute.amazonaws.com Address: 10.0.1.10
これより、VPC 内で DNS サーバが 10.0.0.2
に、EC2 サーバには 10.0.1.10
が割り当てられていることが分かる。
プライベートサブネットの作成
インターネットからの接続を拒否したネットワークを作成する。 しかし安直に作るとインターネットに接続することも出来ないため、NAT を適切に構築する。
基本的には「EC2 の作成」と同様。10.0.2.10
を割り当てた。
プライベートサブネット内のサーバに SSH
踏み台サーバを経由する。
NAT の構成
NAT をファイアウォール(IP フィルタ)のように用いて、プライベートサブネット内のサーバからインターネットへの接続を可能にする。
具体的には、パブリックサブネットのデフォルトゲートウェイには IGW を、プライベートサブネットには NAT-GW を関連付ければよい。
編集中、メインルートテーブルを変更したところ戻せなくなった。
そもそも「ゲートウェイルートテーブルをメインルートテーブルとして設定することは出来ません」とあるのに何故変更できたのか…