【OCI】Oracle Cloudアカウントが停止された話

# この記事に書いてあること
- Oracle Cloudアカウントが停止されたときに取れる行動
- 私が復旧した手順

アカウントが停止されたことに気づく〜復旧の流れを書いています。同様の事態になったときの参考になれば幸いです。

私のOracleアカウント・サポート周りに対する理解が非常に怪しいので、一つの解決事例として何かを読み取ってもらえたらと思います。

# 概要
### 環境
- Free Tierアカウント
- Always Free対象サービスしか利用していない
- Japan Eastリージョン
- 主な利用サービス
    * Compute > Instances
    * Networking > IP Management
### 利用状況
Always Freeで使える範囲内で、Computeインスタンスを個人的に色々使う仮想サーバーとして利用していました。外部公開用にパブリックIPを2つ取得しており(Always Free範囲)、それ以外のサービスは能動的に使っていません。これら以外で利用していたのはBoot VolumeなどComputeインスタンスを建てるのに付随するサービスだけです。

- Ampere A1 インスタンス①（2OCPU, 12GB Memory）
主に所属コミュニティの管理に使うDiscord botを稼働。時々機能を増やしたり変更したりしていたものの、直前に大きな変更を加えたりはしていません。
- Ampere A1 インスタンス②（2OCPU, 12GB Memory）
主に仲間内のMinecraftサーバーに利用しており、半年以上前からほとんど同環境で稼働。
- VM.Standard.E2.1.Microインスタンス①（1OCPU, 1GB Memory）
OpenVPN Access Serverが稼働。主に自宅サーバーへ外部からアクセスするために使っていました。最近は使っていませんでした。
- VM.Standard.E2.1.Microインスタンス②（1OCPU, 1GB Memory）
Ampereが使えるようになる前に汎用サーバーとして稼働していました。最近は使っていませんでした。

# 起きたこと
時系列順にまとめました。

### サーバーにアクセスできなくなる
2/29まで所属コミュニティで合宿が行われており、検温報告をDiscord botを利用して行なっていました。3/1午後、検温報告用のメッセージが自動で投稿されていないことに気づき、SSHでサーバーにアクセスしましたが、アクセスできず。以前にサーバーが固まって強制再起動したことがあったので、その可能性を考えてコンソールにアクセスしました。

### あらゆるサービスにアクセスできない
次のようなメッセージが出てしまい、各サービスにアクセスできませんでした。検索用に日本語版が探し出せたものは日本語でも書いておきます。
| 表示箇所 | メッセージ |
|:-:|:-:|
| Compute > Instances | You don’t have permission to view these resources in this compartment. Try another compartment, or contact your administrator for help. |
| コンピュート > インスタンス | このコンパートメント内のこれらのリソースを表示する権限がありません。別のコンパートメントを試すか、管理者に連絡してください。 |
| Regions | Failed to load domain replicated regions |
| Tenancy details | Authorization failed or requested resource not found. |

Tenancy（テナント）の状態が「INACTIVE」になっっており、アカウントが停止されていることがわかります。

個人アカウントにも関わらず、「権限がない」と言う理由であらゆるサービスにアクセスできません。アカウントが停止された際は
> アカウントが一時停止されました。詳細は、My Oracle Supportにお問い合わせください。

とコンソール上部に表示されるという情報もありますが[^1]、私の場合は
> Free Tierアカウントを使用しています。すべてのサービスとリソースにアクセスするには、有料アカウントにアップグレードしてください。

のままでした。Free Tierアカウントだからかもしれませんし、まだ停止審査中だったのかもしれません。

