会社の勉強会でおよそ2ヶ月かけてAWS×Terraformについて学んでいる真っ只中です。
そもそもAWSの理解度が低すぎるので、AWSの基礎について書籍を用いて学ぶことにしました!
内容を備忘録として、アウトプットしていきます!
ボリュームが大きいので、何回かに分けて投稿予定で、今回はネットワークの構築にフォーカスした内容です。
ネットワーク構築編
IPアドレスのあれこれ
- パブリックIP
勝手にIPアドレス割り振ることができない公開用のIPアドレス - プライベートIP
クラスA〜Cの範囲で自由にIPアドレスを割り振ってOKな範囲。
個人開発の場合、大体がクラスCで事足ります。
192.168.0.0 ~ 192.168.255.255
第2オクテッドまでの192.168
がネットワーク部
、第3オクテッド以降がホスト部
。
↑は記述が長いため、CIDR表記かサブネットマスク記法で記述するのが 一般的。
- CIDR表記
192.168.1.0 ~ 192.168.1.255
をCIDR表記で記述
192.168.1.0/24
/24
はプレフィックスと呼ばれ、ネットワーク部のビット長で記述しています。簡単ですね。
- サブネットマスク表記
192.168.1.0 ~ 192.168.1.255
をサブネットマスク表記で記述
102.168.1.0/255.255.255.0
ネットワーク部を全て1
として考える。これも簡単。
VPCを作成し、サブネットを作成
VPCのCIDRブロックを作成した上で、サブネットでパブリックとプライベートを分けるという手法がよくある。
VPCとしては多めにCIDRブロックを取得し、実際に使うのは小さく区分けしたCIDRブロックというイメージ。
これを行うメリットは
- パブリックサブネットにwebサーバー、プライベートサブネットにDB設置という役割分担を行える。
- 社内のローカル環境であれば、部署ごとにサブネットを分けることで管理しやすい
- サブネットを分散させた方がセキュリティ面で安全
#CIDR
10.0.0.0/16
#パブリックサブネット
10.0.0.1/24
#プライベートサブネット
10.0.0.2/24
インターネットゲートウェイへの接続
インターネットをVPCに接続します。
VPCにインターネット回線を引き込むイメージ。
ルートテーブルの設定
TCP/IPプロトコルでデータ送受信を行うためのルールを簡単に↓
- データの送受信には「パケット」を用いる
- パケットには宛先IPアドレス(ディスティネーション)をヘッダー情報に含んでいる
- ルータがヘッダー情報を元にデータをバケツリレー形式で流す
- バケツリレー形式データを流すためにはルートテーブルの設定が必須
- ルートテーブルの設定があれば、ターゲット(流すべきネットワーク先)を判断できる
AWSはこの辺の設定を自動でやってくれますが、TCP/IPプロトコルの原理原則をわかっていた方が障害にも強くなります。
今回はここまでです!
次回はサーバー構築編です!
間違っている場合、コメントで教えていただけると幸いです!