1. サーバーサイドがわからない

普段インフラ周りを触ることがないので個人開発してるとかなり辛くなる。。。 調べてその場で理解しても普段アウトプットの場所がないため全然定着しなくて困ってるんで 備忘録的に随時更新していこうと思う。

2. DNS とは?

  • D 「Domain」N「Name」S「Service」
  • インターネット上でドメインを管理するためのシステム
  • ドメインはここのこと↓
  • 「https://example.com /
  • ネットからアクセスできるサーバーはIPアドレスを持っている
  • 毎回IPアドレスを打ってアクセスするのは間違える可能性も高く仮にサーバーコンピューターを入れ替えた際にもユーザーが今までアクセスしていたIPが使えなくなったり不便なことが多い
  • もっと簡単にアクセスできないか?と考えられた仕組みが「DNS」です
  • 「人が覚えやすい名前」と「IPアドレス」を関連付けて簡単にアクセスできるようにしたもの
  • 「人が覚えやすい名前」が「ドメイン名」のことである
  • 厳密には「ホスト名」+「ドメイン名」で「FQDN」という呼び方になる
  • ネットワーク構成が変わってIPアドレスが変わってもドメインに紐づけられているIPアドレスを書き換えるだけでおk
  • 各ドメイン配下の情報はそれぞれのドメインで責任を持って管理してもらう
  • ユーザーがアクセスする場合、ドメイン名をその管轄ドメインに問い合わせることでIPアドレスを教えてもらう方法がかんがえられた
  • 上記を行うのがDNSサーバー
  • DNSサーバーは各ドメインに存在し、自分のドメイン配下にあるサーバーのIPアドレスを管理する
  • これをゾーン情報という
  • DNSの問い合わせを受けるとそのIPアドレスを教える
  • この方法によりユーザーは全サーバーの情報を持っておかずに済むようになったがそれでも、各ドメインの問い合わせ先DNSサーバーの所在は知っている必要がある
  • サーバーコンピューターほどじゃないにせよドメイン自体も世界中に数えきれないほどあるのでこれも膨大な情報である
  • これを解決するためにDNSは階層構造となっており、一番上に「ルート」と呼ばれるサーバーがあり、その下にはドメインを逆にした順番で管理DNSが存在しており
    それぞれの配下のサーバー情報を管理している
  • 該当のDNSサーバーの所在がわからなくてもルートから順番に問い合わせることでたどり着くことができる
  • ユーザーはルートサーバーさえ知っていれば世界中のどんなドメイン配下のサーバーでもIPアドレスがわかるようになった