状況としては[Cloud Customer Connectでの質問](https://community.oracle.com/customerconnect/discussion/731229/several-errors-with-the-oracle-account, "several errors with the oracle account - Cloud Customer Connect")（回答を見るのにアカウント作成が必要）にある通りです。有料アカウントにアップグレードしようにもアップグレードページにアクセスできないので、望みが薄いながらも、Free Tierアカウントのまま問い合わせによって解決を望むことにしました。

## 問い合わせ
> (中略) raise request with support.oracle.com with the support identifier generated during account creation. 

らしいので、アカウントを作ったくらいの時に来たメールを探って問い合わせを行うことにしました。

<details><summary>Chat with Support（解決せず）</summary>

### Chat with Support

アカウントを作った時のメールより、「Chat with Support」を開いて連絡することにしました。
![アカウントを作った時のメール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849869/accf3dfc-e7dd-3db6-728f-013fbc8920e7.png)

情報を選択してチャットを始め、用意されたFAQでは解決できないことを選択し、サポートとチャットを繋げます。「Computeを主に使っていて昨日まで稼働していたのに急にアクセスできなくなり、テナントがINACTIVEになった」と英語で伝えると、アカウント名、テナント名、アイデンティティ・ドメイン名を聞かれました。

プロファイルページ、テナントページ、ドメインページの全部の情報にアクセスできない状態のため、「わかるか！」と思いながら、
> アカウント名： クラウド・アカウント名
> テナント名： テナント名
> アイデンティティ・ドメイン名： OracleIdentityCloudService/〇〇〇@example.com

で提出しました。

おそらく聞かれた情報としては間違っていると思われますが、アカウントの特定には至ったらしく、「あなたのアカウントはシステムによってアカウントが停止されているため、復旧させることはできません。（要約）」との回答をもらいました。

こちらのチャットサポートからでは復旧は難しいようです。

</details>

### My Oracle Support(Oracle Cloud Support)

ライブチャットサポートに連絡しても対応してもらえなかったため、今度はアカウントを作った時のこっちのメールを見て、[My Oracle Support](https://support.oracle.com/)にアクセスすることにしました。
![My Oracle Supportのメール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849869/050bf1b2-4350-21b8-9288-4bd7ba79e894.png)

なんとなくメアドとパスワードを入力したらなんかログインできたような気がします。Oracleアカウントで良いんですかね...？この辺は記憶が曖昧です。サポートID(CSI？)を云々という話が検索している上で散見されましたが、私は扱うことなく解決しました。Oracle CloudコンソールのMy Profileからサポートアカウントのリンクを行えますが、これに気づいたのも解決後です。

My Oracle Support（あるいはOracle Cloud Support）では、サービスリクエスト（SR）として問い合わせのスレッドを建てることができ、「Service Requests」のページから新規作成できます。「My Oracle Support」「Oracle Cloud Support」というおそらく根本的に同じ2ページは切り替えながら使うこともできるのですが、~~My Oracle SupportではサポートID（CSI）が必須なのに対し、Oracle Cloud Supportでは入力窓がありません。アカウント停止中はサポートIDが無効になっていると思われるので[^1]、Oracle Cloud Supportの方からサービスリクエストを送ると良いと思います。~~ 自動で読み込まれているだけでどちらにせよサポートID（CSI）は必要なのかもしれません...？

私は慌てていて気づかなかったため英語で問い合わせを行いましたが、設定ページから表示言語・サービスリクエスト言語を変更することができ、「日本語」も選べます。（英語で送ったことが今回良くはたらいた可能性もあります。）

Create Non-Technical SR（非技術的SRの作成）を押してサービスリクエストを作成しました。あとでTechnical SRの範疇だと判断されてサポート側で変更されましたが、Technical SRの方が項目が多く何を選べば良いのかわからないため、Non-Technical SRで出してしまうのも手だと思います。

### 送信したサービスリクエスト
翻訳英語で恥ずかしいですが、送ったサービスリクエストを書いておきます。Identity Domainのメールアドレスは隠しています。なお、Identity Domainは回答したやつではなく、Oracle CloudコンソールのIdentity DomainページにあるIDのことかもしれませんが、アカウントが停止されているとここにもアクセスができないので諦めました。アカウントの特定には至ったらしいので良かったです。
> #### Problem Summary
> An account that I had continued to use in a similar state was suddenly suspended.
> #### Problem Category
> Oracle Cloud Termination Questions
> #### Template Question Responses
> 1) Please provide the affected Service Names:
> Compute
> 2) Please provide your Identity Domain:
> OracleIdentityCloudService/〇〇〇@example.com
> 3) Please choose a Termination topic:
> e. Why did Oracle terminate my service?
> 4) Please enter any additional details that will help us answer your question:
> I am a Japanese individual and have been using a compute engine within Always Free, primarily in the East Japan region. I confirm that the instance was running fine until yesterday, but I am aware that the tenant suddenly became inactive today. I was primarily running two instances of Ampere. Currently, the instance page in the console says "You don't have permission to view these resources in this compartment. Try another compartment, or contact your Try another compartment, or contact your administrator for help." The tenancy page in the console shows that my tenancy was now inactivated. I do not know why they were suddenly terminated as I had been using them continuously in the same state. I would like to recover my account or at worst download the data from the instances that were running.

