OCIってAWSとどう違うの？基礎知識まとめた＆無料で入門資格チャレンジしてみた

これまでAWSメインでパブリッククラウド関連業務に携わってきたが、最近OCI（Oracle Cloud Infrastructure）がよく話題に挙がるようになった。
どうも2022年3月まで入門編の公式資格（OCI Foundations Associate）がキャンペーンで無料受験できるらしいので、年末年始の暇潰しとしてチャレンジしてみることにする。

試験自体に関しては@hamham氏が[いい感じにまとめてくれている](https://qiita.com/hamham/items/e4ae90b87eb0180df847)ので、この記事では具体的な勉強法や学習内容のサマリーを残していく。

# OCI勉強前の個人的なイメージ
- 後発系パブクラ。3大クラウドより知名度も低め。
- 安さがウリ。特にアウトバンド向け通信料が一定まで無料というのはよく聞く。
- Oracle製品との親和性が高い。社内でも「現行システムがRACを使っているのでそのままリフトしたい」需要で話題に挙がりやすい。
- 一度アカウント作って無料試用してみようとしたが、Webフォームのバグ？で先に進めず断念した経験あり。

# まずやったこと
公式の学習リソースをざっと確認。
前述の[受験記エントリー](https://qiita.com/hamham/items/e4ae90b87eb0180df847)のほか、[オススメ学習方法まとめ](https://qiita.com/Skogkatter112/items/a57a5ef1a72806f1c69a)の良記事もあったので参考にした。

- [Oracle University](https://education.oracle.com/home)：日本語の動画コンテンツあり。しかし長い。
- [OCI活用資料集](https://oracle-japan.github.io/ocidocs/)：サービス別の解説スライドがまとまっている。動画見るよりはサクサク取捨選択できて良さそう。「サービス全般」あたりの資料から眺めてみる。

ここまで漁ったところで、なんとなく「AWSとどう違うのか」がキーワードベースで見えてくる。

- AWSでいう「AZ」→ OCIでは「AD」と「FD」がある？
- AWSでいう「IAM」→ OCIでは「IDCS」と「IAM」がある？
- OCIでは「コンパートメント」という独自概念あり。GCPでいう「プロジェクト」みたいなもの？
- そもそも「OCI」の上位概念として「Oracle Cloud」がある？差分はSaaSらしいけど、具体的にどんなサービスがあるんだろう。

このへんで「Qiitaにいい感じのまとめ記事ないかな」と探してみると[あった](https://qiita.com/Skogkatter112/items/98c6f815b4e0b6556b7e)。
このシリーズ記事を読み進めながら、気が向いたものは公式スライドを漁りつつ、とりあえず一度Foundationsを受験してレベル感を掴んでみることにする。

# OCIってAWSとどう違うの？学習サマリー
### そもそもOCIとは
「Oracle Cloud」の中でもPaaS、IaaSサービスの総称が「OCI」。差分はSaaSサービスで、具体的にはERPとかSCMとか[公式サイトに紹介あり](https://www.oracle.com/jp/index.html)。
AWSでいうとカウンターパートがあるのか微妙だが、SAPとかSalesforceみたいなSaaSも提供してるんだな程度に理解した。

### ADとFD
物理的な稼働ロケーションについて、「リージョン」はAWSと同等。
「AZ」に相当する概念として「AD」があり。さらにOCI独自の概念として「FD」というADの下層単位がある。HW的に影響し合わないよう分かれているとのこと。
ちなみに日本にリージョンは2つ（東京＆大阪）あるが、ADは各リージョンに1つしかない。代わりにFDは各AD内に3つずつある模様。

### IDCSとIAM
AWSでいう「IAM」に相当する概念として「IDCS（Oracle Cloud共通）」と「IAM（OCI限定）」の2種類あり。
迷った場合とりあえずどっちを作ればいいか、というのは微妙な模様。機能的に優位なのはIDCSっぽい。
IAMには「プリンシパル」「グループ」「ポリシー」の3概念がある。「プリンシパル」はAWSでいうIAMの「ユーザー」と「ロール」をまとめたようなもの。

またポリシーの記述はJSONではなくSQLっぽい独自文法になっている。
デフォルトポリシーはなく「権限ゼロからスタート」であり、「許可ルールしか記述できない」というホワイトリスト的な考え方となっている。（これで実用上困らないのかな？）

### テナンシーとコンパートメント
リソース管理の概念として、まずOCIアカウントを作成すると単一の「テナンシー」が割り当てられる。
この「テナンシー」内のOCIリソースの管理単位として「コンパートメント」があり、フォルダーのようなノリでリソースを区分けして権限やコスト管理を分割することができる。

※ コンパートメントは「区画」という意味らしい。Oracle社は特にニッチな英語表現を多用する印象があるので、新語が登場した際は原義をググっておくと意味がイメージしやすいのでオススメ。

### コンピュート
EC2でいう「インスタンスタイプ」に相当するマシンスペックを表す概念として「シェイプ」がある。
ラインナップは「Standard」「Dence」「GPU」などAWSよりは直感的に分かりやすいネーミングになっている。
シェイプ変更は可能だが、インスタンス再起動が必要。

また、CPUスペックは「OCPU（Oracle Compute Unit）」という独自概念でカウントされる。
これは物理コア数を表しており、一般的にいう「vCPU＝スレッド数」とは異なるので注意。

AutoScallingに相当する「自動スケーリング」機能もあり。
AMIに相当する起動用イメージを「インスタンス構成」という。AutoScallingグループに相当する概念は2つあり、起動するインスタンスをまとめて「インスタンス・プール」と呼び、スケーリングに関する設定を「自動スケーリング構成」という。

### ストレージ
主なサービスは以下。

- ローカルNVMe：EC2で言うエフェメラルストレージ（インスタンスストア）。特定のシェイプでしか利用できない。
- ブロック・ボリューム：EBS相当。
- ファイル・ストレージ：EFS相当。
- オブジェクト・ストレージ：S3相当。操作用にS3互換APIも使える。静的Webホスティング機能はなし。

### データベース
大きく以下の4パターンでDB利用が可能。

- Database on IaaS：コンピュートインスタンス上にDB自前導入。
- DBCS：RDS相当。OSレイヤー以上はユーザー側で管理（RDS Customに近い）。VM版とベアメタル版がある。
- ExaCS：DBCSのExadata版。RDS（Aurora）的なノリ？
- Autonomous Database：フルマネージドDB。18以降のバージョンのみ提供。

なかでもDBCSの特徴は以下。

- RACやData Guardを採用し可用性を高めることが可能。RACはVM版でのみ利用できる。
- ベアメタル版では、OCPUの動的スケーリング（ダウンタイムなし）が利用できる。
- OSログイン可能な点でRDSよりもIaaSチック？
- 監視ツールにはEMも選択可能。

※ ちなみにちょっと気になったのでExaCSの料金見てみたところ約$14/hでした。月間100万円ぐらい？

### ネットワーク
主なプライベートNW系サービスをAWSと比較すると以下。

- VCN：VPC相当。リージョン > VCN > AD という包含関係も同等。
- サブネット：AWSのサブネット同等。ただしパブリックとプライベート以外に「リージョナル・サブネット」という同一リージョン内の全ADを跨ぐタイプのサブネットもあり。
- ルート表：ルートテーブル同等。
- NSG（ネットワーク・セキュリティ・グループ）：SGに近い。
- セキュリティ・リスト：NACLに近いが、最終的にNSGと同じくVNICに合算適用されるという点でNACLと異なるため注意。[こちら](https://qiita.com/Pampus/items/502b26c2fc90eb5c4c57)の解説が分かりやすい。

GW系やオンプレ接続関連は以下。

- インターネット・ゲートウェイ、NATゲートウェイ：AWS同等。マネージド。
- サービス・ゲートウェイ：VPCエンドポイントに近い機能？
- DRG（動的ルーティング・ゲートウェイ）：VGW相当？
- VCNピアリング：リージョンを跨ぐか否かによってローカル、リモートの区分がある。いずれも前述のDRGを利用する。
- FastConnect：DX相当。これもDRGを利用する。
- IPsec VPN：AWSマネージドVPN同等。
- トランジット・ルーティング：トランジットGW的なサービスがあるわけではなく、条件付きで「間接的VNCピアリングが許可される」という位置付け。利用が許される条件は以下の3パターン。
    1. FastConnectの共有（DXGW的な利用）
    2. オンプレからの踏み台VCNとして利用
    3. リモート・ピアリングの複数VCN間共有（トランジットGW的な利用）。1. と組み合わせればトランジットVIF的なこともできるのかな？

### 課金
利用料金の支払い方法は以下。

- PAYG（Pay as you go）：オンデマンド課金。
- 年間/月間フレックス：前払い。不足時は追加請求されるが、余った場合は返金ではなく失効ｗ
- BYOL

ちなみにリージョンを問わず価格設定は同一のようです。シンプル。
また、SLA違反時の返金ポリシーについては、他のパブクラと異なり「可用性」だけでなく「性能」や「管理性（コンソールAPIエラー率）」を保証しているのも特徴。

# 実機も触ってみる
以前、ハンズオンを試みた際にアカウント作成画面のバグ？により先に進めなかったのだが、今回リトライしたところ問題なくフリートライアルを開始することができた。

コンソールのトップ画面
![スクリーンショット 2022-01-01 17.57.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/a73099ae-2e7a-a103-e486-46fc62de344a.png)

とりあえずComputeインスタンスを作成してみる
![スクリーンショット 2022-01-01 17.57.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/9011727e-29d3-8eaf-3f30-fda87d002853.png)

ルートコンパートメントを指定し、「Create Instance」を実行。
デフォルト設定のままで立ち上がるようになっているが、SSH用の秘密鍵だけは忘れずにダウンロードしてから「Create」をクリック。
![スクリーンショット 2022-01-01 18.00.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/0bc36cfa-eede-9b63-e985-9f47698b3d1a.png)

起動に成功したらSSHしてみる。パブリックIPとユーザー名を確認。
![スクリーンショット 2022-01-01 18.01.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/a886bcca-45be-bf81-bd2b-5b6e516e7413.png)

ローカルMacのターミナルからSSH接続。
ダウンロードした秘密鍵に対して `chmod 400` しておかないと認証失敗するため注意。
![スクリーンショット 2022-01-01 18.07.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/b143bf26-c927-1437-0ae7-86f5ee2a7953.png)

# とりあえず試験受けてみる？
まずは[Oracle University](https://education.oracle.com/home)でFoundationsの練習問題に挑戦できるのでやってみる。
ちなみにSafariだとモーダルウィンドウがいつまで待っても描画されなかった。やむなくChromeで実施。
![スクリーンショット 2022-01-01 21.03.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/070e455b-ff30-5752-c7ad-db49d9ffafd7.png)

結果、87.5%（8割で合格）。いけそうな気がするのでそのまま本試も受験してみる。
しかしこんな簡単なノリでポチッと開始してしまえる試験なのかｗ
![スクリーンショット 2022-01-01 21.52.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/d36df35f-79c0-58b5-3561-eb9ba36f6fc1.png)

制限時間は90分だが半分もかからず終了。結果は76%！
ギリギリ不合格かと思いきや、合格ラインは68%だったようでセーフ。めでたい元旦となりました。
![スクリーンショット 2022-01-01 22.43.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/8ad52874-a3c4-4575-1e17-d7d78dd891de.png)

# まとめ
OCI初めてでも、他のパブクラある程度触ってる人なら1日あれば勉強開始〜試験合格までいけそう。
仕事で使いそうな人はFoundations無料期間中（2022年3末まで）にチャレンジしてみるのがオススメ！