カテゴリー
2023年 Active Directory Azure Microsoft MS Azure Administrator MS Azure Fundamentals クラウド コンピューター 認定資格

MS Azure を学ぶ(2)Azure Active Directory とオンプレ Active Directory の違い

Azure Administrator (AZ-104)に合格しましたので、覚えた内容を忘れないように、これから少しずつアウトプットしていきたいと思います。

私が勉強に使った教材は、こちらでブログで紹介しています。


にほんブログ村

Active Directory(AD) とは

  • AD とは一般的に、Active Directory Domain Service (AD DS) サーバーを指す
  • AD DS とは、認証認可を行うサーバー
  • ディレクトリーサービスを提供

認証:

  • 「本人確認」のプロセス。
  • コンピューターの世界では、ユーザー名とパスワードを使って本人確認を行う。認証を通じて、「なりすまし」を防止する。

認可:

  • 「その IDが、サービスやアプリケーションにアクセス可能であるか」を確認するプロセス。
  • 認証された IDで、利用できるサービスやアプリケーションの範囲が決定する。

以下、分かりやすく表記するために、オンプレ Active Directoryを AD DS、Azure Active Directory を Azure AD とします。

AD DS と Azure AD の違い

1. 使用範囲の違い

  • AD DS(オンプレ Active Directory)は、オンプレミス向けの認証と認可を提供
  • Azure AD は、クラウド向けの認証と認可を提供

まず、AD DS とAzure Active Directory は、使用の範囲が異なります。

AD DS は、企業の中で、その企業のリソースを管理したり、認証と認可のために使われます。一方で、Azure AD は、クラウド向けの認証と認可とリソース管理のために使われます。

オンプレミス Active Directory
  • 自社データーセンターに AD DS を設置(オンプレミス)
  • 大規模拠点にも AD DS を設置するケースもあり
  • 自社のサーバー(アプリ)へのアクセス制御
Azure Active Directory
  • Azure の自社のテナント上で AD DS を使用(クラウド)
  • Azure の自社のテナント上のサーバー(アプリ)へのアクセス制御
  • Microsoft 365 などの SaaS アプリへのアクセス制御

2. 使用されるプロトコルの違い

  • AD DS は、社内ネットワークで使用され、Kerberos や NTLM を使用
  • Azure AD は、インターネット環境で使用され、SAML、WS–Federation、OpenID Connect、OAuth などのプロトコルを使用

AD DS とAzure AD では、認証と認可でしようされるプロトコルが異なります。

AD DS は、組織内で使われることを前提としており、古くはNTLM、今の主流ですと、Kerberos を使って、認証と認可を行います。

一方で、Aure AD はクラウドを前提としており、SAML、WS-Federation、OpenID Connect、OAuth などといったプロトコルを使って、認証と認可を行います。

オンプレミス Active Directory
  • オンプレ AD DSでディレクトリーサービスを提供
  • Kerberos (古いと LDAP)を使って認証
Azure Active Directory
  • ブラウザーでのアクセスを対象
  • SaaS アプリにアクセスし、Azure AD で認証
  • Azure AD の許可で、SaaS アプリへのアクセス許可を得る

3. 組織構成の違い

  • AD DS は、組織を1つのフォレストとし、その中でドメインを構成し、必要に応じてドメイン同士で信頼関係を結ぶ
  • Azure AD は、Microsoft が提供するAD DS 上で、組織にテナントが割り当てられる

AD DS ではフォーレストという空間を組織毎にドメインで小分けして管理します。それぞれのドメインは、アクセスが必要であれば信頼関係を結びます。

一方で、Azure AD にはドメインという考え方はなく、代わりにテナントいう考え方になります。1つの組織は1つのテナントとして認識されます。信頼関係という考え方もありません。

オンプレミス Active Directory
  • 1つの組織で1つのフォレストを構成
  • フォレストの中にドメインを作成
  • 必要に応じて子ドメインも作成
  • 信頼関係を結ぶことでアクセスの許可