送信するとすぐに確認した旨のメール、Technical SRに変換して技術チームに回す旨のメールが届きました。少し時間を空けて担当者が割り当てられた旨のメールが届き、次のようなメールが届きました（抜粋）。

> Please be informed as per records your account is "TERMINATED". As per records, your account is currently under review for potential violation of our Terms of Use. If you believe this termination is in error, please request/update with justification for secondary review on this SR.

「君のアカウントは利用規約違反の疑いにより終了されてるよ。再審査するから正当な理由とともにリクエストしてね。（要約）」です。なぜ終了されたかがわからないのに正当な理由が言えるものかと思いつつ、それっぽい理由を書きます。とりあえず、利用目的と利用内容、数ヶ月同様の環境で運用していることを書きました。下記の内容でAdd Update（アップデートの追加）を行いました。

> Thank you for your quick response.
> 
> I am a Japanese student and was using Oracle Cloud Infrastructure for learning and testing purposes. My main use was Compute and I used 4 instances: 2 VM.Standard.E2.1.Micro instances, 2 Ampere A1 Compute instances (2OCPU, 12GB Memory)
> One VM.Standard.E2.1.Micro instance was using OpenVPN Access Server. One Ampere A1 Compute instance was running Minecraft game server. Another Ampere A1 Compute instance was running a Discord chatbot. I mainly use the two Ampere A1 Compute instances, and the only change I have made recently is turning on/off some of the Discord chatbot replies. and the storage associated with them, as well as two public IP addresses. I have been operating in a similar environment for at least a few months and do not believe that I am in violation.
> 
> For these reasons, I am requesting a review of my account termination.

また時間をあけて、下記の返答をもらいました。「サービスチームに再審査投げたから、2営業以内に報告するね。（要約）」です。

> We understand your concern and have escalated the issue to our service team for further investigation. Your secondary review is currently underway, and we expect to receive a response within 2 business days. We will get back to you as soon as we receive an update from the service team.

### 再審査の結果

23時間ほど経って、サービスリクエストへ新たにメッセージがありました（抜粋）。
> We have completed our secondary review and have overturned our decision to disable this account. Now, we can see your Cloud account: '〇〇' associated with the subscription ID: xxxxxxx is turned to 'ACTIVE'.

再審査の結果、アカウントの無効化という決定は覆されたので、アクティブにしたからクラウドにアクセスできるとのことでした。実際にコンソールにログインすると以前の状態に戻っており、Computeインスタンスにもアクセスできることを確認できました。

復旧完了です！サーバーで運用していた中にはローカルにバックアップがないデータもあったため、ホッと胸を撫で下ろしました。

