(2)デプロイ王子のクラウド寺子屋 1時間目(2015/10/19)

winwoman.hateblo.jp

今日の予習課題は、下記用語について調べておくこと。

  • TCPUDPとポート番号
  • プライベートネットワークアドレス
  • CIDR

この予習を踏まえて、IPアドレスからネットワーク、LANなどの基礎部分、概要を簡単に説明してくださるところから開始です。今回は完全に、ネットワークの基本から!

■Azure仮想ネットワークとは

今回は、ひとことで言うと、「クラウドのなかにLANをつくる」勉強。
ちなみに、基礎からしっかりAzureを学びたい方向けに、デプロイ王子様からのお勧め書籍は、こちらだそうです。

Amazon.co.jp: ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築: 横山 哲也: 本

Azure内にただサーバーを構築するのではなく、まず仮想ネットワークを構築してからサーバーを配置すると、あとあとまた何かを構築するときに、構築したサービス同士を接続させることができる、という大きなメリットがあるそうです。

勉強していくなかで、1つ1つのサービスを考えていくことで手一杯でしたが、ネットワークやサーバー構築を考えるためには、最終的なゴール(全体像)や、後々の拡張性も視野に入れておくことが必要ということ、それからその構造のために、Azureは土台の設計がしやすい機能をたくさん盛り込んでいるのだということを、改めて認識。

さて、仮想ネットワークの中にサーバーを配置しておくことのもう一つのメリット、それは外部とAzure上の仮想ネットワークを接続できるということ。例えば社内のネットワークからAzure上の仮想ネットワークへ、など。

そんなわけで早速Azureを利用しての仮想ネットワーク作成です。ちなみに、Microsoft Azureは、初回登録後30日間は無料で利用できる体験期間サービスもありますので、初めて試す方も安心です(※クレジットカード登録が必要です)。

何かを構築したあとは、必ず停止、あるいは削除しておかないと、課金が発生するケースがありますので、要注意です。

最初に教わったIPアドレス概論を振りかえりながらの仮想ネットワーク作成が終わったら、仮想マシンの構築です。基本の意味を理解しているかどうか問われる入力欄はいくつかあるものの、クリックだけでLANが出来るのことに感嘆。

ちなみに王子様のワンポイントレッスンとして、IPのクラス分けについては、

</16(65536)></24(256)></32(1)>

を抑えてください、ということでした。

■Azureのバックアップ体制(ディザスタリカバリ/災害復旧対策)

バックアップを取る、同期をとる、冗長性などよく耳にしますが、Azureでよく言われているのがこの部分の設計の堅牢性です。

 LRS(ローカル冗長ストレージ) …… 同じ地方リージョンのデータセンター内で同期(バックアップ)
 GRS(地理冗長ストレージ)     …… 異なる地方リージョンのデータセンター内で同期(バックアップ)

という2つの同期設定を選択することで、万一を防ぎます。つまり、都市Aに何かが起こってデータセンタが破損しても、都市Bのデータセンタに同期データが有る、という仕組みが可能ということです。 万一が必ずありえるのだとしても、万一をできるだけ防ぐための仕組みが整えられています。

■Azure仮想マシンを構成する要素

 Azureで仮想マシンを構築すると、基本的にLB(ロードバランサー)がついてくるそうです。これは、一般的に言われる負荷分散だけではなく、外部のネットワークと仮想ネットワークを繋ぐ「エンドポイント」としても働くそうで、LBがNAT(IPアドレスをポート変換して、インターネット上のIPアドレスと、仮想ネットワーク上のIPアドレスとをコネクションする機能)も果たすから、ということでした。

たとえば、インターネット上(外部ネットワーク)の、例)210.123.123.8 、というIPアドレスで仮想ネットワークに繋ぎます。

  VIP:210.123.123.8(インターネット上の一意のIP)

これを仮想ネットワーク上に用意した複数台のマシンにそれぞれ繋ぎたい、という場合に、

  VIP:210.123.123.8(インターネット上の一意のIP)

→ 80番ポートでアクセス:ネットワーク内の 192.168.1.10 と交換、接続