Azure Active Directory
  • Azure AD はマルチテナントで動作
  • 組織は、Azure AD 上で「テナント」として管理
  • 必要に応じて複数のテナントを作成することも可能
  • 信頼関係という考え方はない(それぞれが独立したテナント)

Azure AD は、クラウドベースの ID を一元管理し、アプリケーションへのアクセス要求に対して認証と認可を行います。

また、クラウドサービスとして提供されるものなので、当然ながらドメインコントローラーのようなサーバーの展開はありませんし、ドメインコントローラーのメンテナンスも必要なくなります。

合格対策Microsoft認定試験AZ-104:Microsoft Azure Administratorテキスト&演習問題

posted with カエレバ

(模擬試験付き)徹底攻略 Microsoft Azure Administrator 教科書 [AZ-104] 対応

posted with カエレバ

関連するブログ:

最近の人気ブログ TOP 10:

最近の記事:

カテゴリー
2022年 Azure Microsoft MS Azure Administrator MS Azure Fundamentals クラウド コンピューター 技術一般 管理 認定資格

MS Azure を学ぶ (1) リソースグループの作成と管理

Azure Administrator (AZ-104)に合格しましたので、覚えた内容を忘れないように、これから少しずつアウトプットしていきたいと思います。


にほんブログ村

リソースグループとは

リソースグループとは、Azure上のストレージや仮想マシンなどといったリソースを入れる箱のようなものです。各リソースをまとめて管理できます。

Learn Microsoft の画面

AWSなどでも同じような機能はありますが、必須になってはいませんが、Azureでは、各リソースは必ずどれかのリソースグループに所属する必要があり、必須となっています。

このリソースグループは便利な機能で、例えば各リソースにタグを付けたい場合、リソースグループにタグをつければ、そのリソースグループ内のリソースにも同じタグを付けられますし、リソースグループを削除すれば、そ子に所属している全てのリソースも一斉に削除することもできます。

リソースグループの作成

まず、リソースグループを作成してみましょう。

管理画面トップのテキストボックスに「リソースグループ」と入力して検索します。

メニューに「リソースグループ」が見えました。これをクリックします。

リソースグループの管理画面が開きます。

「作成」をクリックして、リソースグループを新規作成します。

リソースグループの作成画面が開きます。

設定する項目は、以下の3つがあります。

  • サブスクリプション:自分のサブスクリプションを選択
  • リソースグループ:今回作成するリソースグループの名前を入力
  • リージョン:リソースグループを配置するリージョンを選択

サブスクリプションは、課金が発生した際に支払いを行うサブスクリプションを選択します。

リソースグループの名前の注意点ですが、同じ名前のリソースグループは作成できません。以下のようにエラーになります。

リージョンですが、リソースグループに関しては意味はないです。実際にリソースグループの中に入れる各リソースの方は、必ずしもリソースグループと同じリージョンである必要はありません。このリージョンの項目は、単に管理目的となります。

各項目の選択と入力が完了したら、「作成」をクリックします。

リソースグループの一覧に、先ほど作成したリソースグループの名前が表示されましたね。これでリソースグループの作成は完了です。

リソースグループの削除

不要になったリソースグループは削除ができます。

削除したいリソースグループ名をクリックします。

対象リソースグループの管理画面が開きます。

「リソースグループの削除」をクリックします。

削除対象のリソースグループ名を、ここで再度入力します。

削除しようとしているリソースグループが本当に正しいのかを確認するためです。

正しければ、「削除」をクリックします。

リソースグループの一覧から、削除したリソースグループ名が見なくなりました。削除完了です。

このリソースグループの削除で非常に重要なのは、リソースグループを削除すると、そのリソースグループに属している各リソース全てが削除されるという点です。これは非常に便利である反面、非常に危険でもあります。運用稼働中のリソースであっても簡単に削除できてしまうのです。それを回避する機能がロックです。

リソースグループのロック

