きそくただしいせいかつ

日々の生活のペースセッター

オラクルクラウドをラクに使いたい - Autonomous Data Warehouse (ADW) を CLI から作って、大きくする

タイトルのとおりなのですが、 Autonomous Data Warehouse (ADW) という Exadata が1時間単位で使えるクラウドがありまして(雑な説明)、こいつを作る時にもちろん画面から作っても簡単なのですが、記録が残る CLI から作ったほうがいい場合もあると思うので、作ります。 Autonomous Data Warehouse 自体は OCI (Oracle Cloud Infrastructure) に統合されているので、 OCI CLI から作成が可能です。

今回は、以下の記事の 3-4 まで設定ができている前提で、その後の作成操作だけやってみます。
community.oracle.com

インスタンスの作成

インスタンスの作成は非常に簡単で、 Oracle の知識自体も必要ないレベルなのですが、以下のコマンド一発です。

$ oci db autonomous-data-warehouse create 

オプションは以下のとおりです。

【必須のオプション】

  • db-name : DB 名
  • cpu-core-count : CPU 数、最小 1 OCPU(1物理コア)
  • data-storage-size-in-tbs : ストレージ容量、最小 1TB
  • admin-password (管理用パスワード)

【任意のオプションで設定しておいたほうがよさそうなもの】

  • license-model : ライセンスモデル、指定しないと BYOL (保有ライセンスのクラウドへの持ち込み)になるので、新しく ADW を使う場合は指定したほうがいいです
  • display-name : インスタンスの表示名、指定しないと自動生成されて長いので指定したほうがいいです

実際やってみると以下のような感じです。

[opc@kokane-ol7-01 .oci]$ oci db autonomous-data-warehouse create --db-name "adwcli01" --cpu-core-count 1 --data-storage-size-in-tbs 1 --admin-password "XXXXXXXXXXXX" --license-model "LICENSE_INCLUDED" --display-name "adwcli01"
{
  "data": {
    "compartment-id": "ocid1.compartment.oc1..aaaaaaaacdxn6dygelp7ckmxkjkp5ofpjirlay5jbtaizds3hwevcikbl3ua",
    "connection-strings": null,
    "cpu-core-count": 1,
    "data-storage-size-in-tbs": 1,
    "db-name": "adwcli01",
    "db-version": null,
    "defined-tags": {},
    "display-name": "adwcli01",
    "freeform-tags": {},
    "id": "ocid1.autonomousdwdatabase.oc1.iad.abuwcljtemt6oxmbkpgzyqstizl6oihunejtdmm7sjm2voay5x7g55nl2vrq",
    "license-model": "LICENSE_INCLUDED",
    "lifecycle-details": null,
    "lifecycle-state": "PROVISIONING",
    "service-console-url": null,
    "time-created": "2019-01-16T07:27:08.872000+00:00"
  },
  "etag": "67ea59d6"
}

暫く待つと以下のコマンドで、接続名やコンソールの URL が確認できる用になります。

[opc@kokane-ol7-01 .oci]$ oci db autonomous-data-warehouse list
{
  "data": [
    {
      "compartment-id": "ocid1.compartment.oc1..aaaaaaaacdxn6dygelp7ckmxkjkp5ofpjirlay5jbtaizds3hwevcikbl3ua",
      "connection-strings": {
        "all-connection-strings": {
          "HIGH": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_high.adwc.oraclecloud.com",
          "LOW": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_low.adwc.oraclecloud.com",
          "MEDIUM": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_medium.adwc.oraclecloud.com"
        },
        "high": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_high.adwc.oraclecloud.com",
        "low": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_low.adwc.oraclecloud.com",
        "medium": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_medium.adwc.oraclecloud.com"
      },
      "cpu-core-count": 1,
      "data-storage-size-in-tbs": 1,
      "db-name": "adwcli01",
      "db-version": "18.4.0.0",
      "defined-tags": {},
      "display-name": "adwcli01",
      "freeform-tags": {},
      "id": "ocid1.autonomousdwdatabase.oc1.iad.abuwcljtemt6oxmbkpgzyqstizl6oihunejtdmm7sjm2voay5x7g55nl2vrq",
      "license-model": "LICENSE_INCLUDED",
      "lifecycle-details": null,
      "lifecycle-state": "AVAILABLE",
      "service-console-url": "https://adb.us-ashburn-1.oraclecloud.com/console/index.html?tenant_name=OCID1.TENANCY.OC1..AAAAAAAA3MB7WRCY2LS3U3JSY2SOQ5CK3LC3Q4MCZITPDAYMBUAZC5TKGUCA&database_name=ADWCLI01&service_type=ADW",
      "time-created": "2019-01-16T07:27:08.872000+00:00"
    }
  ]
}

