AWS/Azure 経験者がはじめる OCI 入門 ～ 概要編 ～

#はじめに
既に 何らかの パブリッククラウド サービス について 経験がある方にとって、機能や名称は、「このサービスで言う〇〇」と例えてもらった方が 理解が早い、ということがあるかと思います。

自身も はじめて触れた パブリッククラウド が AWS や Azure だったため、**Oracle Cloud Infrastructure (OCI)** について 学習を始めた際は 対応させながら理解していきました。

本記事では、第２、第３のパブリッククラウド として OCI の学習を始めた方にとっても分かり易いよう、OCI の 特徴や、他のパブリッククラウド との相違点 などについて、整理していきたいと思っています。

>第１弾 概要編：https://qiita.com/Skogkatter112/items/98c6f815b4e0b6556b7e
第２弾 IAM/IDCS編：https://qiita.com/Skogkatter112/items/51b619026aa53a9c6069
第３弾 Compute編：https://qiita.com/Skogkatter112/items/540da610c7938cb74b55
第４弾 Storage編：https://qiita.com/Skogkatter112/items/200a1fe8c419fc9ee16e

#Oracle Cloud と OCI について
Oracle Cloud とは、Oracle社が提供するパブリッククラウドサービスです。2014年に開始され、2017年に第２世代インフラストラクチャと呼ばれる、それまでの基盤を刷新した作りに変更しています。

