Oracle Analytics Cloud に関するFAQ

本ブログは、[オラクル・クラウドの個人ブログ](https://qiita.com/letian/items/10152a4fec813c1b7d98)の1つです。

# 初めに
Oracle Analytics Cloud（OAC）を利用する中で、「一時停止中の課金はどうなるのか？」「定時に起動・停止させる方法は？」「プライベート・サブネット内のOACへのアクセス方法は？」など、多くの疑問が生じることと思います。本ブログでは、これらのよくある質問に対し、具体的な回答をまとめています。OACの効果的な活用と運用の参考になれば幸いです。

# OACに関するFAQ（よくある質問）
__目次__
- [課金 (非常に重要)](#課金-非常に重要)
- [起動停止](#起動停止)
- [接続方法](#接続方法)
- [エディション](#エディション)
- [IDCS（認証と権限）関連](#idcs認証と権限関連)
- [スナップショットの作成](#スナップショットの作成)

## 課金 (非常に重要)
__質問-1__: OACインスタンスは一時停止の場合、課金が発生しますか？
__回答__：OACインスタンスを一時停止しても、課金が完全に停止するわけではありません。<strong>通常の15%の課金</strong>が<strong>引き続き発生</strong>します。再開すると、通常の課金に戻ります。課金を完全に停止したい場合は、OACインスタンスを削除する必要があります。

:::note warn
一時停止すれば課金が発生しないと思っている方が多いため、ご注意ください!
:::

MOSドキュメント（[Doc ID 2934259.1]()）の記載内容の抜粋：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/2432befc-6f49-ca55-1b11-ecba452642d5.png)

## 起動停止
__質問-2__: OACインスタンスを定時に起動・停止させることは可能ですか？
__回答__：<strong>可能</strong>です。夜間や土日祝日にOACインスタンスを使用しない場合、コスト削減のために停止することをお勧めします。リソース・スケジューラはOACを対応していませんが、<strong>OCI-CLI</strong>を使用すれば簡単に実現できます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/a3c8893d-7025-45d8-8753-14a7c03c61ee.png", width="400">

__ステップ__
1. 管理サーバにOCI-CLIをインストールして、構成ファイルを設定する。
2. 起動・停止用のスクリプトを作成する。（以下参考例です。実際の運用環境では、状態チェック処理を追加してください。）
OACの<strong>一時停止</strong>：oci analytics analytics-instance <font color=blue>stop</font> --analytics-instance-id \<Analytics_Instance_OCID>  
OACの<strong>再開</strong>：oci analytics analytics-instance <font color=blue>start</font> --analytics-instance-id \<Analytics_Instance_OCID>  
3. 管理サーバから定時にスクリプトを実行する
<strong>Linux OS</strong>の場合：<strong>crontab</strong>を利用
<strong>Windows OS</strong>の場合、タスク・スケジューラを利用

Linuxの実施例： 毎日18時（OSのタイムゾーン）に自動停止スクリプトを呼び出す設定を行う。
```bash
[opc@linux8 ~]$ crontab -l
00 18 * * * /home/opc/shell/oac_auto_stop.sh
```
※、OCI-CLIを実行する管理サーバは24時間稼働している必要がある。

Autonomous DBのようなネイティブの自動起動停止機能があれば便利ですね。

## 接続方法
__質問-3__: プライベート・サブネットに配置されるOACにアクセスするために、何か方法がありますか？
__回答__：いくつかの方法があり、それぞれに特徴があります。状況に応じて適切な方法を選択しましょう。
- 方法-1: <strong>同VCN内の踏み台サーバ</strong>（Computeインスタンス）を経由してOACにアクセス。
特徴：シンプルで一般的な方法である。
- 方法-2: 踏み台サーバ（Linux）を経由し、<strong>SSHポート転送</strong>でOACにアクセス。
特徴：方法-1に比べ手間が少なく、踏み台サーバをLinuxにすることでコスト削減が可能。
- 方法-3: OCI <strong>Bastionサービス</strong>を利用。
特徴：踏み台サーバを立てる必要がなく、セッションの最大存続時間は3時間。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/a648a927-0431-e92d-5f40-f8e75410bd60.png)
- 方法-4: ロードバランサー（<strong>LB</strong>）またはネットワーク・ロードバランサー（<strong>NLB</strong>）を経由してアクセス。
特徴：踏み台サーバを立てる必要がなく、バックエンドをオフラインに切り替えることもできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/098b2de9-81d5-15b2-fb43-460f81154227.png)
- 方法-5: <strong>IPSec VPN</strong>、或いは<strong>Fastconnect</strong>を利用。
特徴：プライベート通信で接続する。

方法-3の詳細について、次の記事をご参照ください。
[OCI Bastion経由でプライベート・サブネット内のOracle Analytics Cloudに接続](https://qiita.com/letian/items/5370c996e91badd5b240)

方法-4の詳細について、次の記事をご参照ください。
[ネットワーク・ロード・バランサ (NLB) の経由でプライベート・サブネット内の Oracle Analytics Cloud に接続](https://qiita.com/letian/items/d309aae7541510ede965)

__質問-4__: パブリック・タイプのOACから、プライベートサブネット内のBase DB/Autonomous DBインスタンスに接続できますか？
__回答__：可能です。使用しているOACのエディションによって方法が異なります。
- <strong>Enterprise Edition</strong>: 
  - Step-1) OCIコンソールから、<strong>PAC</strong> (Private Access Channel)を作成し、接続先のホスト名（DNS）をプライベートソースとして追加する。
  - Step-2) OAC管理コンソールから、ターゲットDBへの接続をPAC経由で作成する。
- <strong>Professional Edition</strong>: 
この場合、PACを利用できないため、<strong>データ・ゲートウェイ</strong>を利用する必要がある。
  - Step-1) DBインスタンスと同じサブネットに、Computeインスタンスをを作成する
  - Step-2) Computeインスタンスにデータ・ゲートウェイをインストールする。
  - Step-3) OACとデータ・ゲートウェイ・サーバの間の接続を確立する。
  - Step-4) OAC管理コンソールから、ターゲットDBへの接続をデータ・ゲートウェイ経由で作成する。

