クラウドを「知ろう」「使おう」
クラウドを「知ろう」「使おう」

Oracle CloudでIaaSとPaaSをつなげてみよう

TECHブログ Oracle Database OCI-C PSソリューションズ PaaS IaaS Oracle Cloud

目次

  1. Oracle Database Cloud Service(DBCS)とは
  2. IaaSとPaaSをつなげてできること
  3. IaaSとPaaSをつなげるためのOracle Cloud上でのオペレーションをくわしく
  4. おわりに

こんにちは。

PSソリューションズでOracle Cloud関係のお仕事をしているAKです。

 

本TECHブログにも「Oracle Cloud Infrastructure Classic(OCI-C)」の記事が増えてきました。

今回はIaaSのComputeインスタンスとOracle Cloudの「Oracle Database Cloud Service (DBCS)」を連携させてみます。これらは別人のはずなのによく見ると似ている…他人の空似のような存在です。

 

 

Oracle Database Cloud Service(DBCS)とは

Oracle Database Cloud Service(DBCS)はPlatform as a Service (PaaS)の中に含まれるサービスです。データベースをプラットフォームとして提供してくれるサービスで、DBCSのインスタンスを作成するとOracleデータベースがインストールされ、起動済みですぐに接続できるデータベースサーバーが生成されます。

 

OCI-CのComputeインスタンスと同様に、DBCSもクラウドのメリットであるスケールアップを容易に行うことができます。

DBCSのメリットは、データベース運用向けの補助ツールが用意されており、パッチの適用やバックアップなどがOracle CloudのWebコンソールから実施・設定可能なところです。

 

 

IaaSとPaaSをつなげてできること

DBCSはデータベースそのものです。ただし、クラウド上にシステムを構築する際にはデータベースだけではシステムは成り立ちません。IaaSのComputeインスタンスは自由にソフトウェアをインストールすることができるのでDBCSとデータをやりとりするには最適なお相手と言えます。

Oracle Cloudはネットワークやセキュリティコンポーネントを適切に設計することで、クラウド上にセキュアなシステムを構築することができます。DBCSをIaaSと連携させて構築することでDBCS構築完了とともに設計済のセキュリティコンポーネントも一式できあがります。

 

IaaSのネットワークやセキュリティコンポーネント、Computeインスタンスを用いて以下のような簡単なシステムを考えてみます。

 

 

登場するコンポーネントは以下となります。

  • DBCSインスタンス
  • Computeインスタンス
  • IP Network
  • Access Control List
  • Virtual NIC Set
  • Security List

 

DBCSのお相手となるIaaSのComputeインスタンスにはOracle DatabaseのClientをセットアップします。

 

 

IaaSとPaaSをつなげるためのOracle Cloud上でのオペレーションをくわしく

それではさっそく、IaaSのComputeインスタンスとPaaSのDBCSインスタンスがつながる環境を作りましょう。2.と3.の各インスタンス作成はどちらが先でも構いません。

 

1. まずはIaaSのIP Networkを作成する

IaaS(Compute Classic)にてOracle CloudのIP Networkを1つ作成します。
IP Networkを作成する前に、どのサイトに作るかを確認しておきます。

 

 

このサイトにIaaSのComputeインスタンスやPaaSのDBCSインスタンスを作ります。

IP Networkの構築で重要な入力欄は”IP Address Prefix”です。今回作成するComputeインスタンスやDBCSインスタンスはこのIPレンジ内でIPアドレスが採番されます。

 

 

2. PaaSのDBCSのインスタンスを作成する

PaaS(Database Classic)のDBCSインスタンスを作成する「Create Instance」ページを開き、”Region”欄に1.の最初で確認したサイトを指定します。

“Region”欄を指定すると、”IP Network”欄が表示され、そのサイトに存在するIP Networkが選択できるようになります。

 

 

上記ではまだ選択していませんが、1.で作成したIP Networkをここで設定します。
※ もし、上記のようなRegion欄がない場合、Oracle Cloudのデータセンターが未対応であるため、 IaaSとPaaSの連携ができません。

 

 

「Confirmation」のページまで来ました。“IP Network”欄に1.で作成したIP Networkが指定されています。(IP Networkはオブジェクト名に所有者名が含まれてしまうため一部塗り潰しています)

[Create]ボタンをクリックすると構築が開始され、30分ほどでDBCSインスタンスが起動します。

 

 

3. IaaSのComputeインスタンスを作成する

IaaS(Compute Classic)にてComputeインスタンスを作成します。このときに1.の最初で確認したサイトで作業し、1.で作成したIP Networkを使用するように設定します。

 

 

上記はComputeインスタンスのカスタマイズ作成にて、IP Networkを設定する画面です。
カスタマイズ作成の中のNetwork画面にて”Network Options”欄に”IP Network“のチェックを入れることで、上記の画面の表示・設定ができるようになります。

デフォルトでeth0というIP Networkがあるので、[Configure Interface]ボタンをクリックして新しいIP Networkを構築します。まずは、“IP Network”欄に1.で作成したIP Networkを指定します。続いて、”Static IP Address”欄に”IP Network”欄で指定したIP Networkの範囲内のIPアドレスを指定します。この際に入力するIPアドレスをIP範囲の若い値にしないようにしましょう。これは、『PaaSインスタンスは起動順に若いIPアドレスから自動採番していく』という動きがあるためです。

もうひとつ、eth0、eth1ともにvNICsetsに”default”が含まれています。後ほど自作のvNICSetを設定するため、今は[x]をクリックして解除しておいてください。

 

 

