$30 off During Our Annual Pro Sale. View Details »

インターネット基礎講座

norinux
January 14, 2020

 インターネット基礎講座

インターネットの基礎知識の技術の概要
・ドメイン、DNS
・IPアドレス
・サーバー、クライアント
・HTT、アプリケーション、DB
・フロントエンド、バックエンド
・プログラミング言語、フレームワーク
・スマートフォンアプリ
・クラウド(AWS、BaaS)

norinux

January 14, 2020
Tweet

More Decks by norinux

Other Decks in Technology

Transcript

  1. @norinux
    インターネット基礎講座

    View Slide

  2. @norinux
    HELLO!
    技術本部長 / スタートアップスタジオ責任者
    佐々木喜徳
    仕事:
    起業家の発掘、投資
    スタートアップ向けの開発組織の運営
    ガイアックスの技術戦略の策定
    2
    yoshinori.sasaki
    2

    View Slide

  3. @norinux
    私とインターネットの出会い
    3

    View Slide

  4. @norinux
    本講座で得られること
    今日はこれを頭の片隅に置いて参加ください
    4

    View Slide

  5. @norinux
    Photo by mrjn Photography on Unsplash
    5
    水ってなんですか?

    View Slide

  6. @norinux
    水ってなんですか?
    ユーザーの視点 ビジネスの視点 技術者の視点
    炊事に使う
    洗濯に使う。
    シャワーや風呂に使う
    飲む。水分補給
    お茶やコーヒーをいれる

    販売網、市場規模
    供給、保管方法
    運搬方法
    水質、消費期限
    入手方法、水源
    再利用

    浄水技術
    水道管の材質や設置
    貯水タンクの建設
    蛇口の仕組み
    掘削、組み上げ技術

     もし、Gaiax が、「人と水をつなげる」と
     水に関するビジネスに取り組んでいたとして、
     何をどこまで知っている必要がありますか?
    6

    View Slide

  7. @norinux
    Photo by John Schnobrich on Unsplash
    インターネット
    ってなんですか?

    View Slide

  8. @norinux
    8 インターネットってなんですか?
    ユーザーの視点 ビジネスの視点 技術者の視点
    メールができる
    SNSができる
    ECで買い物ができる
    電話ができる
    動画、映画が見れる




    情報が公開する仕組み
    拡散される仕組み
    データを保存
    効率化、自動化
    課金の仕組み


    通信インフラ技術
    アプリ開発技術
    データベース
    開発プロセス
    運用、障害対応技術


     ソーシャルメディア、シェアエコ事業に関わり
     WEBを通して仕事をする必要があるあなたは
     何をどこまで知っている必要がありますか?

    View Slide

  9. @norinux
    インターネットの仕組みや用語を知っている状態
    WEBを通して、ビジネス(仕事)をする上で
    9

    View Slide

  10. @norinux
    インターネットの基礎知識
    身近なサービスを例に理解してみよう
    10 @norinux

    View Slide

  11. @norinux
    ドメイン、DNS
    IPアドレス
    サーバー、クライアント
    HTT、アプリケーション、DB
    フロントエンド、バックエンド
    プログラミング言語、フレームワーク
    スマートフォンアプリ
    クラウド(AWS、BaaS)
    Twitter みたいなサービスを作りたい!
    どんな技術が必要なんだろう?
    11

    View Slide

  12. @norinux
    12
    ドメイン

    View Slide

  13. @norinux
    DNSって聞いたことある?
    Domain
    Name
    System
    13
    DNS

    View Slide

  14. @norinux
    ドメイン
    14
    DNS
    mobile.twitter.com
    トップレベルドメイン
    ドメインにおける苗字
    TLDによって用途がある程度
    決まっている。
    ドメイン名
    登録制で、世界中で重複しないよう
    になっている。
    サブドメイン
    役割を分割するために、自由に追
    加できる名称

    View Slide

  15. @norinux
    DNSの役割
    15
    DNS
    リクエスト
    DNSサーバー
    www.gaiax.com は、
    52.219.0.160 だよぅ。
    www.gaiax.co.jp
    52.219.0.160
    ルート
    DNS
    .com
    DNS
    gaiax.com
    DNS

    View Slide

  16. @norinux
    ドメインとは?
     
    16
    DNS
    どこから、情報を取得するのかを指定するため
    の世界で一つしかない名前。
    そのドメインに紐づいた、IPアドレスという情報
    の住所を示した、「数字」を得ることができる。
    ドメイン: www.gaiax.co.jp
     ↓
    IPアドレス:52.219.0.160

    View Slide

  17. @norinux
    17
    IPアドレス

    View Slide

  18. @norinux
     あなたのIPアドレスはなんですか?
    18
    IP
    addr
    ess
    Windows
    ネットワーク接続を開いて繋
    がっているデバイスの状態を
    見る
    OSX
    システム環境設定を開いて
    ネットワークを見る

    View Slide

  19. @norinux
    19
    IP
    addr
    ess
     あなたのインターネット上の接続元
     IPアドレスはなんですか?
    https://goo.gl/7ZzA2b

    View Slide

  20. @norinux
    20
    IP
    addr
    ess
     IPアドレスの謎を解明
    PCのIPアドレス
    10.1.7.176
    www.gaiax.co.jp
    52.219.0.160
    GRIDのIPアドレス
    124.35.198.10
    ローカルエリア
    ネットワーク
    グローバル
    ネットワーク
    10.0.0.0~10.255.255.255
    172.16.0.0~172.32.255.255
    192.168.0.0~192.168.255.255
    GRIDのIPアドレス
    10.1.0.1

    View Slide

  21. @norinux
    21
    IP
    addr
    ess
     VPNとは?
    インターネット
    トンネル
    パソコンのローカルネットワークと、インターネットの向こう側にありローカル
    ネットワーク通しを暗号化したトンネルを利用して、直接つないでしまう仕組
    み。
    離れた拠点でのオフィスやデータセンターを接続したり、リモートワークで自
    宅やカフェから業務ネットワークに接続するのに利用。

    View Slide

  22. @norinux
    IPアドレスとは?
     
    22
    情報をやりとりするための住所を指定するため
    の「数字」。
    IPアドレスに対して、リクエストを送信すること
    で、それに従って情報をレスポンスしてもらうこ
    とができる。
    IP
    addr
    ess

    View Slide

  23. @norinux
    23
    サーバー

    View Slide

  24. @norinux
    サーバーとクライアント
     
    24
    Server
    クライアント
    サービスを利用するためのコンピュータで
    あり、複数台接続する。
    サーバー
    サービスを提供するためのコンピュータで
    あり、たくさんの役割がある。一般的に役
    割ごとに複数台が接続しあって運用されて
    いる。
    サーバに接続するためにドメインがあり、
    DNSを利用してIPアドレスを知り、
    IPアドレスに対して接続している。

    View Slide

  25. @norinux
    サーバーにはどのような
    役割(ミドルウェア)があるのか
    25
    Server
    HTTPサーバー
    一般的にWEBサーバーと呼ばれている。クライアントからの
    リクエストを受け付けており、リクエストの内容に応じて処理
    を振り分けて適切なレスポンスを返す。
    例)Apache , Nginx ...
    アプリケーションサーバー
    サービスのビジネスロジックが実装されたプログラムを実行
    する。リクエストからデータを保存 /編集したり、データを取り
    出し処理を加えてクライアントに届ける。
    例)Ruby , PHP , Python...
    DBサーバー
    データの出し入れや蓄積をしており、大量のデータ、大量の
    書き込み、大量の複雑な取り出しを行うための仕組みを提供
    している。
    例) MySQL , Postgres , Oracle...

    View Slide

  26. @norinux
    サーバーとクライアントの実際
    26
    Server
    複数の
    HTTP
    サーバー
    複数の
    アプリ
    サーバー
    複数の
    DB
    サーバー
    各サーバーにも、ド
    メインおよびIPアドレ
    スを持っており、お
    互いに通信し合って
    役割分担を行ってい
    る。

    View Slide

  27. @norinux
    サーバーとは?
     
    27
    クライアントに、サービスを提供する仕組みの総
    称。実際には、様々なミドルウェアを役割をに
    なっているサーバー群が複数繋がりあって、一
    つのサービスを提供している。
    IP
    addr
    ess

    View Slide

  28. @norinux
    28
    プログラミング言語
    フレームワーク
    フロントエンド
    バックエンド

    View Slide

  29. @norinux
    フロントエンド or バックエンド
    29
    フロントエ
    ンド
    バック
    エンド
    ひとつのサービスを提供する上で、サーバーが役割によって分かれているように、
    プログラミング言語も役割によって分かれている。
     HTML
     CSS
     Javascript
     Ruby
     PHP
     Python
     Perl
     SQL

    View Slide

  30. @norinux
    バックエンド
    30
    フロントエ
    ンド
    バック
    エンド
    サーバー側で処理がされて、フロントエンドのインターフェースに必要なデータや実
    行して欲しい処理を渡す役割
     インタプリタ言語(Ruby,PHP,Python,Perl….)
    軽量プログラミング言語(LL)とも呼ばれており、比較的学習難易度が低く簡単で
    記述で処理を記述できるので、WEBプログラミングの主流となっている。
     コンパイラ言語(C, Java, Go,Scala .....)
    事前にプログラムをコンパイル(機械語に翻訳)しておかなければ実行することの
    できない言語。習得する難易度が高い分、記述ミスの発見や、プログラムの処理
    がインタプリタ言語に比べて高速など利点もある。
     SQL
    データベースにデータを追加したり取り出したり、編集、削除するための命令を書く
    ための形式記述。最近だと、フレームワークで必要なSQL文を自動で実行してくれ
    るために、直接記述する機会は少なくなってきている。

    View Slide

  31. @norinux
    フロントエンド
    31
    フロントエ
    ンド
    バック
    エンド
    クライアントコンピューターのブラウザで、処理が実行されるプログラム
     HTML
    HTML (HyperText Markup Language) はウェブのもっとも基本的な構成要素で、
    基本レイアウトに従ってウェブページのコンテンツを記述し定義するものです。厳
    密にはプログラミング言語ではなくて、マークアップ言語。
     CSS
    ウェブページのスタイルを指定するための言語です。 文書のスタイルを指定する
    技術全般をスタイルシートといいます。 HTMLやXHTMLなどで作成されるウェブ
    ページにスタイルを適用する場合に利用されている。
     Javascript
    ユーザー側のWebブラウザと、Webサイトまたはウェブサービスの相互間のやりと
    りを、円滑にするために使われており、実質的に、ブラウザで体験できることのす
    べてはJavaScriptの処理によるもの

    View Slide

  32. @norinux
    フレームワーク
    32
    フロントエ
    ンド
    バック
    エンド
    プログラミング言語ごとに特定用途向けに作られたプログラミングを楽にするため
    のツール。

    View Slide

  33. @norinux
    プログラミング言語
    フレームワーク
    33
    プログラミン
    グ言語
    インプットされたデータを元に、サービスとして
    価値を提供するための処理を記述するための
    形式記述。
    よく利用される記述を簡略化したり、複数人で
    開発するためにルールを定めたのがフレーム
    ワーク。

    View Slide

  34. @norinux
    フロントエンド or バックエンド
    34
    フロントエ
    ンド
    バック
    エンド
    サービスを提供する上で必要なプログラムをど
    の位置で実行(解釈)するかの違い。
    プログラミング言語やそのフレームワークによっ
    て変わる。

    View Slide

  35. @norinux
    スマートフォン
    アプリケーション
    35

    View Slide

  36. @norinux
    スマートフォンアプリ 
    36
    スマート
    フォン
    スマートフォン
    インターネットでいうクライアント、開発でい
    くフロントエンドが、スマートフォン独自の仕
    組みで実現する。
    サーバー
    パソコン(ブラウザ)同様に、スマートフォン
    アプリケーションの場合でも、サーバー
    (バックエンド)は必要なケースが多い。

    View Slide

  37. @norinux
    スマート
    フォン
    37 端末の種類のよる違い
    開発言語:
     Swift , ObjectiveC
    開発環境:
     Xcode
    公開方法:
     App Store への申請と審査
    開発言語:
     Kotlin , Java
    開発環境:
     Android Studio
    公開方法:
     GooglePlay への申請と審査

    View Slide

  38. @norinux
    スマート
    フォン
    38 共通の言語で開発する手法
    Googleが開発した、Dart言語
    を利用したモバイルアプリケー
    ション向けのフレームワーク。
    iPhone/Androideのモバイルア
    プリのデザインおよび機能を共
    通の言語で実装できる。
    C#やUnityScriptを用いて、マ
    ルチデバイス向けのゲーム開
    発をできるゲームエンジン。
    iPhone/Androidだけじゃなく、
    ブラウザやパソコン、ゲーム機
    など幅広く対応している。
    Gaiax の開発部では
    こちらを採用!

    View Slide

  39. @norinux
    スマート
    フォン
    39 専用のアプリを開発せずに
    モバイル対応をする手法
    PWAとは、「Progressive Web Apps」の略称で、モバイル向け Webサイトをス
    マートフォン向けアプリのように使えるようにする仕組み。
    パソコン向けのWEBサービスに、レスポンシブデザインや、 Push通知、キャッ
    シュやオフラインでの利用など、実装することで利用できる。
    要は、フロントエンドを PWA対応のフレームワークを使うことにより、普段の
    WEB開発の技術の延長で、スマートフォンで利用しやすいサービスを作ること
    ができる
    ※ インストール(アプリの設置)や、 iPhoneでの利用制限などあり、
     完全にスマートフォンアプリの互換には至らない、

    View Slide

  40. @norinux
    クラウド
    40

    View Slide

  41. @norinux
    そもそもクラウドではない世界
    41
    クラウド

    View Slide

  42. @norinux
    クラウドの種類
    42
    クラウド
    SaaS
    クラウドで提供されるソフトウェアのことで、ユーザー側にソフトウェアをインストールする
    のではなく、ベンダー(プロバイダ)側でソフトウェアを稼働させ、ユーザーはネットワーク
    経由でソフトウェアの機能性を活用する。 例)Gmail , 働くDB、楽々精算
    PaaS
    アプリケーションソフトが稼動するためのハードウェアやOSなどのプラットフォーム一式
    を、インターネット上のサービスとして提供する形態のことで、プログラムを設置すればす
    ぐにサービスを公開することができる。 例)Heroku, Google App Engine
    BaaS
    BaaS(Backend as a service)とは、アプリのバックエンド機能を提供する形態の事で、
    主にスマートフォンアプリのサーバー側に必要な裏側を実装する事なくまとめて利用する
    ことができる。
    例)FIrebase
    IaaS
    サーバー機材やネットワークなどのインフラを、インターネット上のサービスとして提供す
    る形態のことで、データセンターや回線など自社でインフラ資産を持つことなく、時間単位
    でリソースを利用できる。 例)さくらのクラウド、AWS EC2

    View Slide

  43. @norinux
    クラウドの事業者
    43
    クラウド

    View Slide

  44. @norinux
    クラウドとは?
    44
    クラウド
    サーバーや、プログラムの実行環境、データ
    ベース、ソフトウェアなどを自分で用意せずにイ
    ンターネットの上でリソースを提供するサービ
    ス。
    利用方法や、利用する規模によっては、クラウ
    ドじゃなく自前で構築した方がコストメリットが大
    きくなることがある。

    View Slide

  45. @norinux
    Twitter みたいなサービスを作りたい!
    どんな技術が必要なんだろう?
    45

    View Slide

  46. @norinux
    Twitter みたいなサービスを作りたい!
    どんな技術が必要なんだろう?
    フロントエンド技術 スマートフォン
    アプリケーション技術
    サーバーサイド技術
    クラウド
    ドメイン
    IP
    46

    View Slide

  47. @norinux
    インターネットの未来
    47 @norinux

    View Slide

  48. @norinux
    インターネットの始まりは、
    みなさんご存知ですか?
    48
    歴史

    View Slide

  49. @norinux
    歴史
    1969年 アメリカ
    ARPANETの基本的な「仕様」
    1. 負荷共有
    2. メッセージサービス
    3. 情報の共有
    4. プログラム共有
    5. 遠隔ログイン
    4つの大学を相互接続させる実証実験から始まった。
    「大規模で強力な研究用
    コンピュータを遠隔で利用
    したい」
    引用:https://ja.wikipedia.org/wiki/ARPANET
    49

    View Slide

  50. @norinux
    インターネットエンジニアリングは
    どのような未来が待ち受けているのか。
    50
    近い将来

    View Slide

  51. @norinux
    IPv6
    現在のIPv4の個数は、42億9496万7296個しかな
    く、世界の人口を考えると明らかに不足しており、
    すでにIPアドレス枯渇問題が発生している。
    IPv6だと、43億×43億×43億×43億
    1人当たり
    5.6穣(じょう)
    個(5600兆の100兆倍)
    51

    View Slide

  52. @norinux
    52
    5G
    2020年以降は、5Gが登場し通信速度が100倍
    になり、遅延が1/10になることで、通信を利用し
    たサービスが増え生活が変わる。

    View Slide

  53. @norinux
    ハイプ
    サイクル
    インターネットに限らず、今どのような技術が期
    待されているかを知るには、ガードナーの「先進
    テクノロジのハイプ・サイクル」が参考なる。
    53

    View Slide

  54. @norinux
    最後に
    ひとことだけ物申したい
    54 @norinux

    View Slide

  55. @norinux
    55
    ITベンチャーで働いてるけど
    インターネットこと
    よくわからないんですって
    言っちゃうのカッコ悪いよね

    View Slide

  56. @norinux
    56
    インターネット技術の
    活用方法を知っている
    それは、この業界で
    ビジネスマナーと
    同じくらい必須なスキル

    View Slide

  57. @norinux
    ご清聴いただきありがとうございました

    View Slide