繰り返しになりますが、リソースグループは、使用する各リソースが入る箱のようなものというお話をしました。リソースグループに所属している各リソースですが、リソースグループを削除すると、その中の全ても削除されてしまいます。

せっかく苦労して作成したシステムも、簡単に削除されてしまいます。

これを避けるために、ロック機能が用意されています。

使用できるロックは2種類となります。

  • 読み取り専用ロック:削除も変更もできなくなります。
  • 削除ロック:削除のみをできなくし、変更は許可します。

まとめると、以下のようになります。

ロックの種類変更削除
読み取り専用ロック  X    X  
削除ロック  ○   X  

では実際に、ロック機能を適用してみましょう。

先ほど作成したリソースグループ名をクリックします。

対象リソースグループの管理画面が開きます。

メニューの中から「ロック」をクリックします。

ロックの管理画面が開きます。

「追加」をクリックします。

ロックの種類のプルダウンメニューを開くと、「読み取り専用」と「削除」の2つがあるのが見えますね。

今回は、「削除」ロックを設定してみます。

ロック名は必須です。今回は「delet-lock」とします。

メモはオプションですが、このロックの内容ですとか目的などを入れておくと、後からの管理で便利になります。

「OK」をクリックして、削除ロックを適用します。

作成した削除ロックが適用されたのが分かりますね。

今回適用したのは削除ロックです。リソースグループの削除ができなくなります。それでは試してみましょう。

対象となるリソースグループの名前をクリックし、「リソースグループの削除」をクリックしてみます。

削除対象となるリソースグループの名前を入力し、「削除」をクリックしてみます。

「削除に失敗しました」のメッセージが表示されましたね。削除できなくなっています。

では今度は、削除ロックを解除してみましょう。

対象となるロック名の「削除」をクリックします。

削除が完了し、ロック名が消えました。

それでは、再度、リソースグループを削除してみましょう。

対象となるリソースグループ名をクリックし、「リソースグループの削除」をクリックします。

削除対象となるリソースグループ名を入力し、「削除」をクリックします。

リソースグループの削除が始まりました。

「削除しました」のメッセージが表示されました。

リソースグループの一覧を表示してみましょう。先ほど削除処理したリソースグループ名は見えなくなりました。削除されていますね。

関連する記事:

最近の人気ブログ TOP 10:

最近の記事:

カテゴリー
Apple Azure Microsoft Raspberry Pi SSTP VPN Windows クラウド コンピューター 技術一般

Mac OS で SSTP VPN を使う


にほんブログ村

SoftEter VPN Serverでは、 VPN Azure Cloud を使用することができます。

これを使うことにより、ファイヤーウォール配下に存在するSoftether VPN Server に対しての外部からの VPN 接続で、Inbound NAT や Port Forwarding といった設定を追加する必要がなくなります。

VPN Azure Cloud ですが、名前の通り、Microsoft Azure を利用します。そして、マイクロソフトということで、Secure Socket Tunneling Protocol (SSTP) というプロトコルを使用して接続することになります。

これがちょっと厄介です。マイクロソフト社の提供している OSである Windowsであれば、SSTP を使った VPN は標準で設定できるのですが、Apple 社が提供している OS である Mac OS ではそうは行きません。SSTP は標準では使えません。

ですが、Mac OS で、さらに GUI で簡単に SSTP 接続ができるアプリを見つけました。その名は「iSSTP」 です。

iSSTP

ここからダウンロードができます。

今回実現したいのは、以下の構成です。

私の自宅には Raspberry Pi 4で、Softether VPN Server を動かしています。これに対して、外出先から SSTP VPN で接続して、自宅内の NAS やサーバーにアクセスします。

Raspberry Pi で Softether VPN Server を動かす方法と設定は、こちらの記事が参考になります。

Softether の設定

基本的な設定は完了している前提での説明となります。

基本設定に関しては、上記の記事が参考になります。

Softether 管理コンソールにログインします。

VPN Azure」をクリックします。

「VPN Azure の設定」の中の「VPN Azure を有効にする」を選択して有効にします。

