大塚紳一郎, 2020年2月
2003年、株式会社野村総合研究所に新卒で入社。ミッションクリティカルシステムにおけるOracle Databaseの構築、運用、コンサルティングに関して15年以上の経験を持つ。毎年サンフランシスコで開催される世界最大のテクノロジーイベント「Oracle OpenWorld」を含む各種イベントでの講演多数。Autonomous DatabaseがGAされた年にOracle ACE Associateになれたことに運命を感じており、Oracleデータベース管理者の今後のロールモデルの構築に携わりたいと考え日々活動中。最新の登壇タイトルは「Boosting your career through Oracle Cloud Infrastructure 2018 Certified Architect Associate.」
こんにちは、NRIの大塚です。今回はCURRENT DATA領域の連載2回目です。
テーマとするPaaSはOracle Container Engine for Kubernetes(以降OKE)です。今回からOracle Cloudの実装方法を紹介していきます。今回はOKEを構築するための準備を行いたいと思います。ネットワーク環境整備などOracle Cloud Infrastructureでの準備作業を行います。
1.Oracle Cloudでの実装を始める前に
Oracle Cloudの操作は管理コンソールを用いて行います。ログインに際してテナント名を取得する必要があります。テナント名とは、OCIを契約したり、無料トライアルを申し込んだ際に払いだされる一意のIDのことです。
Oracle Cloud 管理コンソールへのSign up準備方法を3つ紹介します。
① 無料トライアルでのOracle Cloudサービスの使用
② 担当の営業さんやOracle Digitalに相談。
Oracle Digitalはフリーダイヤルによる電話での相談窓口※やWebフォームによる窓口、そしてチャットによる相談を行うことができ、オラクルの製品やクラウドサービス導入に関して丁寧な支援が受けられます。
※0120-155-096
受付時間 月~金 9:00-12:00 / 13:00-17:00(祝日および年末年始休業日を除く)
③ Oracle Cloudの公式Webサイトからの契約
2.Oracle Cloud管理コンソールへのSign up
筆者は前述の②にて準備をしました。申し込みを行い、準備が完了するとメールが届きます(下図参照)そのメールにある「マイ・サービスのアクティブ化」を押下し、Oracle Cloud管理コンソールSign upへの準備を進めていきます。
テナント名(クラウド・アカウント名) | 新規の名称を命名します |
デフォルトのデータ・リージョン名 | 筆者は北アメリカを選択。Ashburnにて今回の連載の実装を行います 最新の提供リージョンの情報は以下を参照してください https://www.oracle.com/cloud/data-regions.html |
テナント管理者の登録 | 電子メールアドレス、名、姓を登録します |
前述の管理者宛に以下のような電子メールが届き、準備は完了です。
早速Oracle Cloud管理コンソールへログインしてみましょう。URLは以下です。
https://www.oracle.com/jp/cloud/sign-in.html
(注)2ステップ検証は以下の記事で実装しました。
「Keys to the Oracle Cloud第7回:【Tea break】 Oracle CloudにおけるMulti-Factor Authentication(多要素認証)の実装」
標準のログインシーケンスでは、2ステップ検証の画面には遷移しませんのでご注意ください。
上記の記事を参考に各自実装をお願いします。
これからOracle Cloud管理コンソールを活用して実装をしていきます。ハンバーガーボタンを押下するとメニューが表示されます。表示されたメニューで構築を進めて行きます。
それでは、いよいよ実装に入っていきます。今回作成するのは図中赤枠(COMPARTMENT OKE)のネットワークまわりです。Oracle Container Engine for Kubernetesはプロビジョニング時にネットワークまで自動構築してくれる「クイック作成」と、構築済ネットワークを利用する「カスタム作成」の2種類の構築方法が選択できます。
本連載では後者の「カスタム作成」を前提にしたいと思います。
実装手順は以下の8ステップとなります。
少し長くなりますが、頑張って作っていきましょう。
それでは、さっそく始めたいと思います。
1.コンパートメントの作成
まずは、これから作成するクラウド・リソースを格納していくコンパートメントを作成する必要があります。
皆さんは現在Oracle Cloudの管理コンソールにログインしていると思います。ハンバーガーボタンを押下し、その後「アイデンティティ」→「コンパートメント」の順に押下して作成画面を表示します。
もし日本語になっていない場合は、下図のように日本語を設定してください。
「コンパートメントの作成」を押下して、作成を開始しましょう。
コンパートメント作成画面にて、さっそく値を入力していきましょう。
「コンパートメントの作成」ボタンを押下すると、すぐに作成されます。
これから作成するクラウド・リソースは、すべて「OKE」コンパートメントに関連付けていきます。
2.仮想クラウド・ネットワーク(VCN)の作成
次にVCNを作成したいと思います。
VCNの作成は「ハンバーガーボタン」→「ネットワーキング」→「仮想クラウド・ネットワーク」の順で押下して作成画面を表示します。
コンパートメントで「OKE」を選択し、その後「仮想クラウド・ネットワークの作成」を押下します。
VCN作成画面にて、さっそく値を入力していきましょう。
「仮想クラウド・ネットワークの作成」を押下すると、すぐに作成されます。
3.ロードバランサ用のセキュリティ・リストの作成
インターネットからロードバランサに届くトラフィックは、インターネット・ゲートウェイ経由で通信します。その為、以下のようにセキュリティ・リストを設定します。
~イングレス:インターネット・ゲートウェイからのトラフィック制御ルール~
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | 0.0.0.0/0 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
~エグレス:インターネット・ゲートウェイへのトラフィック制御ルール~
ステートレス | チェックします(ON) |
宛先タイプ | CIDR |
宛先CIDR | 0.0.0.0/0 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
それでは実装していきましょう。
「セキュリティ・リスト」を押下してください。
「セキュリティ・リストの作成」を押下してください。
下図のような入力画面が起動します。
まず入力の仕方を説明します。
実際に入力すると下図のようになります。
すぐに作成されます。
4.ワーカー・ノード用のセキュリティ・リストの作成
それでは続いてワーカー・ノード用のセキュリティ・リストを作成したいと思います。
マニュアル「ワーカー・ノード、サブネット、セキュリティ・リストの構成」を参考に設定します。
https://docs.oracle.com/cd/E97706_01/Content/ContEng/Concepts/contengnetworkconfig.htm
ロードバランサ用のセキュリティ・リストの作成の設定方法を参考に、以下のルールを実装してください。
・作成するセキュリティ・リストの名前:workers
~イングレス:インターネット・ゲートウェイからのトラフィック制御ルール~
セキュリティ・ルール①
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | AD1のSubnetに付与するCIDR |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
セキュリティ・ルール②
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | AD2のSubnetに付与するCIDR |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
セキュリティ・ルール③
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | AD3のSubnetに付与するCIDR |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
セキュリティ・ルール④(OKEからWorker Nodeを管理するための通信)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 130.35.0.0/16 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 22 |
セキュリティ・ルール⑤(OKEからWorker Nodeを管理するための通信)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 134.70.0.0/17 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 22 |
セキュリティ・ルール⑥(OKEからWorker Nodeを管理するための通信)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 138.1.0.0/16 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 22 |
セキュリティ・ルール⑦(OKEからWorker Nodeを管理するための通信)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 140.91.0.0/17 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 22 |
セキュリティ・ルール⑧(OKEからWorker Nodeを管理するための通信)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 147.154.0.0/16 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 22 |
セキュリティ・ルール⑨(OKEからWorker Nodeを管理するための通信)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 192.29.0.0/16 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 22 |
セキュリティ・ルール⑩(デフォルトNodePortの範囲が30000~32767のワーカー・ノードへのインバウンド・トラフィック)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 0.0.0.0/0 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | 30000-32767 |
~エグレス:インターネット・ゲートウェイへのトラフィック制御ルール~
セキュリティ・ルール①
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | AD1のSubnetに付与するCIDR |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
セキュリティ・ルール②
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | AD1のSubnetに付与するCIDR |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
セキュリティ・ルール③
ステートレス | チェックします(ON) |
ソースタイプ | CIDR |
ソースCIDR | AD3のSubnetに付与するCIDR |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
セキュリティ・ルール④(Internetへのトラフィック)
ステートレス | チェックしない(OFF) |
ソースタイプ | CIDR |
ソースCIDR | 0.0.0.0/0 |
IPプロトコル | TCP |
ソース・ポート範囲 | All |
宛先ポート範囲 | All |
実装すると下図のようになります。
イングレス・ルールが一覧化されます。次に「エグレス・ルール」を押下してください。
今度は「エグレス・ルール」が一覧化されます。
次はインターネット・ゲートウェイを作成していきます。
5.インターネット・ゲートウェイの作成
インターネットからロードバランサに届くトラフィックは、インターネット・ゲートウェイ経由で通信します。そのためのインターネット・ゲートウェイを作成します。
次に「インターネット・ゲートウェイの作成」を押下します。
それでは値を入力していきましょう。
「インターネット・ゲートウェイの作成」を押下すると、すぐに作成されます。
6.ルート表の作成
次に、作成したインターネット・ゲートウェイをVCNに接続します。
「ルート表」を押下してください。
「ルート表の作成」を押下してください。
値を入力していきます。
「追加のルート・ルール」を入力していきます。
以下のように、すぐに作成されます。
次はサブネットを作成します。「サブネット」を押下してください。
「サブネットの作成」を押下します。
7.ロードバランサ用サブネットの作成
下表の内容で2つのサブネットを作成します(AD1にひとつ、AD2にひとつ。計2つ)
名前 | LB-1 | LB-2 |
サブネット・タイプ | 可用性ドメイン固有 | 可用性ドメイン固有 |
可用性ドメイン | cEop:US-ASHBURN-AD-1 | cEop:US-ASHBURN-AD-2 |
CIDRブロック | 例 XX.X.11.0/XX | 例 XX.X.12.0/XX |
ルート表 | OKE-routetable | OKE-routetable |
サブネットアクセス | パブリック・サブネット | パブリック・サブネット |
DNS解決 | ON | ON |
DNSラベル | 自動生成される値を利用 | 自動生成される値を利用 |
DNSドメイン名 | 自動生成される値を利用 | 自動生成される値を利用 |
DHCPオプション | Default DHCP Options for OKE | Default DHCP Options for OKE |
セキュリティ・リスト | loadbalancers | loadbalancers |
タグ | 利用しない(入力しない) | 利用しない(入力しない) |
サブネット「LB-1」の入力画面を以下に記載します。
こちらはサブネット「LB-2」の入力画面です。
以下のように作成されました。
8.ワーカー・ノード用サブネットの作成
下表の内容で3つのサブネットを作成します(AD1にひとつ、AD2にひとつ、AD3にひとつ。計3つ)
名前 | WORKER-1 | WORKER-2 | WORKER-3 |
サブネット・タイプ | cEop:US-ASHBURN-AD-1 | cEop:US-ASHBURN-AD-2 | cEop:US-ASHBURN-AD-3 |
可用性ドメイン | 例 XX.X.21.0/XX | 例 XX.X.22.0/XX | 例 XX.X.23.0/XX |
CIDRブロック | 例 XX.X.11.0/XX | 例 XX.X.12.0/XX | |
ルート表 | OKE-routetable | OKE-routetable | OKE-routetable |
サブネットアクセス | パブリック・サブネット | パブリック・サブネット | パブリック・サブネット |
DNS解決 | ON | ON | ON |
DNSラベル | 自動生成される値を利用 | 自動生成される値を利用 | 自動生成される値を利用 |
DNSドメイン名 | 自動生成される値を利用 | 自動生成される値を利用 | 自動生成される値を利用 |
DHCPオプション | Default DHCP Options for OKE | Default DHCP Options for OKE | Default DHCP Options for OKE |
セキュリティ・リスト | workers | workers | workers |
タグ | 利用しない(入力しない) | 利用しない(入力しない) | 利用しない(入力しない) |
サブネット「WORKER-1」の入力画面を以下に記載します。
こちらはサブネット「WORKER-2」の入力画面です。
2019年10月にOracle Container Engine for Kubernetesはリージョナル・サブネットに対応しました。
サブネット・タイプ:リージョナルも選択可能です。
こちらで最後になります。サブネット「WORKER-3」の入力画面です。
以下のようになっていれば、完成です。
今回は以上となります。次回は、このネットワーク上にOracle Container Engine for Kubernetesをプロビジョニングしていきます。読んで頂き、ありがとうございました。
※コンパートメントに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Identity/Tasks/managingcompartments.htm
※仮想クラウド・ネットワークに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Network/Concepts/overview.htm
※セキュリティ・リストに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Network/Concepts/securitylists.htm
※インターネット・ゲートウェイに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Network/Tasks/managingIGs.htm
※サブネットに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Network/Tasks/managingVCNs.htm
※Oracle Container Engine for Kubernetes 「ワーカー・ノード、サブネット、セキュリティ・リストの構成」
https://docs.oracle.com/cd/E97706_01/Content/ContEng/Concepts/contengnetworkconfig.htm