# 今回の一件から考えられること
### クラウドのアカウントも時に停止される
今回の私のアカウントは個人範囲を超えない運用しかしておらず、サーバー上で動かしていたものの利用がちょうどひと段落したタイミングでの停止だったため事なきを得ましたが、外向けに公開しているサービスを動かしていたら大惨事でした。このようなことが起こらないとは言い切れないため、頭の片隅に置いておきましょう。

結局アカウントが一方的に停止された理由は教えてもらえませんでした。事情はあるのでしょうが、クラウドのアカウントでこれはかなり怖いですね...

### 消えて困るものにはお金を払う...?

私のアカウントは無料枠のみ利用できるFree Tierアカウントでした。本来今回のようなサポートは、おそらく有償アカウントでしか受けられないものだと思います。停止されるリスクを考えればお金を払うべきだし、ましてや有償アカウントにしてもAlways Freeのサービスは無料のままなので、有償アカウントにしておくに越したことはないと思います。

ただし、有償アカウントへのアップグレード後にアカウント停止されたとの情報もあったので、Oracle Cloudに限ってどちらが良いのかは微妙かも...？

### なぜ今回サービスリクエストを送れたのか

改めて調べてみてもサービスリクエストなどのサポートを受けるのに有償アカウントのサポートID（CSI）が必要という記述が多く、今回は運良く抜け道的にサポートを受けられてしまっただけの可能性があります。

解決後記事を書くにあたって色々追加で調べましたが、Free Tiearアカウントでサービスリクエストを送れるという記述は見つからず、今回なぜすんなりサポートを受けられたのかは不明のままです。なんなら停止状況によっては有償関係なくMy Oracle Supportにアクセスできないとかもあるようです。
- 私が覚えていないだけでサポートアカウントを試用期間中に作っていた
- Oracle Cloudアカウントと同じメアドのOracleアカウントが以前からあった

もしかしたらこの辺があって良くはたらいたのかもしれません。

有償アカウントでも容赦無く停止されることはあるようですし、今回のように復旧できた報告は少ないように思いました。Oracle Cloudのアカウント停止とサポートの不足は以前から不安視されているトピックのようです。調べれば調べるほどなぜ停止されてなぜ復旧できたのかが本当にわからない。

### Oracle Cloudの問題にはSRを送ろう
何はともあれ、Oracle Cloudは基本的にサービスリクエストが最大限対応してもらえる問い合わせ手段です。送れるかが問題ですが。

### 今回の勝因
- Free TierアカウントだけどSRを送れた（運）
- SRの結果再審査が通った（運）

# 〆
本当に肝が冷えた。怖すぎる。Free Tierアカウントなのに復旧できたの奇跡だと思う。感謝。

私も手探りで色々動いたのでこの記事に間違いが多分に含まれている可能性があります。ご容赦ください。

# 参考
- Oracle Japanの人の個人見解ツイートツリー

https://x.com/hk_shino/status/1522488985443995648?s=20

- [Oracle Cloud Infrastructureのアカウントが突然停止したので状況や調査内容を書いていく](https://zenn.dev/shinshin86/scraps/022e44712274fd)
私のこの記事よりも色々な問い合わせ方法が挙げられている。ただし、上のツイートによれば対応可能な正規の問い合わせ方法はMy Oracle Support(Oracle Cloud Support)やコンソールのサービスリクエスト（サポートリクエスト）のみとのこと。
- [Oracle Cloud サポートについての FAQ](https://blogs.oracle.com/supportjp/post/cloud-support-faq)
今回私は使っていないが、サポートについての公式ドキュメント。
- [OCIアカウント停止問題](https://scrapbox.io/heguro/OCI%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%81%9C%E6%AD%A2%E5%95%8F%E9%A1%8C)
過去の報告をめちゃくちゃまとめてくれている。


[^1]:[Oracle Cloud Infrastructureのアカウントが突然停止したので状況や調査内容を書いていく](https://zenn.dev/shinshin86/scraps/022e44712274fd)