「現在の VPN Azure ホスト名」のところに表示されている「xxxxx.vpnazure.net」が、SSTP VPN の接続先となる FQDN になります。

「OK」をクリックして設定を適用します。

iSSTP の設定

まず「New」ボタンを押して、接続先の設定を行います。

  • Name: 任意の名前(何でも良いです。分かりやすい名前をつ付けましょう)
  • Server Address: VPN サーバの FQDN を記載(VPN Azure の場合は “xxx.vpnazure.net” になります)
  • Username: VPN 接続のユーザ名(SoftEther VPN で設定した場合は VPN 接続のために用意したユーザー)
  • Password: 上記ユーザーのパスワード

Server Address は、ここに表示されている値(xxxxx.vpnazure.net)です。

Password は、作成したユーザーの中で設定しているパスワード認証の値です。

iSSTP の設定画面で、忘れずに「Save」を押しておきます。これを忘れると、再起動すると設定が消えてしまいます。

SSTP VPN 接続

接続したい設定をクリックします。

画面右下の「Connect」をクリックします。

SSTP VPN 接続が開始されます。

接続が完了すると、VPN 接続先の DHCP の IPアドレスが割り当てられて表示されます。

SSTP VPN 接続切断

VPN 接続を切りたい時は、画面右下の「Disconnect」をクリックします。

ステータスが「Not Connected」になれば、VPN 接続は切断されています。

おもしろかったら、フォローしてください!

関連する記事:

最近の記事:

カテゴリー
2021年 AWS AWS Solutions Architect - Associate Azure Microsoft MS Azure Administrator MS Azure Fundamentals クラウド コンピューター 技術一般 認定資格

MS Azure を学ぶ (0) 用語比較


にほんブログ村

用語比較

並べて比較してみると、やはり分かりやすいです。

Azure の言葉も何となくは知っていたのですが、これではっきりしました。

AWS 用語Azure 用語
EC2 (Elastic Compute Cloud)Virtual Machines
仮想サーバーにより、OS やサーバー ソフトウェアをデプロイしたり、管理や保守が行える。
AWS 用語Azure 用語
Auto ScalingVirtual Machine Scale Sets
負荷を見て、VM インスタンスの数を自動的に変更する。
AWS 用語Azure 用語
VPC (Virtual Private Cloud)VNET (Virtual Network)
クラウド内の分離されたプライベート環境のこと。 ユーザーは、独自の IP アドレス範囲の選択、サブネットの作成したりして、自分の仮想ネットワーク環境を制御できる。
AWS 用語Azure 用語
NAT GatewaysVirtual Network NAT
仮想ネットワークでアウトバウンド専用のインターネット接続が簡単になるサービス。プライベートサブネットで外部ネットワークと通信する際に使用する。
AWS 用語Azure 用語
VPN GatewayVPN Gateway
仮想ネットワークを他の仮想ネットワーク、または顧客のオンプレミス ネットワークに接続 (サイト間) できる。
AWS 用語Azure 用語
Route 53DNS
サービスで提供される DNS。これにより、各 DNS レコードを管理する。
AWS 用語Azure 用語
Direct ConnectExpress Route
ある場所からクラウド プロバイダーへの (インターネット経由ではなく) 専用のプライベート ネットワーク接続を確立する。
AWS 用語Azure 用語
ALB (Application Load Balancer)Application Gateway
レイヤー 7 のロード バランサー。 SSL ターミネーションやラウンド ロビンによるトラフィックの負荷分散をサポートする。
AWS 用語Azure 用語
NLB (Network Load Balancer)Load Balancer
レイヤー 4 (TCP または UDP) でトラフィックを負荷分散する。
AWS 用語Azure 用語
CloudFrontAzure CDN
クラウドプロバイダーで提供される CDN サービス
AWS 用語Azure 用語
Certification Managerポータルで使用可能な App Service 証明書
クラウド内で証明書をシームレスに作成、管理できるようにするサービス。
AWS 用語Azure 用語
S3 (Simple Storage Services)Blob Storage
バックアップ、アーカイブ、ディザスター リカバリーなど向けのオブジェクト ストレージ サービス。
AWS 用語Azure 用語
EBS (Elastic Block Storage)マネージドディスク
I/O 集中型読み取り/書き込み操作用に最適化された SSD ストレージ。
AWS 用語Azure 用語
S3 GlacierStorage アーカイブアクセス層
ストレージ コストが最も低くいアーカイブ ストレージ。