__質問-5__ OACがプライベートサブネットに配置されている場合、<strong>同一サブネット内</strong>のOracle Database/Autunomous DBへのアクセスにおいても、Private Access Channel(PAC)またはデータゲートウェイの経由は必須ですか？

__回答__ はい。たとえ同一サブネット内のリソースへのアクセスにおいても、PACまたはデータゲートウェイの経由が必須となります。

## エディション
__質問-6__ OACにはEnterprise EditionとProfessional Editionの2つのエディションがあり、機能面ではどのような違いがありますか？
__回答__ 機能面の比較は次となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/969cae81-d69b-4e35-8b0a-ee635917cf19.png)

詳しくは[ドキュメント](https://docs.oracle.com/en/cloud/paas/analytics-cloud/acsgs/editions-enterprise-and-professional.html)をご覧ください。

※、日本語版は機械翻訳によって分かりづらい部分があり、できるだけ英語版をご覧ください。

__質問-7__ 現在、Oracle Analytics Cloud（OAC）の「Professional Edition」を利用していますが、「Enterprise Edition」へアップグレードしたいと考えています。アップグレード方法を教えてください。
__回答__ OCIやOACコンソールには、エディションのアップデート機能がありません。<strong>新規にOACインスタンスを作成</strong>し、エディションタイプを「Enterprise」に選択してください。その後、既存のインスタンスから新しいインスタンスへコンテンツを<strong>移行</strong>する必要があります。

## IDCS（認証と権限）関連
__質問-8__：OACインスタンスの作成をスクリプトで自動化したいのですが、アクセストークンは必須ですか？もし必須であれば、そのトークンを作成する方法は？
__回答__：CLI/REST API、またはTerraFormを使用してOACインスタンスを作成する場合、アクセストークンが<font color=blue>必須</font>です。トークンの作成方法については、次の記事をご参照ください。
[CLI/APIでOracle Analytics Cloudインスタンスを作成するために、アクセストークンを生成する方法](https://qiita.com/letian/items/de470f3e5fef1229d663)

__質問-9__: OACインスタンスの詳細画面から、「分析ホームページ」をクリックすると、権限不足のメッセージが表示され、アクセスできません。これを解決する方法は？
__回答__：デフォルトでは、インスタンス作成者のみが管理者権限を持っています。他のユーザーには権限が付与されていないため、アクセスできません。権限を付与する方法については、次の記事をご参照ください。
[OACの分析ホームページが権限不足で開けない場合の解決方法](https://qiita.com/letian/items/5b7a513bef210ccf0f77)

## スナップショットの作成
__質問-10__: OACスナップショットの作成を自動化したいですが、OCI CLIを利用することは可能ですか？  
__回答__: OCI CLIでは、OACインスタンスの作成や削除、PACの作成・削除などの操作は可能ですが、スナップショットの作成は対応していません。スナップショットを作成する場合、<strong>REST API</strong>をご利用ください。

__質問-11__: REST APIでスナップショットを作成するのに、アクセストークンの発行は必須ですか？
__回答__: <font color=blue>必須</font>です。CURLコマンドでトークンを取得することができます。

__質問-12__:トークンを発行するために、機密アプリケーションの作成は必須ですか？  
__回答__: OACインスタンスがまだ作成されていない場合は、トークンを発行するために機密アプリケーションを作成する必要があります。しかし、OACインスタンスが既に存在する場合は、<strong>既存</strong>のアプリケーションを<strong>利用</strong>してトークンを発行できます。その場合、新たに機密アプリケーションを作成する必要はありません。

__質問-13__: 発行されたトークンの有効期限は<font color=blue>100秒</font>ですが、変更できますか？
__回答__：有効期間は<font color=blue>変更可能</font>です。変更方法については次の画面をご参照ください。

アプリケーション詳細 → OAuth構成 → OAuth構成の編集
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/7df64b65-32c1-73ea-53ba-cf89273d769c.png)

__質問-14__: インターネットを経由せずに、スナップショットをバケットに出力できますか？
__回答__: 可能です。<strong>サービス・ゲートウェイ</strong>(SGW)を使用すると、OCI内部の通信でオブジェクト・ストレージにアクセスできます。SGWのサービス・タイプは`OCI <Region_ID> Object Storage`で十分です。詳細な作成手順については、次の記事をご参照ください。
[REST APIでOACスナップショットを作成する方法 ](https://qiita.com/letian/items/2416ae1bc6282c15243e)

----
__参考資料__
[OCI Public PaaS/IaaS - What happens to the billing when you pause an Oracle Cloud Analytics instance (Doc ID 2934259.1)](https://support.oracle.com/knowledge/Oracle%20Cloud/2934259_1.html)