楽屋

連載:Azure で学ぶインフラ入門1(ネットワーク構築編)

1. はじめに

1-1. 分析者がインフラ構築を学ぶ理由

こんにちは、本連載では Microsoft Azure を用いてインフラ構築の基礎を学んでいきます。弊社はデータ分析屋ですが、モデリングした後に何らかの形でシステム化して欲しい、というご要望を頂くことがあります。そんなわけで、分析屋といえどある程度インフラ周りの知識が求められます。

本記事の読者のレベルとしては、ネットワークやサーバーについて多少知識はあるが、1から構築したことのない初心者を対象としています。ですので、Linuxコマンドや用語の説明は、理解してもらうのを優先するためあまり厳密性にはこだわらず説明していきます。

1-2. この連載でつくるもの

本連載では、WordPressでブログシステムを作りながらネットワークとサーバを構築していきます。

構成は以下のようになります。

一つの仮想ネットワークの中で2つの小さなネットワーク(サブネットと言います)に分割して、それぞれに役割の異なるサーバを構築していきます。

 

1-3.  作業に入る前に

具体的にネットワークやサーバを構築していく前に、以下の用語を抑えておくと導入でつまずくことがないかと思います。

・Azure リージョン

Azureのリソースは”米国西部”、”北ヨーロッパ”、”東南アジア” といった地理的なリージョンで区切って作成されます。 各リージョンには、冗長性と可用性を確保するために複数のデータ センターが存在します。そのため一つのデータセンターに何らかの障害が起こっても、他のデータセンターでカバーすることができます。

 

・サブスクリプションとリソースグループ

サブスクリプションとは、Azureを利用するときの契約(≒お金を支払う)単位です。サブスクリプション単位で課金されるので、例えばプロジェクトごとにサブスクリプションを分ければ、プロジェクトあたりの費用を管理できます。

リソースグループとは、関連するリソースをまとめて管理しやすくするコンテナーです。

リソースグループの設定方法は以下となります。

左端の「リソースグループ」をクリックして現れるペインの「追加」をクリックするとリソースグループの設定画面が現れます。本記事では、グループ名は「blog-system」、リージョンは「東日本」で設定します。

次章以降では、blog-systemのリソースグループの中で作業を進めますので、サブスクリプションも含め事前作成をお願いします。

2. ネットワークを構築する

まずは実際に仮想ネットワークを作成していきます。用語などの解説は作成後に行います。

2-1. 仮想ネットワーク作成

左端の「新規」から「ネットワーキング」を選択すると「仮想ネットワーク」の設定画面が開きます。

ネットワークの名前はここでは「blog-vnet」とします。

アドレス空間には 「10.0.0.0/16」 を、リソースグループはさきほど作成した「リソースグループ」、場所は東日本リージョンで作成します。

続いてサブネットを設定していきます。

サブネットの名前には「public-subnet」、アドレス範囲には「10.0.0.0/24」、今回はサービスエンドポイントは「無効」にして、作成ボタンをクリックします。これで「仮想ネットワーク」と「パブリックサブネット」の作成は完了です。

見慣れない用語がいくつか出てきたと思うので、次節以降で解説します。

 

2-2. IPアドレス

前節で仮想ネットワークのアドレス空間に指定した 、「10.0.0.0/16」は「IPアドレス範囲」というものです。インターネットで使われている「TCP/IP」というプロトコルでは、通信先を指定するのに「IPアドレス」を指定します。IPアドレスは、ネットワーク上で互いに重複しない番号で、「住所」のようなものです。

IPアドレスは32ビットで構成され、「192.192.1.2」のように8ビットずつ10進数に変換したものを、「.」で区切って表記します。「.」で区切られた数字はそれぞれ、0 ~ 255までです(8ビット = 2の8乗 = 256、 なので)。つまりIPアドレスは、「0.0.0.0 」〜「255.255.255.255」の間で表記されます。

 

補足:2種類のIPアドレス

 IPアドレスには「IPv4」と「IPv6」の2種類があり、表記方法が異なります。本記事では、現在主流であるIPv4を扱います。

2-3. パブリックIPアドレスとプライベートIPアドレス