Oracle Cloud では、**アプリケーション(SaaS)、プラットフォーム(PaaS)、インフラストラクチャ(IaaS)の全領域をカバーする包括的なサービス** を提供しています。
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/48822163-0782-0100-a64d-dc8e1ad709f2.png)]
(https://blogs.oracle.com/oracle4engineer/column_cloud_zoom_200430)
この "Oracle Cloud" という言葉は SaaS、PaaS、IaaS、全てを含んだ総称になっているのですが、IaaS、PaaS サービスについては、**Oracle Cloud Infrastructure (OCI)** と総称されます。

この OCI、昨今のリモートワーク下でも注目を集めている、 **Zoom社の基盤として選択された**、というのは 記憶に新しい ニュースかと思いますが、その他にも 東京リージョンだけで 1,000社以上 の 導入実績 があるそうです。

- Zoomが選択したOracle Cloud Infrastructure：  
[https://blogs.oracle.com/oracle4engineer/column_cloud_zoom_200430](https://blogs.oracle.com/oracle4engineer/column_cloud_zoom_200430)

本記事は、主に、この "OCI" に関するご説明になります。

#リージョンと可用性ドメイン
###用語について
他社クラウド同様、OCI も世界各地のリージョンにデータセンタを展開しています。OCI では 各リージョンを [**アベイラビリティ ドメイン (Availability Domain/AD)**](https://docs.oracle.com/cd/E97706_01/Content/General/Concepts/regions.htm#AboutRegionsandAvailabilityDomains) という単位で分割します。他社クラウドでは **アベイラビリティ・ゾーン (Availability Zone/AZ)** などと呼ばれています。
尚、アベイラビリティ ドメインは、**可用性ドメイン** とも呼ばれます。
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/995e76d0-8ba1-ae84-2927-ab05ee38578b.png)](https://www.oracle.com/jp/cloud/architecture-and-regions.html)


###フォルト ドメイン という概念
可用性ドメイン は、さらに [**フォルト ドメイン(Fault Domain/FD)**](https://docs.oracle.com/cd/E97706_01/Content/General/Concepts/regions.htm#fault) という単位 に 分割できます。１つの 可用性ドメイン には、３つの フォルト ドメインが含まれています。

これは、ハードウェア障害 または ハードウェアのメンテナンス・イベント等 が **互いに影響しない単位** となっています。**障害ドメイン** とも呼ばれます。  
（Azureにおける **可用性セット** という概念に近いという認識です。）

###現在の展開状況 (2020.10.07時点)
現在、OCI は [**27 の リージョン**](https://www.oracle.com/cloud/data-regions.html#northamerica)、[**35 の AD (Availability Domain)**](https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm#AboutRegionsandAvailabilityDomains) に展開されています。
日本国内で見ると、東京リージョンに加えて、2020年2月には **大阪リージョンも開設しています**。

AD数も まだまだ充足しているとは言い難いですが、FD (Fault Domain) で対策できる部分もあり、可用性に対する要件の高いシステム構築においても、十分に対応できるのではないかと思います。

今後の計画では、更に **11 リージョン** 開設予定であると発表されています。


#SLA (Service Level Agreements)
OCI の特徴の１つになるのが、この **SLA** だと思います。OCI では、一般的なクラウドが保証している「可用性」に関する SLA 以外に、「**性能**」「**管理性**」についても保証しています。

「管理性」というのは、APIのエラー率などに関する保証です。
単に動作していれば良い、という訳ではなく、一定の性能を保証し、APIによる管理性についても保証してくれる、というのは、１つの 大きな 安心材料 と言えます。

- OCI SLA：[https://www.oracle.com/jp/cloud/iaas/SLA.HTML](https://www.oracle.com/jp/cloud/iaas/SLA.HTML)

#アカウント と ユーザ
###アカウント の 開設
OCI に 限らず、パブリッククラウド の 利用開始に当たっては、どのクラウドでも、「**アカウント**」を払い出すところから 始まるかと思います。

OCI で アカウントを作成する 大まかな流れ は 下記の通りです。
（より詳細な流れは、[こちらの記事](https://qiita.com/manaki/items/d8684f8e15ccf09bdc4e) を ご参照ください。）

- 一般的なクラウド と 同様、「**アカウント名**」を決め、管理者となる「メールアドレス」、「個人情報」、「クレジットカード番号」(※) などを登録し、**アカウント** を取得します。
- 取得した アカウント には、アカウント の 作成時に 登録された メールアドレス にて、**IAM ユーザ** と **IDCS ユーザ** という、２つの ユーザが 同時に 作成されます。

補足ですが、OCI では、アカウント名 を **テナント名** と呼んだりもします。

<font color="Silver">※クレジットカード番号については、無料トライアルの申し込みの場合も 求められますが、**プランをアップグレードしない限り 請求されることはありません**。</font>


###IAM ユーザ と IDCS ユーザ
先ほどの流れで、「IAM ユーザ と IDCS ユーザ、なぜ２つも作成されるの？ 管理者 以外の ユーザについても **２種類の ユーザ を 作らなければいけないの？**」と疑問に思うかもしれませんが、**答えは「NO」**です。

どちらか一方 の ユーザ を 作成するだけで大丈夫です。もちろん、両方作ってもらっても問題ありません。
この ２つの認証機能 の 違いは、**カバーしている範囲** に あります。  
[<img width="634" alt="コメント 2020-06-05 162150.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/bad9bcb8-feb9-2bfe-8635-7eb33e840c4b.png">](https://speakerdeck.com/ocise/ociji-shu-zi-liao-idoyobiakusesuguan-li-iam-gai-yao?slide=4)
OCI が 提供しているサービスのみ の 利用であれば、IAM ユーザ だけで 充足しますが、一部 の PaaS や、SaaS などの 利用も 考えると、IDCS ユーザ を 作る必要が出てきます。  

上記の理由から、個人的な おススメ としては、管理者以外 の ユーザ は、IDCS を利用して 作成するのが良いかと思います。

この **IAM ユーザ と IDCS ユーザ の違い** については、OCI を 利用するに当たって まず始めに 混乱する部分だと思いますので、今後、別の記事で詳しく書いていきたいと思います。（既に Qiita に 詳しく 書いてくださっている [記事](https://qiita.com/yamada-hakase/items/c9b1176123f6f3dc3485)も あります。）

また、補足になりますが、OCI の アカウント開設後に やっておいた方が 良いこと について まとめてくださっている 記事が あるので、是非、そちらもご参照ください。

- Oracle Cloud 最初にしておくオススメ設定サマリ：  
[https://qiita.com/hoka-shino/items/4f800b270cdaeec3573c](https://qiita.com/hoka-shino/items/4f800b270cdaeec3573c)

>※2020/06/22 追記
第２弾 記載しました！是非こちらもご参照ください。
AWS/Azure 経験者がはじめる OCI 入門 ～ IAM/IDCS編 ～
[https://qiita.com/Skogkatter112/items/51b619026aa53a9c6069](https://qiita.com/Skogkatter112/items/51b619026aa53a9c6069)

###コンパートメント という 概念
OCI には、[**コンパートメント**](https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Concepts/compartmentexplorer.htm) という機能 が あります。目的 としては、リソース の 管理 になります。OS の 世界で例えると、フォルダを分ける イメージ に 近いのかな、と思っています。

フォルダ は、「階層的 な 構造」で、「どのファイル を、どの階層 に 格納するか を 選べる」、「フォルダ毎に アクセスできる ユーザ を 分ける」、「フォルダ毎の 使用状況 を 確認する」、ということ が 出来ますね。

同じように、リソース の 場所 を コンパートメント毎に分ける、コンパートメント毎に アクセスできる ユーザを分ける、コンパートメント毎に 使用状況 を見る、といったこと が 可能です。  
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/708b6740-c173-15f9-6835-1ff06031bada.png)](https://speakerdeck.com/ocise/oracle-cloud-infrastructure-hazimefalse-bu?slide=27)  
コンパートメント は、アカウント 作成時に、**ルートコンパートメント** と 呼ばれる コンパートメント が 自動的に 作成されます。
コンパートメントは、後から 移動することも 可能ですが、１つのリソースを、複数 の コンパートメント に所属させることは できません。

#コンソール/CLI/SDK
一般的なパブリッククラウド 同様、OCI に アクセスし、各種リソースを操作するためのインタフェース には、**コンソール画面**、**CLI**（Command Line Interface）、**SDK** があります。

###コンソール ログイン
IAM ユーザ／IDCS ユーザ、いずれのユーザ で ログインする場合も、アカウント名・ユーザ名 (メールアドレス)・パスワード が必要になります。

下記は **アカウント名 を 入力した後** の 画面イメージ になってます。
<img width="898" alt="コメント 2020-06-05 154313.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/50a3993d-2f5c-4f80-285c-586ff52903a0.png">  
ここ、分かりにくいのですが、IDCS ユーザ で ログインする場合は、**左側 の「Continue」ボタン から** ユーザ名 の 入力フォーム へ 移動します。
IAM ユーザ で ログインする場合は、**右側 の フォーム から** ユーザ名 などを 入力していきます。


###コンソール 画面 レイアウト
OCI のコンソール画面は、左上にある「三」( 通称：ハンバーガーメニュー ) をクリックし、サービスを選んでいきます。
![tV7n7UE2GkJDOnlBb8tf1591282152-1591282208.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/bfc64a1f-7379-8892-18bd-01819235ab2d.gif)
操作の流れは、基本的に、左 から 右 に、という流れになっている印象です。

###CLI
[**CLI**](https://docs.oracle.com/cd/E97706_01/Content/API/Concepts/cliconcepts.htm) は、Mac、Windows、またはLinuxで動作するPython (バージョン2.7.5または3.5以降)で構築されています。

CLI を使うに当たっては、目的の権限を持つユーザ の **APIキー** または **認証トークン** を コンソール画面より払い出す必要があります。
これは、AWS における アクセスキーID および シークレットアクセスキー に相当する認識です。

また、OCI では、コンソール画面から実行可能な [**Cloud Shell**](https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/cloudshellintro.htm) という機能が提供されています。わざわざ環境をセットアップすることなく簡単に操作できるので便利です。

###SDK
[**SDK**](https://docs.oracle.com/cd/E97706_01/Content/API/Concepts/sdks.htm) は 全て オープン・ソースであり、GitHub から アクセスができます。言語は、**Java**、**Python**、**Ruby**、**Go** に対応しています。

#サービス 一覧
OCI で 提供されているサービスは、主に下記のようなものがあります。  
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384668/8b67e7e1-0c80-0336-faab-065a3e28a73f.png)](https://speakerdeck.com/ocise/ociji-shu-zi-liao-sabisurainnatupu?slide=3)

刻々と サービス強化 されているため、最新情報は 下記などを ご覧ください。

- カテゴリ別のOracle Cloud Infrastructure製品  
[https://www.oracle.com/jp/cloud/products.html](https://www.oracle.com/jp/cloud/products.html)

また、OCI で 提供されている主なサービス を、他社クラウドサービスと 対応付けた一覧が、Oracle社 の 公式サイト にて 公開されているので、そちらも ぜひご参照ください。  

- Cloud Service Mapping  
[https://www.oracle.com/cloud/iaas/cloud-service-mapping.html](https://www.oracle.com/cloud/iaas/cloud-service-mapping.html)

これらについても、今後別途 詳細な記事を書いていけたらと思っています。

#最後に
いかがでしたでしょうか。概要だけでは まだまだ、という感じでしょうか。。。ほんの少しでも OCI の 理解促進に 貢献できていれば 幸いです。

もし触ってみようかな、と感じて頂けた方がいらっしゃったら、是非 [**無償トライアル環境**](https://www.oracle.com/jp/cloud/free/) を 申し込んでみてください。

- Oracle Cloud Free Tier：  
[https://www.oracle.com/jp/cloud/free/](https://www.oracle.com/jp/cloud/free/)