Computeインスタンスのカスタマイズ作成を最後まで入力し、”Review”画面まできました。
“IP Network”に1.で作成したものが含まれていることを確認の上、[Create]ボタンをクリックしましょう。構築が開始され、20分ほどでIaaSインスタンスが起動します。

ここでIaaSのインスタンス一覧を確認すると、先ほど作成したIaaSのComputeインスタンスとその前に作成したPaaSのDBCSが並んでいます。実はPaaSもIaaSと同じ基盤上で構築されているため、PaaSインスタンスもIaaSインスタンスとして扱うことができます。IaaSに対して可能なOracle Cloud上の操作の中には、PaaSインスタンスに対しても通用するものが少なからず存在します。

 

 

 

4. IaaSとPaaSを繋ぐためのネットワーク設定を作ろう

実は、この段階ではIaaSのインスタンスにもDBCSにも、外部からアクセスすることはできません。ここまでに作成したネットワーク設定は、Oracle CloudのIP Network上のものが主なためです。更に、IaaSのインスタンスとDBCSのインスタンスもまだ相互に疎通はできません。

ここでは、最小限のネットワーク設定を行い、外部との疎通とインスタンス間の疎通ができるようにします。

まず、ACLを作ります。ACL(Access Control List)はSecurity RuleとVirtual NIC Setを結びつけるものです。

次に、vNICSet(Virtual NIC Set)を作ります。ComputeインスタンスのvNICをこれにまとめておき、セキュリティ設定をまとめて指定するためのグルーピング用コンポーネントです。

最後にSecurity Ruleを作り、アクセス可否を制御するルールを決めます。

今回作成したIaaSインスタンスには用途の違う2つのネットワークがあります。1つはクラウド外のローカル環境からアクセスするためのPublic LAN(eth0)、もうひとつはDBCSとやりとりするためのPrivate LAN(eth1)です。それぞれ、異なるSecurity Ruleを適用するため、ACL、vNICSetは各2つずつ作ります。

Security RuleはInとOutで定義するので、2つのネットワークに2つずつ、計4個作ります。

 

4.1. ACL(Access Control List)を作る

ACLはIaaS(Compute Classic)の”Network”タブにある”IP Network”内から作ることができます。必要な作業は入力画面に”Name”欄を指定するだけです。

 

 

 

ACLの一覧を見ると、既に作成済のACLが存在します。

以下図の「IaaSPaaS-DBCS/db_1/ora_acl_default」というACLは、PaaSのDBCSにRegionとIP Networkを指定したことで自動的に作成されたものです。

 

 

このPaaSによって自動生成されたACLには、Security Ruleを割り当て済みであることも読み取れます。

 

4.2. vNICset(Virtual NIC Set)を作る

vNICsetも”Network”タブにある”IP Network”内から作ります。IaaSのComputeインスタンスには外部向けのvNICと内部のIP Network向けのvNICの2つが生成されています。また、PaaSのDBCSインスタンスにもvNICが1つ存在します。(PaaSのインスタンスはvNICが1つだけという仕様があります)

DBCSインスタンスは外部からアクセスされない構想ですので、これら3つのvNICを外部向け、内部のIP Network向けの2つのvNICsetにまとめます。

 

まずは内部のIP Network向けのvNICsetを作ります。”vNICs”欄にIaaSのIP Network側のvNICとDBCSのvNICが含まれています。

 

 

2つ目のvNICsetは外部向けです。IaaSのvNICのみ含めます。

 

 

vNICsetは以下のようになりました。ここにもDBCSによって自動生成されたvNICsetが1つあります。

 

 

4.3. Security Listの作成

Security Listも”Network”タブから作ります。Security Listの構築が終わればネットワーク関連の設定は完了です。

 

 

ACLの項目にて、クラウド外のローカル環境からアクセスするためのPublic LAN向けのACLとDBCSとやりとりするためのPrivate LAN向けのACLを作成しました。これらそれぞれのACLにIngress、EgressのSecurity Listを作成します。
今回はEgress、Ingressともに細かい制御はしないものを作ります。

IaaSのComputeインスタンスとPaaSのDBCSインスタンスを接続する準備ができました。

Security ListもDBCSによる自動生成のものがいくつも存在します。たとえば、Listenerポートの1521に関する定義は「IaaSPaaS-DBCS/db_1/ora_p2_dblistener」に含まれ、デフォルトの無効化状態から有効化することでDBCSへのPublic-Internetからの接続が許容されます。(今回は、DBCSは外部公開しないので、未設定)

 

 

5. 接続確認してみよう

IaaSのComputeインスタンスにOracle Database Client をセットアップし、SQL*Plusを用いてPaaSのDBCSに接続できることを確認しました。

SQL*PlusからDBCSに接続するには接続文字列が必要です。必要な情報はDBCSのInstance Overviewページから確認できます。

 

 

JDBC Thin Clientを用いて接続する場合は、”Connect String”の項目が有用です。SQL*Plusから接続文字列を用いて接続する場合は”Resources”内に記載された情報が有用となります。

 

 

上記のようにIaaSのComputeインスタンスからPaaSのDBCSインスタンスに接続できました。

 

 

おわりに

IaaSのComputeインスタンスからPaaSのDBCSインスタンスを連携させるという、今回の目的は無事に達成できました。

単純化のためComputeインスタンスが1台であったり、セキュリティ関連をまとめて設定していたりと、このまま運用するには不安の残る設定ではあります。

しかし、まずは動く・つながる設定から入り、徐々に詰めていくのもクラウドならではの構築設計方法です。マニュアルや各種公開情報を参考にいろいろと設計を研究してみてください。