16
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Oracle Database Service for Azure (ODSA)でBase Databaseを構築しAzureからOCIに接続する

Last updated at Posted at 2022-10-17

はじめに

Oracle Database Service for Azure (ODSA)構築からAzureとOCIのマルチクラウド間疎通を実装したので手順と結果をまとめます。

事前に構築手順を確認済の方は『構築-ODSAポータルからOCIリソース作成』からご参照ください!

作成したODSA構成

AzureADにインスタンスを作成し、そこからOCIのBaseDBに接続する構成を作成します!

以下は手動で作成しておきます。
Azureのテナント、Vnet、インスタンス、OCIのテナント

以下はODSAが自動で作成します。
OCIのコンパートメント、VCN、DRG、BaseDB、ODSA回線(Azure Interconnect+FastConnect)

image.png

事前準備①-ODSAポータルへのログイン確認

事前に作成済のアカウントでODSAポータルにログインできることを確認しておきます。
https://console.multicloud.oracle.com/azure

ここでAzureのアカウントとOCIのアカウントを紐づけるアカウントリンクを構築します。
手順はページ上部のドキュメント、もしくはWebinerスライドをご参照ください。

OCI側のユーザーはテナント管理者の権限が必要になります。
例)allow group 〇〇group to manage all-resources in tenancy

事前準備②-Azureリソースの作成

データベースを作成する前に、必要となるAzureリソースを作成しておきます。
最低限必要なのは、リソースグループ と VNET(仮想ネットワーク) です。

リソースグループ
Azureのサブスクリプションの下に紐づく、リソースをグルーピングしたもの。リソース作成時には必ず一つリソースグループを指定する必要がある。ライフサイクルが同じリソースを同一のリソースグループ上にまとめたりする。
VNET
Azure上で論理的に分離したプライベートなネットワーク。OCIだとVCN(Virtual Cloud Network)に相当する。

手順はこちらのQiitaをご参照ください。
事前にAzureリソースの作成

Azureで作成したリソースグループ名はそのままOCIのコンパートメント名になります。

構築-ODSAポータルからOCIリソース作成

ODSAポータルでOCI上のデータベースを構築します。
今回はBase Database Enterprise Edition 19c を選択しました。

ODSAポータルより構築をリクエストするとODSAが自動でOCI側のリソース(VCN、サブネット、DRGなど)を作成し、
AzureのVnetとOCIのVCNを自動でNetwork Linkしてくれます。
Network Link後OCIにてデータベースの構築が始まります。

1 ODSAポータルにログインしOCIに作成するデータベースサービスを選択選択します。今回はBase Databaseを選択しました。
image.png

2 Azureで事前に作成したリソースグループとBase Databaseのインスタンス名を指定します。
 ・Resource group:Azureで作成したリソースグループを選択
 ・Name:任意の名前を入力
image.png

3 Base Databaseの設定を行います。
 ・Shape Selection:Base Databaseを動かすシェイプを選択
 ・Total node count:ノード数を選択(今回RACではないので1)
 ・Available data storage (GB):ストレージサイズを選択
 ・Software edition:利用するエディションを選択
 ・License type:サブスクリプション or BYOLを選択

image.png

 ・Database version:Oracle Databaseのソフトウェアバージョンを選択
 ・Database name:任意のデータベース名を入力
 ・Pluggable database name:任意のPDB名を入力
 ・Character set:文字セットを指定
 ・National character set:各国語キャラクタ・セットを指定

image.png

4 NWの設定を行います。
 ・Hostname prefix:任意のプレフィックスを入力
 ・Virtual network:Azureで作成したVnet名を選択
 ・OCI CIDR:OCIで作成するVCNのCIDER範囲をここで入力
image.png

5 セキュリティ設定を行います。
 ・SSH public key source:新規作成 or 鍵持ち込み
 ・Password:任意のPWを入力
 ・Confirm password:PWの確認

image.png

「大文字、小文字、特殊文字、数字をそれぞれ2つずつ」が要件です。

6 Base Databaseの自動バックアップ設定を行います。今回は自動バックアップなしで作成します。
image.png

7 タグ付けを行います。今回はタグ無しで作成します。
image.png

