Networking

オンラインセミナー「DockerやAWSの前に知っておくべきネットワークの超基礎」を開催しました【アンケートでいただいた質問への回答まとめ】

2022 年 4 月 28 日に、「Docker や AWS の前に知っておくべきネットワークの超基礎」というタイトルでオンラインセミナーを開催しました!

280 名以上の方にご参加いただき大盛況でしたので、講座の概要と、アンケートでいただいたご質問への回答を記事にまとめます!

https://studyco.connpass.com/event/244880/

講座概要

近年、開発環境で Docker を使用したり、AWS などのクラウド上にシステムを構築することが多くなり、アプリケーションエンジニアが環境構築まで関わる例が増えています。

それに伴い、プログラミングを学んだ方がステップアップとして Docker や AWS を学びたいという声もよく耳にします。

そういった方が Docker や AWS などを勉強しようとして突き当たる壁の一つが、ネットワークの基礎知識です。

例えば、

  • Docker や AWS を学ぼうとしたものの、ネットワーク関係の用語が理解できない
  • 実際に Docker や AWS で環境構築しようとしたものの、なぜか通信がうまくいかない

といった状況はよくあるのではないでしょうか。

エラーが発生した際に Docker や AWS 特有の現象だと思って調べていることが、実はネットワークの知識不足が原因だということも少なくありません。

この講座では、そんな Docker や AWS などを学ぶ前に最低限必要になる、ネットワークの基礎知識を解説しました。

資料について

今回はホワイトボードで講座を進めさせていただきましたので、資料はありません。

アーカイブ動画について

アーカイブ動画については、2022 年 5 月 31 日まで限定で、参加者・希望者に限定公開しています。

アーカイブ動画の視聴をご希望の方は、お問い合わせフォーム からお問い合わせいただくか、発表者の Twitter に DM でご連絡ください。

アンケートでいただいたご質問への回答

ここから、アンケートでいただいたご質問への回答をまとめさせていただきます。

※ ご質問の意図を把握しきれなかったものについては省略させていただきました。ご了承ください

プログラミングのコードを見ているところは何をやっているかよく分からなかった・コードの中身をもう少し詳しく説明頂きたかった

今回はサンプルコードの説明は非常に簡易的でしたので、全体を理解するのは難しかったと思います。

今回の範囲では、アプリケーションは、「ライブラリとして用意されている connect、send、recv などの関数を使い、IP・ポートを指定してメッセージを送る」 という点をご理解いただければ大丈夫です。

より具体的なコードについては、「<プログラミング言語名> socket」などで Web 検索していただくか、書籍『ネットワークはなぜつながるのか』を参考にしていただくのがおすすめです。

TCP サーバと HTTP サーバの違い

前提として、現在よく使われているネットワークのプロトコルは TCP / IP モデルという階層構造になっており、TCP の上で HTTP や SMTP、FTP などの各種プロトコルが動作しています

単に TCP サーバと言った場合、その上では様々なプロトコルを動かすことが可能なので、TCP サーバ上に HTTP サーバを実装したりすることになります。

実際に HTTP を使いたい場合は、HTTP に特化した HTTP サーバ (例えば Apache HTTP Server や nginx) を使うのが一般的です。

プロキシ、VPN の仕組み

ネットワークにおけるプロキシは、通信を仲介する「代理人 (英語でプロキシ)」になります。

プロキシの動作の概要は、「通信を受け取って、そのまま別の相手に送る」というものです。

「通信を受け取って、そのまま別の相手に送る」というプログラムを書いてみると理解が進むと思います。

VPN には様々な種類があるので、まずは「VPN 種類」などで Web 検索していただくととっかかりになります。

VPN の種類は CCNA の出題範囲だったと思うので、CCNA の参考書などで勉強していただくのも良いかもしれません。

SRE についてのコミュニティがあれば入りたいです。有識者が周囲にいない場合が多く、私以外でも需要があるかと思います

私が運営に関わっているコミュニティではなく大変恐縮ですが、5 月 14 日に SRE NEXT 2022 ONLINE というカンファレンスがあります。

おそらくこちらが SRE について日本最大のイベントです。

他にも SRE と関係しそうな国内カンファレンスとしては、DevOpsDays Tokyo や、CloudNative Days Tokyo が有名だと思います。

このようなカンファレンスに参加したり、これらのカンファレンスの運営コミュニティが connpass で開催している勉強会に参加したり、コミュニティの Slack に入ったりすることで、詳しい方との繋がるきっかけになると思います。

実際に手を動かしている時間と勉強されている時間の差は何対何くらいでしょうか

あまり割合で考えたことはないですが、個人的に読書が好きなので、読書が多めではあります。

個人的な意見ですが、その分野の習熟度によって、「手を動かして勉強した方が良いタイミング」と、「読書などで知識をつけた方が良いタイミング」があると思います。

ネットワークであれば、例えば、

くらいすると、理解が深まっていくと思います。

説明がすごく分かりやすかったです。どのような事に気を付けてお話ししていますか?また、ポイントがあれば知りたいです

プレゼンテーションなどでもよく言われることかもしれませんが、話の流れが繋がるように、事前に何度か話してみていることが大きいと思います。

講座中にいただいたご質問への回答については、何か前提知識のずれがあることも多いので、「この疑問を感じた理由は何か?」を考えたりしています。

また、頻繁に (昨年だけで 50 回以上) セミナーをしているので、回数的に発表に慣れていることも大きいと思います。

おわりに

以上、アンケートでいただいたご質問への回答を中心に、記事にまとめさせていただきました。

回答内容へのご指摘や追加のご質問については、お問い合わせフォーム からお問い合わせいただくか、発表者の Twitter にご連絡お願いします。

また、StudyCo では、法人様・コミュニティ様向けの出張勉強会や、技術サポートなどもお受けしています。 お問い合わせフォーム から、お気軽にご相談ください。

次回予告

5 月 12 日 (木) 19:30 から、「チューリングマシンを学ぼう ~コンピュータサイエンス入門~」が開催予定です。

https://studyco.connpass.com/event/245540/

また、5 月 26 日 (木) 19:30 から、「統計学と機械学習の違いと接点とは?〜統計的機械学習とは何か?〜」が開催予定です。

https://studyco.connpass.com/event/247403/

どちらもとてもおすすめの内容なので、ご興味・お時間ある方は以下の connpass ページからお申し込みください!