インフラ入門として「Amazon Web Services基礎からのネットワーク&サーバー構築」を読んでみた
IT技術
はじめに
こんにちは!
この記事では、インフラの入門として、「Amazon Web Services基礎からのネットワーク&サーバー構築」という書籍を読んで勉強してみたので感想や学んだことを共有していきます。
なぜこの書籍を選んだのか
まず、私のレベル感としてはインフラ周りは全くの未経験ではないが、なんとなくで理解していたり、サブネットなどといった概念の具体的な理解や実際にインフラを1から構築するといった経験があまりないといった感じでした。
また、AWSに限らずとも他のクラウドサービスなどでも共通する、ネットワークの基礎部分の理解を深めたいという背景がありました。
本書では、ハンズオンで1からWordPressを使用したブログシステムの構築を行いながら、ネットワークで必要となる知識を身につけられるため、私の希望にあった書籍と思い選びました。
本書の概要
本書では、選んだ理由にも述べたようにWordPressを使用したシステムをインフラを1から実際に手を動かしながら構築していきます。そして「自分自身でネットワークやサーバーを構築できるようになる」ことをゴールとしています。
2024年5月現在で第4版(2023年5月)の出版となっており、コンソール画面もあまり大差がないので手を動かすところで詰まるところはあまりないかと思います。
それでは、本書の構成を簡潔にご紹介します。CHAPTER1では、開発者がネットワークやサーバーの構築を行うメリットや必要な知識、本書で扱うシステムの全体構成について確認します。続くCHAPTER2からは、実際に手を動かしながらインフラの構築を進めていくことにより、理論と実践の両面から学びを深めていきます。構築の場面等で私のようなインフラ初学者がなぜ?と思う点や根本的な仕組みにおいて丁寧に解説がされています。
以下は本書の目次です。
目次
- CHAPTER 1 システム構築をインフラから始めるには
- CHAPTER 2 ネットワークを構築する
- CHAPTER 3 サーバーを構築する
- CHAPTER 4 Webサーバーソフトをインストールする
- CHAPTER 5 HTTPの動きを確認する
- CHAPTER 6 プライベートサブネットを構築する
- CHAPTER 7 NATを構築する
- CHAPTER 8 DBを用いたブログシステムの構築
- CHAPTER 9 TCP/IPによる通信の仕組みを理解する
対象読者
本書はタイトルに「基礎からの」とあるようにインフラ、ネットワークの初学者向けの書籍のため、インフラに精通している方や、AWSのコア部分の知識を深めたい!といった方には適していないと思います。
エンジニアやっているけどインフラ弱いなと感じている方や、実際に手を動かしながらインフラ、ネットワークの基礎知識を身に着けたいといったかたにはとても良い書籍だと思いました。
IT完全未経験や全くもってインフラわからない!という方にもおすすめできる書籍ではありますが、不安な方は3 Minutes Networkingというサイトが1トピック3分程度で読めて小ネタを挟みつつ学べるので先に見ておくことをおすすめします。このサイトである程度勉強した後に本書を読むとより理解が深まると思います。
主要トピックと学び
ここでは、主要なトピックと私がためになったと感じた箇所を紹介していきます。
サブネットの考え方
ネットワークの設計においては、割り当てられたCIDRブロックをそのまま使用するのではなく、さらに細分化したサブネット(Subnet)に分けて運用することが一般的です。サブネットに分ける主な理由は以下の通りです。
- 物理的な隔離: 例えば、社内LANを構築する際に「1階と2階を別のサブネットに分ける」といった具合に、物理的なエリアごとにサブネットを分けることで、障害が発生した際にも被害を局所化できます。
- セキュリティ上の理由: サブネットを分けることで、各サブネットに異なるネットワークポリシーを設定することが可能です。例えば、経理部のネットワークを分離し、他の部署からのアクセスを制限することが一例です。また、サーバー群を別サブネットに置き、その通信を限定することでセキュリティを高めたり、インターネットに接続するサーバーを社内LANから隔離することも可能です。
本書では、DBサーバーをインターネットに接続できないサブネット(プライベートサブネット)に配置してセキュリティを高めます。
NATについて
上記でサブネットの考え方やプライベートサブネットの利点について理解できましたが、インターネットに接続ができないサブネットではどのようにデータベースソフトなどのソフトウェアをインストールするのかという疑問が生まれます。
その問題を解決するのがNAT(Network Address Translation)です。
NATは、内部ネットワーク(プライベートサブネット)と外部ネットワーク(インターネット)の間でIPアドレスを変換する役割を果たします。具体的には、NATデバイスは2つのネットワークインタフェースを持ち、一方にパブリックIPアドレスを設定してインターネットに接続し、もう一方にプライベートIPアドレスを設定してプライベートサブネットに接続します。
プライベートサブネット内のデバイスがインターネットにアクセスする際、NATデバイスは送信元のプライベートIPアドレスを自分のパブリックIPアドレスに変換して外部に送信します。これにより、外部からはNATデバイスが通信を行っているように見えます。応答パケットが戻ってくると、NATデバイスは宛先アドレスを元のプライベートIPアドレスに変換して内部のデバイスに転送します。
このプロセスにより、プライベートサブネット内からでも外部と通信できるようになり、インターネット接続が可能になります。一方で、外部からプライベートサブネット内は直接見えないため、セキュリティが保たれます。
まとめ
本書を通じて、ネットワークの基本的な理解とともに、サーバー構築の基礎を学ぶことができました。インフラに関する知識を身につけるための入門書として非常におすすめできる内容でした。
また、ネットワークを学ぶうえで重要なTCP/IPについても本書で解説されていますが、さらに詳細に学ぶために「マスタリングTCP/IP」も次に読んでみようと思います。
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