Azure Administrator (AZ-104)の教材

私がAZ-104に合格するまでに使った教材を紹介します。

合格対策Microsoft認定試験AZ-104:Microsoft Azure Administratorテキスト&演習問題

posted with カエレバ

Azure をあまり触ったことのない人は、これから始めるのが良いかと思います。

内容は分かりやすく、全分野をカバーはしています。ただ、深いところまでは説明がなく、これだけで合格は厳しいと思います。

(模擬試験付き)徹底攻略 Microsoft Azure Administrator 教科書 [AZ-104] 対応

posted with カエレバ

この教材が一番良いのではと思います。試験内容をカバーしているのは当然ですが、説明もしっかりしています。

ただ、この教材に付いている模擬問題は、本番の内容に比べると簡単なので、この問題を解ければ合格とは思わない方がいいです。

試験前の力試しには、やはりUdemyの問題が良いです。

私は以下の2つを使いましたが、本番を想定した内容となっており、しかも、いくつかはほぼ同じ内容の問題も出ていました。

AZ-104: Microsoft Azure Administrator 模擬試験問題集

AZ-104: Microsoft Azure Administrator 2022年 模擬試験問題集

関連する記事:

最近の記事:

カテゴリー
2021年 Microsoft Raspberry Pi Windows おすすめ販売 ガジェット コンピューター 家電 技術一般

Raspberry Pi 4 で Windows 10 を動かす


にほんブログ村

初めて購入した Raspberry Pi 4 の 8GBモデル。Linux でサーバーを動かしたいなと思って買ったのですが、やっぱりWindows も動かしてみたいなと思ったので、ちょっといろいろ調べてみました。その時のメモ書きです。

必要なもの

Raspberry Pi 4 本体

Windows を動かすなら、やはり、4BG 以上のモデルがいいでしょう。

4GBモデル

8GBモデル

初めて Raspberry Pi 4 を購入する人は、セットになったものを購入すると便利です。必要なものが全て (モニター以外) 付いてます。

電源アダプター

動かしっぱなしの人はいのですが、使い終わったら電源を消したい人は、このスィッチの付いたタイプがおすすめす。電源を入れる時に、ケーブルの抜き差しが不要になります。

Raspberry Pi 4 ケース

Raspberry Pi は、使っているとすぐに熱くなります。以前、Linux でサーバーを動かしてみたのですが、ちょっと使っていたら、すぐにシステム温度が 90 度くらいまで上がりました。

ファンが付いているカバーが一番おすすめです。私も最初はこれを購入しました。やっぱり、音は気になりますね。そばにいかなければ分からない程度ですけど。

なので、2台目からは、ファンなしのケースを購入しましたファンなしなら、これがおすすめです。現在、Raspberry Pi 4 は 4台所有していますが、3台にこれを使用しています。

触ると本体は多少熱くなってますが、システム温度はしっかり下げられています。

Raspberry Pi 用モニター

忘れてはいけないのがモニターです。Raspberry Piには、モニターはありません。基盤剥き出しの本体のみです。

OSインストール直後しか使用せず、あとはRDPとかVNCなどで接続しますが、最初は必要ですので忘れないように購入しましょう。私はこれを使ってます。

MicroSD カード

Linux でサーバーを動かすなら、16GB でも 32GB でも十分なのですが、Windows の場合は、64GB 以上のサイズがおすすめです。C ドライブの空き容量が不足すると、システムが起動しなくなります。

