App Service(Azure) + Autonomous Database(Oracle Cloud) やってみよう
2019-09-30
azblob://2022/11/11/eyecatch/2019-09-30-azure-oraclecloud-using-appservice-000.jpg

こんにちは。Marketing & Salesの大野です。今回はちょっとだけTechな内容にしていきたいと思います。

先日行われたOracle OpenWorld 2019でAutonomous Database/Oracle Cloud Infrastructureを継続して無償利用できる「Always Free」サービスの提供というアナウンスがされました。そして、Microsoft Azureとの相互接続:現在、北米東海岸とロンドン・リージョンでOCIとAzureは相互接続されていますが、世界中で加速していくとのことです。

全社の無償利用は使ってみない手はないということで、今回はOracle Cloudのアカウント作成からAutonomous Databaseの作成、AzureのApp Serviceから接続というところをクイックにやってみたいと思います。

アカウント作成や、Autonomous Databaseの説明は結構情報がすでにありますので、ライトに紹介します。

まずは、ここからアカウントの作成です。Always Freeと30-day Free Trialができますよ~と謳っていますね。

アカウント作成とAutonomous Databaseの作成で注意・ポイントになりそうなのは3点。

  1. 本人確認のための携帯SMS送信
  2. パスワードの制約
  3. クライアント資格証明書(ウォレット)のダウンロード

1.本人確認のための携帯SMS送信+81からの発信となりますので、頭0なくしての携帯番号で送信となりますが、なぜか私の場合docomoの携帯には何度やっても送られてきませんでした。softbankの携帯番号に変えたらあっさり送信されて本人確認できました。ここでかなり時間とられてしまいました。

2.パスワードの制約9つの条件をみたしたパスワードを設定する必要があります。

3.クライアント資格証明書(ウォレット)のダウンロードアカウント作成後に、Autonomous Databaseを作成します。Database作成後にこのDatabaseに接続するクライアントにウォレットをダウンロードする必要があります。ここでもまたウォレットのパスワードを設定することになります。クライアント資格証明書のZipファイル形式でダウンロードするのですが、この中にewalletとsqlnet.ora、tnsnames.oraが一緒に含まれています。

ここまでできれば、いよいよAppServiceからAutonomous Databaseへの接続してデータを表示させるアプリケーションの作成です。アプリの目的として、Autonomous Databaseに接続してデータベースの内容が確認できれば良いので、ざっくりとした動作は以下の通りです。

  • コネクションオープン
  • “select table_name from all_tables”でテーブル一覧を取得
  • 結果セットを画面に表示

AppServiceで動作させるための作業ポイントは3つ

  1. NugetからOracle.ManagedDataAccessをインストール
  2. 接続文字列のウォレットパス編集
  3. App Serviceのアプリケーション設定を編集(これが一番のポイント)

1.NugetからOracle.ManagedDataAccessをインストールこれはASP.NET、ASP.NET Coreでもそれぞれオラクルに接続するためにManagedDataAccessをインストールします。

2.接続文字列のウォレットパス編集接続文字列にあるSECURITYにウォレットのパスを設定します。今回は実行ファイルと同じ場所に配置して、動作させるようにしたので、下記のように記述しています。

(SECURITY = (MY_WALLET_DIRECTORY =.))

3.App Serviceのアプリケーション設定を編集

これがApp Serviceにデプロイする上で一番のポイントになります。アプリケーション設定に“WEBSITE_LOAD_USER_PROFILE”を追加し値に“1”をセットします。これがAzure上でOracle ウォレットを利用する設定となります。これが入っている入っていないでoracleへの接続ができるできないが変わります。

とういわけでアプリケーションをビルドしてAzureにデプロイして動作を確認してみます。

無事テーブル一覧が表示されています。ちゃんとApp Service上で動作していることもアドレスから確認できます。

まとめ

一番のポイントはウォレットの扱いにつきます。ここさえおさえれば、プログラムそのものはなんら従来通りです。Freeプランで利用できるスペックは非常に低いですが、試しに利用するには便利です。アプリケーションレベルでの利用は確認できたので、次は、相互接続にチャレンジしてみたいと思います。