こんにちは!
BFT名古屋支店の佐野です。
今回は佐野が勝手に進めるブログプロジェクト「GCPクイックスタートガイド」の第5回です。
今回からGCP上での環境構築に必要なGCPサービスの利用・活用方法について触れていきます。
まずは「ネットワーク編」としてGCP環境の下地となるネットワークを作成するGCPサービスの使い方を見ていきましょう。
GCPで構築するネットワーク
GCP環境におけるネットワークは、Virtual Private Cloud(VPC)とサブネットにより構成されます。
これらはGCP上のネットワークの根幹とも言えるもので、仮想マシンを始めとしたネットワークに紐づくGCPサービスを利用するには、このVPCとサブネットが不可欠です。
そのため、まずはこのふたつを利用できる状態にするのが第一歩と言えます。
GCPプロジェクトには最初からデフォルトのVPCとサブネットが作成されているため、厳密には新たにVPCやサブネットを作成しなくとも、これらを用いた環境構築が可能です。
しかしデフォルトのVPCとサブネットはセキュリティ的にかなり緩く、ちょっとしたお試しならまだしも、ほんの少しでも本格的に環境を作ろうという場合には適さないものです。
ネットワークを構築する以上セキュリティ面は避けて通れないものであるため、その面を見るためにもVPCおよびサブネットは新たに作成することをお勧めします。
さてGCPにおけるVPCとサブネットですが、GCPと同様にメジャーなクラウドサービスであるAWSと比べると少し異なる仕組みとなっています。
VPCとサブネット、そしてクラウドリソースが物理的に存在するデータセンターがある地域を示す「Region」という単語は共通しており、Regionの中のさらに細かい地域で分けたものをAWSでは「Availability Zone」、GCPでは「Zone」といいますが、意味合いは同じです。
異なるのはまさしく仕組みの部分で、AWSでは以下の図のようにRegionの中にVPCが存在し、さらにAvailability Zoneの中にサブネットが存在している上、ひとつのサブネットはひとつのAvailability Zoneのみで構成されます。
IPアドレスの範囲はVPCとサブネット両方に設定し、サブネットのIPアドレスの範囲はVPCのIPアドレスの範囲から切り出す形で割り当てる必要があります。
一方GCPでは、以下の図のようにVPCはRegionの上層に存在し、グローバルなリソースとして扱われます。
なのでVPC自体にはIPアドレスの範囲が存在せず、サブネットにのみIPアドレスの範囲を割り当てます。
またサブネットにしても、ひとつのサブネットにひとつのZoneではなく、ふたつ以上のZoneをまたいで割り当てることができます。
特にAWSを触ってからGCPを学びだすと混乱しやすい部分ですが、簡単に言えばGCPはVPCでIPアドレスの範囲を区切る必要がないだけとも言えます。
GCPにおけるVPCとはあくまでサブネットをまとめるものであると理解すれば、実際に構築する上ではそう差異がないと感じられるでしょう。
またVPCでIPアドレスの範囲を決めない分、ネットワークの拡張性や設計変更時の柔軟性はGCPの仕組みの方が長けています。
では仕組みを述べたうえで、実際にGCPでのVPCとサブネットの作成を行なってみましょう。 今回は先のGCPの構成図と同じ構成になるような手順を紹介していきます。
VPCとサブネットを作成する
新たにVPCを作成するには、まずナビゲーションメニューから「VPCネットワーク」を選び、その配下の「VPCネットワーク」を選択します。
「VPCネットワーク」コンソール画面に入ったら上部の「VPCネットワークを作成」を選択するとVPCとサブネットの作成画面に遷移します。
VPCとサブネットの作成画面に入ったら、まずは「名前」に作成するVPCの名称を入力します。
最大伝送単位は特筆する事由がないならデフォルトの1460としておきましょう。これは1パケットの最大サイズとなるもので、大きすぎるとネットワーク遅延が大きくなる可能性があります。
VPCの設定はこれだけで、ここからはサブネットの設定です。
「サブネット作成モード」を「自動」にすると、現状GCPで利用できる各リージョンに自動でサブネットを作成しますが、使うリージョンもIPアドレス範囲も勝手に決まってしまうため、基本的には「カスタム」を選択して自分で設定を行ないます。
「サブネット作成モード」で「カスタム」を選択したなら、以下の図のように「新しいサブネット」と「サブネットを追加」が表示されているはずです。
ひとつめのサブネットの設定は「新しいサブネット」から行えます。
「サブネットの追加」は、ふたつめ以降のサブネットが必要な場合に選択することで、新たなサブネットが設定できるようになります。
「新しいサブネット」を選択すると以下のような設定画面になります。
まずはサブネットの名前を決め、その後サブネットが存在するリージョンを選択しましょう。
例えばasia-northeast1は東京リージョンを表します。
あとはIPのタイプをIPv4単体かIPv4とIPv6の並列かを選び、サブネットのIPアドレスを指定すれば必要分のサブネットの設定は完了です。
構成図と同じように構築するには、同じようにあとふたつ、IPアドレスの範囲を変えてサブネットを作成しましょう。
なお、今回定めたasia-northeast1以外のリージョンがどの地域を表すのかは、以下の公式ドキュメントを参照してください。
またサブネットの設定の下部の「限定公開のGoogleアクセス」「フローログ」「ハイブリットサブネット」は以下の意味合いを持ちます。
限定公開のGoogleアクセス
「限定公開のGoogleアクセス」を有効にすると、有効にしたサブネット内にあるインスタンスがグローバルIPアドレスを持っていなくとも、GCPのAPI、すなわちGCPサービスにアクセスできるようになります。
GCPのAPIを利用する場合、通常はグローバルIPを使用してのインターネット経由で接続しますが、そもそもインターネット経由ということは外部のネットワークと繋がなければいけないし、グローバルIPアドレスを持つことで外部から繋げられてしまう危険性を持つということです。
システム要件においてインターネット、ひいては外部とのネットワーク接続を厳禁とする場合は珍しくなく、そういった場合はそもそもグローバルIPアドレスを持つことすら許されません。
そのようなグローバルIPアドレスを持たないインスタンスがあるサブネットでこれを有効化すれば、そのインスタンスはインターネットを経由せずGCP内のネットワークだけを通ってGCPのAPIにアクセスできます。フローログ
有効化することで、そのサブネット内にあるインスタンスによって送受信されたネットワークフローのログを取得できるようになります。
有効化すると、集約の間隔を5秒~15分の間で調整したり、メタデータ取得の有無やサンプルレートの設定ができます。ハイブリットサブネット
これを有効化したサブネットはカスタムルートのアドレス範囲とサブネットIPアドレス範囲を重複させられるようになります。
そうすることでGCP側のサブネットのIPアドレス範囲と同じIPアドレス範囲を持つオンプレミス側のサブネットへのルーティングが可能となります。 これはGCP環境とオンプレミス環境を合わせたハイブリット環境を構築する際に必要な設定のひとつであり、これだけで何らかの機能を持つわけではありません。
ハイブリッド環境の構築にはこれの有効化のほかにルートアドバタイズの構成(VPNトンネル、VLANアタッチメント、ルーターアプライアンスVMの設定)が必要となります。
ハイブリッド環境の構築の話は基本的なリソースの作成からは大きく逸れるため本記事では扱いませんが、ひとまずハイブリットサブネットはハイブリット環境の構築時に設定するものとだけ覚えてください。
サブネットの追加をすべて完了したら、最下部の「作成」を選択することでVPCとサブネットを作成できます。
ファイアウォール ルールの設定
VPCを作成する際、既定のファイアウォールルールの中から適用するファイアウォールを選ぶことができます。
選べるファイアウォールルールは以下の通りで、allow-custom以外はいずれも作成するVPC全体に適用されるものです。
allow-customのみ編集ができるため、既に仮想マシンに接続する元のIPアドレス範囲とプロトコル/ポートが分かっている場合はここで設定してもよいですが、それ以外はすべてのIPアドレスに向けて許可を出す設定なので、適用は避けた方が賢明です。
細かなファイアウォールルールの設定は以降の記事で取り扱いますので、ここでの設定方法は本記事では詳しく扱いません。
区切り
これでGCPで環境を構築するための下地となるVPCとサブネットを用意することができたかと思います。
とはいえ先述の通り、ファイアウォールなどの接続の設定はまだ解説していないため、次回はVPCやサブネットなどに適用するファイアウォールについて触れていきます。
【次回】
【前回】