あと、MicroSD のサイズが大きいほど、バックアップの時間が長くなります。これを考えると、32GB から 64GB くらいがちょうど良いと思います。システム以外のディスクは、外部の NAS を使えば良いですので。

MicroSD リーダー・ライター

Raspberry Pi では、OS を MicroSD に書き込んで、そこから起動させて使います。OS の書き込みの際に必要となりますので、持っていない場合は購入しておきましょう。

事前準備

ARM64 の Windows のインストーラーをダウンロードします。

ここからダウンロードできます。

通常は、Lαtest Public Release Build がいいです。Archtectures では、ARM64 を選択します。

インストーラーをダウンロードします。

言語を選択します。

Pro か Home を選択します。私は Remote Desktop が使いたかったので、Pro を選択しました。

ダウンロードします。

ダウンロードできたファイルを開くと、Windows のダウンロードプログラム「uup_download_windows.cmd」がありますので、ダブルクリックします。

Windows のダウンロードが始まります。

ダウンロードにかかる時間は、ご使用のインターネットの状態次第で変わります。

ダウンドードが完了しました。

このダウンロードした ISO イメージを使って、Raspberry Pi にインストールしていきます。

MicroSD への Windows 10 のインストール

MicroSD にイメージを書き込むのには、Raspberry Imager を使うのが便利です。これが圧倒的に速いです。

Raspberry Imager を起動します。

言語を選択します。

デバイスの選択で、MicroSD を選択します。

32GB でも動きますが、すぐにディスクがいっぱいになってしまいます。64GB 以上のサイズがおすすめです。

イメージの選択で、先ほどダウンロードしたWindows 10 の ISO イメージを指定します。

「Use the latest package available on the server」にチェックを入れます。

2回、ライセンス承諾を聞かれるので OK していきます。

「Use the latest firmware available on the server」にチェックを入れます。

ここの設定は触らず、次へで進めます。

設定内容を確認します。

問題なければ、「インストール」でインストールを開始します。

インストールが始まります。気長に待ちましょう。

ご使用のマシンスペックにも寄りますが、私の場合、40分くらいで完了しました。

インストールの完了です。

MicroSD を取り出します。

Raspberry Pi で Windows 10 を起動

Windows 10 を書き込んだ MicroSD を、Raspberry Pi に差し込みます。

電源を入れて起動します。

初回の起動だけ、やけに時間がかかります。私の場合、30分くらいかかりました。気長に待ちましょう。

二回目以降の起動は、すぐに起動してきますので、安心してください。

Raspberry Pi 4 には、メモリーが 2GB、4GB、8GB のモデルがあります。

4GB または 8GB のモデルを使っている方は、ここが注意点です。

ARM64 版の Windows 10 は、デフォルトでは、3GB しかメモリーを認識しません。

BIOS の「Advanced Configuration」の中に、「Limit RAM to 3 GB」という設定がありますので、これを Disable にすることで、そのリミットを解除できます。これにより、Raspberry Pi の 4GB とか 8GB のメモリーをフルに使用できます。

[Device Manager] > [Raspberry Pi Configuration] > [Advanced Configuration]

ですが、この設定、注意が必要です。

私の場合、しばらく使っていたら、Windows 10 が突然起動しなくなりました。何故なのか、いろいろ調べているうちに、「ひょっとしたらこのメモリーの設定かも?」と思って戻したら、正常に起動するようになりました。

それ以来、リミットはかけたままです。この設定は、注意して使った方がいいです。

Windows 10 を初期設定していきます。通常行う設定と同じです。

Windows 10 が正常に起動しました。

インストールできるアプリケーション

Raspberry Pi 4 で動かす Windows 10 ですが、通常の PC 版のように、何でもアプリが動く訳ではないみたいです。まだまだこれから開発が必要みたいです。

私が試してインストールできたアプリケーションは、以下のものです。

  • Microsoft Office 365
  • Google Chrome
  • Firefox
  • TeamViewer
  • CCleaner
  • ExPing
  • Serva32
  • SoftPerfect Network Scanner
  • SoftEther VPN Manager (インストールはできるけど、起動でエラーになる)
  • TWSNMP
  • Nagios Agent(NSCP)