8 設定項目をODSAが検証し、利用者は入力内容に間違いがないかレビューします。問題なければページ下部のCreateを押下します。
 ・レビュー画面①
image.png
 ・レビュー画面②
image.png

9 Generate Key Pairを選択した場合はCreate押下後に秘密鍵をDLします。
image.png

10 リクエストが成功するとNotificationsに通知され、デプロイの進捗がキューに入ります。
image.png

image.png

11 network linkが進捗するとOCI側のリソース作成が始まります。コンパートメントとVCNができていることがアカウントリンクされているOCIテナント上で確認できます。
image.png

AzureのリソースグループとOCIのコンパートメントが同じ名前で作成されていること
OCICIDERで指定したCIDERでVCNが作成されていることが確認できます。

また、VCNの概要を見てみると自動でサブネットが構築され、ODSAで利用されるDRGなどのリソースがアタッチされていることが確認できます。

image.png

12 Network Link が完了すると続いてBase Databaseの構築が開始されます。
  Network Linkの所要時間は20分程度でした。
image.png

OCIコンソール上でも作成されたコンパートメント配下でBase Databaseの作成が行われていることが確認できます。

image.png

13 Base Databaseの作成が完了するとODSAの構築が完了です。
Base Database構築の所要時間は70分程度でした。
image.png

おまけ①
 構築が完了するとODSAポータル上で作成したBase Databaseの概要が確認できたりしますます。
 ここではデータベースの起動・停止・バックアップ取得設定などの管理などが可能です。
image.png

おまけ②
 OCI側のAuditログを確認してみると、ODSAで自動生成したリソース群はリソースマネージャーの機能を使って構築されていることがわかります。
 リソースマネージャーを確認するとちゃんとスタックやログが残っています。
 万が一ODSA構築時にエラーが発生した場合はこちらを参照すると情報が得られる可能性がありますよ。

image.png

ご参考までにDRGのサービスリミットに引っ掛かりODSAの構築が失敗したときのスタックのログです。
image.png

※入力内容の解説については@tkonishi さんのQiitaにも詳しく記載されていますのでご参照ください。
ODSAポータルからBase Databaseの作成

接続準備-Azureのインスタンスを作成しOracle Clientをインストール

1 Azureにインスタンスを作成します。
 インスタンス作成手順は割愛させていただきます。
image.png

2 AzureにOracle Clientをインストールします。
 今回利用したコマンドはこちら
 こちらも手順詳細は割愛させていただきます。

wget https://download.oracle.com/otn_software/linux/instantclient/1916000/oracle-instantclient19.16-basic-19.16.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/1916000/oracle-instantclient19.16-sqlplus-19.16.0.0.0-1.x86_64.rpm

sudo yum install oracle-instantclient19.16-basic-19.16.0.0.0-1.x86_64.rpm
sudo yum install oracle-instantclient19.16-sqlplus-19.16.0.0.0-1.x86_64.rpm

接続-AzureのインスタンスからOCIのDatabaseにリモート接続!

1 ODSAポータルのPDB管理のConnectionより接続文字列を参照し(超便利)
 
image.png

tnsnames.oraを作成。

odsajpdb =
(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=xx.x.xx.xxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=p_odsajpdb.customersubnet1.cvcn.oraclevcn.com)))

2 インストールしたOracle Client(SQLPlus)を使って接続!!

image.png

接続できました、成功です。
ODSAポータル上のNetwork Link構築後特にNW設定などの対応なしで疎通できました。

ODSAポータルで確認できる接続文字列か、
ここで作成したtnsnames.oraを使えばアプリケーションからも簡単に接続できますね。

まとめ

コンソール作業のみでNW設定からOCI PaaSDBの作成までやってくれるのは非常に便利ですね!
ODSA使えば煩雑な構築作業から解放されて構築期間がぐっと短縮されるのでAzure⇔OCI間のマルチクラウドが捗りそうです。
(本手順全体の所要時間はキャプチャをとりながら2時間程度で完了しました。)
作業自体は簡単でしたので是非参考にしていただければと思います。

今回作ったデータベースはまだ空っぽで疎通までに留まっていますがこれからデモデータ入れて実際にAzureからテーブル操作していってみたいと思います。

参考文献

16
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?