→ 81番ポートでアクセス:ネットワーク内の 192.168.1.11 と交換、接続

という形で、同じ接続元IPアドレスからの接続でも、接続ポートに応じて、それぞれの仮想マシンに自動で振り分けてくれるという状態が可能になります。

(このあたり、こういった勉強会に興味関心のある方には重々既知の情報でしょうけれど、書いている本人の復習も兼ねていますので、ご容赦くださいね)

そして、仮に仮想マシンをウェブサーバとして構築していた場合、同じ80番ポートにアクセスした際に、1台にアクセスが集中して閲覧できなくなる、という状態を防ぐために、アクセスの50%ずつを2台に振り分ける……というのが負荷分散としてのLBの機能となります。……といいつつ、LBは仮想マシンが1台しか構築されていなくても、ついてくる機能だそうですが。

■可用性セット

長々まとめた(?)ように、負荷分散が出来る状態で、なおかつLRS/GRSと言ったさまざまなかたちで冗長化されているのですが、このときも、そっくりそのままではなく、異なる配置でセットされます。

たとえば、A、B、Cというサーバーが有り、そのなかに8つずつの仮想サーバー領域を設けているサーバー群を、exsampleと呼ぶとします。

このとき、リージョンを変えて exsample1、exsample2、exsample3と同期を取るわけですが、exsample1のAに置かれていたデータのバックアップ(冗長化されたデータ)は、exsample2のB、exsample3のCという形で配置される、といった具合です。

exsample1群に、サーバーOSのUpdateなどが発生して停止する場合に、それぞれのリージョンでexsample1群が停止や再起動をしては、冗長化の意味がありません。このとき、exsampleB、C群にあることで、「万一」を防ぎます。これが、Azureの「可用性」になるわけです。

 ■仮想マシンの構築

ここからはハンズオンです。ちなみにここで、個人的にずっと不思議だったWindowsServerを入れた場合のライセンス費用について、やっと確認することができました。

Azure上でWindowsServer等を利用する際にライセンスを持っていない場合、Serverの稼働料金内に含まれているのだそうです。もちろんライセンス持ち込みも可能です。(だからLinux系を動かすほうがすこし安価な設定だそうですよ。な、なるほど!)

というわけで、WindowsServer 2012 R2 と、Ubuntu ので仮想マシンを2台構築。廣瀬さんのお話を聞きながら、みんな慎重に進めて、無事2台の仮想マシンを構築しました。

さて、廣瀬さんが、何故あえてWindowsServerとUbuntuウェブサービスIISApache)を構築したかというのは、前述の「負荷分散」を試すためでした。

それぞれ構築後に、立ち上がったウェブサービスのdefaultページを見て、繰り返しアクセスをすると、IISApacheとで異なるページを見ることが出来て、確かに分散されている! ということを目で確認。WindowsServerの設定とUbuntu体験だけではなく、こうして目ではっきり確認出来る結果がついてくると、うれしくて頭にもきちんと入った気がします。

ちなみにここで、自分で設定中につくった、各仮想マシンへのアクセス用パスワードを忘れた場合は、Azureの新しいPreview Portalから再設定ができるそうです。(古いタイプのPortalからはできないので、注意が必要ですね)

わたしは早速、パスワードは覚えているのにIDを忘れて、廣瀬さんを困惑させてしまいましたし、ほかにもパスワードを忘れてしまったという方もいらっしゃったということなので、みなさま、設定した情報は、控えておきましょうね……。

非常に長くなりましたが、今回はこれだけの量を、みんな笑顔ですいすい進むことができ、多少の戸惑いや困惑ポイントもあったものの、全員がきちんとゴールにたどりつきました。そしていろいろと手と目を動かしたおかげで、頭にもきちんと入ったように思います。これだけのネットワーク概論と基礎を、数時間内に体感できるということは凄いことだと思いますし、随所に面白い例えや、サポートで入ってくださった方との掛け合いがあり、楽しく学び終えました。次回がいまから楽しみで仕方ありません。


本日も、廣瀬さん、そしてサポートで入ってくださった、工藤さん、ありがとうございました!