これからいろいろ使って、調べていきたいと思います。

ただ、いろいろと制限があるみたいなので、ARM版 Windows 10 をクライアント PC として使うには、まだまだと考えた方が良さそうです。私は SNMP Polling の監視やシスログサーバーとして使ってます。

気になる点

その1 CPUの負荷が高くなる

Google Chrome を使うと、CPU の負荷が高くなる傾向があるように見えます。Chrome を動かすと、こんな感じです。

Chrome を停止すると、こんな感じです。

Firefox だと、若干、CPU 負荷は低めみたいです。

その2 リモート接続時の画面解像度

TeamViewer で接続すると、画面の解像度がやけに低いです。

TeamViewer の接続時の解像度の設定をいろいろと触ってみたのですけど、全然ダメです。

RDP だと、いい感じの解像度で接続されます。どうしてでしょうね。これは調査中です。

その3 ディスクサイズ

32GB の MicroSD でも、Windows 10 はインストールできますし、普通に動作します。ですが、ディスクの空き容量が、すぐにいっぱいになってしまうところが注意点です。

私は最初、32GB の MicroSD で Windows を使っていました。ですが、ある日突然、Windows 10 が起動しなくなりました。いろいろ調べていたら、C ドライブの空き容量がほとんどなくなっていました。

64GB に変更したところ、正常に起動できました。それを考えると、64GB 以上のサイズを使用するこことをお勧めします。

MicroSD のバックアップもしたいと思います。その際に、サイズが大きければ大きいほど、バックアップに時間がかかります。使用環境でも変わりますが、目安は、16GB で 20分くらいかかります。

ですので、個人的には 64GB くらいがちょうど良いかなと思ってます。ファイルを保存したい時は NAS をマウントししてしまえば良いです。

私は、Windows 10 をサーバーとして使っています。シスログサーバーも動かしているので、家の中の全てのネットワーク機器のログは、ここに飛ばしているのですが、ログの保存先は、ネットワークドライブにしてます。

関連する記事:

最近の記事:

カテゴリー
2020年 CDN Microsoft Riverbed WebRTC キャッシュ コンピューター 技術一般

WebRTC とは -メディア通信の最適化


にほんブログ村

先日、Kollective Technology の ECDN というコンテンツ配信製品を、社内で検討する機会がありました。

Microsoft Teams、Stream、Windows Update を使用した場合、使用する人数が増えるほど、WAN 回線の帯域幅を消費してしまい、回線が逼迫してしまうケースがあります。

ECDNがない場合の通信

Kollective 社の ECDN 製品を使用すると、WAN回線越しに流れてくるデータストリームを少なく(ケースにより1つにする)することができます。

データストリームを受けたブラウザーがそのデータをキャッシュし、同じ場所にいる別の端末に共有します。これにより、WAN 回線を効率的に使用することができる様になります。

ECDNがない場合の通信

この製品で、WebRTC という技術が使われています。

WebRTC は名前が聞いたことはあったのですが、詳細までは知らなかったので、いい機会なので調べてみました。

WebRTC とは?

WebRTC は、Web Real Time Communications の略で、プラグインを追加することなく、ブラウザ上で簡単にリアルタイムコミュニケーションを可能にします。2011年頃に Google によって提唱され、そこから少しずつ技術開発されてます。

HTML5 で新しく策定された API の規格で、P2P通信を利用した端末間の相互接続も行うことができ、P2P 通信によるビデオチャットやファイル共有を、Web ブラウザだけで実現することができます。

Web ブラウザーを使って、簡単に使うことができるのですが、使用できるブラウザーは限定されている様です。その理由は、ブラウザーが WebRTC をサポートしている必要があるからです。

WebRTC 対応ブラウザー

  • Chrome
  • Firefox
  • Opera
  • Edge
  • Safari