画面上でも確認できるようになりました。

f:id:k_kane:20190116165005p:plain
スケール前

ADW をスケールアップする

次に作った ADW をスケールアップしてみたいと思います。再び、以下のコマンドで一発です。

$ oci db autonomous-data-warehouse update

オプションは以下のとおりです。
【必須のオプション】

  • autonomous-data-warehouse-id : 先程作った Autonomous Data Warehouse の OCID を指定します (list コマンドで確認できます)
  • cpu-core-count : CPU 数、最小 1 OCPU(1物理コア)

実際やってみると以下のような感じです。

[opc@kokane-ol7-01 .oci]$ oci db autonomous-data-warehouse update --autonomous-data-warehouse-id "ocid1.autonomousdwdatabase.oc1.iad.abuwcljtemt6oxmbkpgzyqstizl
6oihunejtdmm7sjm2voay5x7g55nl2vrq" --cpu-core-count 2
{
  "data": {
    "compartment-id": "ocid1.compartment.oc1..aaaaaaaacdxn6dygelp7ckmxkjkp5ofpjirlay5jbtaizds3hwevcikbl3ua",
    "connection-strings": {
      "all-connection-strings": {
        "HIGH": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_high.adwc.oraclecloud.com",
        "LOW": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_low.adwc.oraclecloud.com",
        "MEDIUM": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_medium.adwc.oraclecloud.com"
      },
      "high": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_high.adwc.oraclecloud.com",
      "low": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_low.adwc.oraclecloud.com",
      "medium": "adb.us-ashburn-1.oraclecloud.com:1522/p36dah33ehxmnrf_adwcli01_medium.adwc.oraclecloud.com"
    },
    "cpu-core-count": 1,
    "data-storage-size-in-tbs": 1,
    "db-name": "adwcli01",
    "db-version": "18.4.0.0",
    "defined-tags": {},
    "display-name": "adwcli01",
    "freeform-tags": {},
    "id": "ocid1.autonomousdwdatabase.oc1.iad.abuwcljtemt6oxmbkpgzyqstizl6oihunejtdmm7sjm2voay5x7g55nl2vrq",
    "license-model": "LICENSE_INCLUDED",
    "lifecycle-details": null,
    "lifecycle-state": "SCALE_IN_PROGRESS",
    "service-console-url": "https://adb.us-ashburn-1.oraclecloud.com/console/index.html?tenant_name=OCID1.TENANCY.OC1..AAAAAAAA3MB7WRCY2LS3U3JSY2SOQ5CK3LC3Q4MCZITPDAYMBUAZC5TKGUCA&database_name=ADWCLI01&service_type=ADW",
    "time-created": "2019-01-16T07:27:08.872000+00:00"
  },
  "etag": "243aef71"
}

おおよそ1、2分でスケールアップされます。同じ構文 (オプション違い)でストレージのスケールアップも可能です。 (OCI CLI は比較的、足りないオプションがあると適切に返してくれるので、簡単です(ただ、事前にドキュメント確認したほうがベターですが、、、))

画面上でもスケールアップが確認できました。

f:id:k_kane:20190116165010p:plain
スケール後

まとめ

OCI CLI はコマンドもわかりやすいのでラクだなーというのと、 ADW はあんまり設定する項目がないので、ラクだなーと思いました。同じ方法で Autonomous Transaction Processing (Exadata (OLTP 用)が1時間単位で使える(雑な説明))も利用可能で、autonomous-data-warehouse が autonomous-database に変わります。OCI CLI のリファレンスは以下です。
Oracle Cloud Infrastructure CLI Command Reference — OCI CLI Command Reference 2.4.41 documentation

DWH みたいな用途ですと、バッチの前だけスケールして、その後落としたい、みたいな要件があるかと思うので、そんなときには CLI でジョブの頭に実装しておければ、なるべく安く使えるのかなと思いました。また、英語の blog 記事ですが、スケジューリング含めたサンプルスクリプトもあります。
Automatic (Scheduled) Scaling for ADW and ATP – Oracle Cloud Blog