IPアドレスは重複すると正しく通信できないため、勝手に設定することはできません。インターネットで利用されるIPアドレスは「ICANN」という団体が一括管理しています。

この「インターネットで利用されるIPアドレス」のことを「パブリックIPアドレス」、または「グローバルIP」といいます。

 

一方でインターネットで使われていないIPアドレスもあり、以下の表がその一覧となります。

IPアドレス範囲
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255

これらは「プライベートIPアドレス」と呼ばれ、パブリックIPアドレスと違い自由に使用できます。本記事で作成するネットワークや社内LANなどには、この範囲のIPアドレスが使用されます。

2-4. IPアドレス範囲の表記方法

ネットワークを構築するときは、まず使用するIPアドレス範囲を指定します。

アドレス範囲を「192.168.0.0」 ~ 「192.168.255.255」とした場合、ピリオドで区切った先頭の16ビットは数字が変わっていません。この「192.168」の部分を「ネットワーク部」と呼び、後半の数値が変化する部分を「ホスト部」と呼びます。

2-1節で構築した際には、アドレス空間を「10.0.0.0/16」と指定しましたが、これは「CIDR表記」と呼ばれ、「/16」の部分は「ネットワーク部のビット長」を表しています。このビット長のことを「プレフィックス」といいます。

「10.0.0.0/16」の場合、先頭16ビットがネットワーク部、つまり固定の値で、後半の残り16ビットが「0.0」~「255.255」までの範囲を表します。

 

下記にCIDR表記とそのアドレス範囲の例を示します。

・「10.0.0.0/16」→「10.0.0.0」 ~ 「10.0.255.255」

・「172.0.0.0/8」→「172.0.0.0」~「172.255.255.255」

・「192.168.0.0/32」→「192.168.0.0」~「192.168.0.255」

ネットワーク部は、同じネットワーク内に属するリソースで全て同じ値になります。そしてホスト部が、各サーバーやネットワーク機器に割り当てられる固有の値になります。

2-5. 仮想ネットワークをサブネットに分割する

実際には仮想ネットワークをさらに細かいCIDRブロックに分割して、「サブネット」と呼ばれる小さいネットワーク空間を作ると、その部分でネットワークを分けて扱えます。

サブネットに分ける理由として、次の2点が挙げられます。

1. 物理的に隔離する

社内LANを構築する際、フロアごとに違うサブネットを使いたい、というように物理的に分けたい場合があります。

サブネットで分けておけば、片方のサブネットに障害があった時に、もう一方のサブネットに影響が出にくくなります。

2. セキュリティ上の理由

例えば、「経理部のネットワーク」だけを分離し、他の部署からはアクセスできないようにしたいケースです。

今回は以下の二つに分割します。

①パブリックサブネット(10.0.0.0/24)

インターネットからアクセス可能なサブネットで、後の手順でWebサーバーを設置する。

②プライベートサブネット(10.0.1.0/24)

インターネットから隔離したサブネットで、データベースサーバを設置する。

先ほどの操作でパブリックネットは作ってしまったので、残りのプライベートサブネットを作成していきます。

3.プライベートサブネットの作成

冒頭で作成したリソースグループのリソース一覧画面を見ると、前節で作った「blog-vnet」という仮想ネットワークが確認できると思います。

それをクリックすると、以下概要ページが表示されます。

画面の左端にある「サブネット」の項目をクリックすると、サブネットの一覧が表示されます。

さらに画面の上の方にある「追加」ボタンをクリックすると、以下のサブネット作成画面が開きます。

名前には「private-subnet」。アドレス範囲には「10.0.1.0/24」、ネットワークセキュリティグループの項目はデフォルトだと新規作成されてしまいますが、この項目は後ほど説明したのち設定していくので、「なし」で設定してください。

他の項目はデフォルトのままでOKをクリックしてプライベートサブネットの作成は完了です。

まとめ

ここまででネットワークの構築が終わりました。仮想サーバを立てたことはあるけれど、ネットワークから作るのは初めてだった、なんて方も多かったのではないでしょうか。

次回は、Azure で学ぶインフラ入門2(Webサーバー構築編)にて、本記事で作成したネットワークの中に仮想サーバを立てていきます。