IE はサポートしてないんですね。今でも IE を使ってる企業はまだまだ多いですが、もう古いブラウザーなので、Edge を使えってことでしょう。

ちなみに、Kollective社 の製品では、以下のブラウザーとプラットフォームをサポートしています。

対応ブラウザー

  • Edge
  • Chrome
  • Firefox
  • Safari

対応モバイル端末

  • Android
  • iPad

iPhone は、WebRTC をサポートしてないらしいです。なお、対応ブラウザーが使えない場合、Teams アプリを使用すれば、WebRTC が使えるそうです。

対応 OS対応ブラウザー
Windows / MacChrome 26以降
Firefox 22以降
Opera 15以降
AndroidChrome 29以降
iOS開発中

WebRTC で実現できること

WebRTC を実装することで、実現することのできる機能は、以下のものがあります。

  • 端末上のカメラやマイクからのデータの取り込み

Media Capture and Stream

  • ストリームデータの P2P 通信

WebRTC 1.0: Real-time Communication Between Browsers

  • テキストデータやバイナリデータの P2P 通信

WebRTC 1.0: Real-time Communication Between Browsers

WebRTC では、クライアントがサーバにデータの要求をするクライアント/サーバモデルでななく、複数端末間での通信です。

つまり、それぞれのPCがデータを保持し、他のPCに対して直接、データの送信・要求を行うPeer to Peerの形をとります。

また、通信プロトコルには基本的に「TCP/IP」の代わりに、「UDP/IP」を用いて通信のリアルタイム性を担保しているのも特徴です。状況によってプロトコルを使い分けるみたいです。

Kollective社の製品では、上記の「WebRTC 1.0: Real-time Communication Between Browsers」を使用しているのですね。

P2P 通信に必要な情報

P2P 通信を行うためには、ブラウザ間で共有しなければならない情報があります。

P2P 通信を開始するには接続先のグローバルアドレス情報が必要になるので、NAT traversal として、STUN(Simple Traversal of UDP through NATs)やICE(Interactive Connectivity Establishment)といった技術がサポートされており、NAT が割り当てたグローバル IP アドレスとポート番号を取得できるようになっています。

Session Description Protocol (SDP)

  • 通信に必要な各ブラウザの情報を示す文字列 (セッションの属性、メディアの形式、IP アドレス、ポート番号、通信帯域など)のことです。
  • 片方の PC が他方 PC に対し SDP を Offer し、それに対して Answer SDP を返すという形で通信を行います。

Interactive Connectivity Establishment (ICE)

  • 通信相手のブラウザに到達する通信経路に関する情報を提供します。
  • この通信経路を探す際、環境によっては、NAT やファイアウォールなどで直接的に PC 同士の情報を渡せないこともあり得ます。
  • そのため、STUN サーバや TURN サーバというものを用いて通信経路を検知し、それらの経路候補を ICE Candidate として、ブラウザ間で共有する必要があります。

WebRTC の JavaScript API

WebRTC は、以下の 3つの JavaScript API を提供しています。

getUserMedia

  • Web ブラウザから端末に取り付けられているカメラやマイクにアクセス
  • ストリームデータを取得する

RTCPeerConnection

  • マルチメディアセッションを確立
  • UDP/IP を使用して Web ブラウザ同士で直接ストリームデータを送受信
  • コーデック(オーディオおよびビデオの符号化および復号化)、暗号化、帯域管理(帯域幅の変化にストリームを適応させるなど)の各機能も提供

RTCDataChannel

  • テキストデータやバイナリデータの P2P によるデータ通信のための API
  • ファイル転送やテキストチャットなどを実現
  • UDP/IP を使用しているので、TCP/IP とは異なりパケット再送は行わない

メディア系の技術は名前を知っている程度で、触れる機会がなかったのですが、今回は良いチャンスです。これを機会に学んでみようと思います。

追記:

リバーベッドテクノロジーの SaaS Accelerator という製品が、この WebRTC をサポートしたとの話を聞きました。今度、機会のある時に試してみたいと思います。

関連する記事:

最近の記事: