[OCI] タグ付けを用いたコスト分析をする

クラウドを利用するにあたって、日々のコストを確認することはとても重要になってきます。

OCIでは、コスト分析サービスを利用してOCIにかかっている費用を細かく可視化、確認することが可能です。
OCIを利用する上でよくあるパターンとしては、コンパートメントを部署や環境ごとに分けてリソースを分割し、コンパートメントごとのコストを確認するようなケースが一般的です。

しかし、コンパートメントがコストを区分けしたい単位にマッチしていないケースも場合によって存在すると思います。
ここではそのような場合の解決策として、タグ付けによるコスト分析を試してみます。

**Use Case**
- 同じコンパートメント内でも、リソースごとにグルーピングしてコスト分析をしたい
    - 例）1コンパートメント内に複数のシステムが共存している場合
- 複数のコンパートメントに分散したリソースをグルーピングしてコスト分析したい
    - 例）1部署（や 1ユーザ）が所有するリソースが複数のコンパートメントに分散している場合


## リソースへのタグ付けとは
> Oracle Cloud Infrastructure Taggingでは、メタデータをリソースに追加できます。つまり、キーと値を定義し、それらをリソースに関連付けることができます。タグを使用すると、ビジネス・ニーズに基づいてリソースを編成してリストできるようになります。

リソースを分類して管理するための手法として、タグ付け（Tagging）の機能を利用することができます。
タグ付けについての詳細は、[OCIドキュメント(タグ付けの概要)](https://docs.oracle.com/ja-jp/iaas/Content/Tagging/Concepts/taggingoverview.htm)をご確認ください。

※補足
コスト・トラッキング・タグという機能もありますが、こちらは予算機能を使用する場合のみ使用します。コスト分析で費用を表示させたい場合には使用する必要はありません。
[コスト・トラッキング・タグの使用](https://docs.oracle.com/ja-jp/iaas/Content/Tagging/Tasks/usingcosttrackingtags.htm)

## 手順
今回は画像のように、同じコンパートメントに2台のComputeインスタンスを作成し、それぞれに別のタグを付与してコスト分析画面を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2357379/f6a1d9f2-8206-33a1-3cc5-d06ccf57bb1c.png)


### 1. タグを作成
最初に、インスタンスに付与するタグに関するリソースを作成します。

#### 1.1. タグ・ネームスペースの作成
ナビゲーション・メニューから [ガバナンスと管理] > [テナンシ管理] > [タグ・ネームスペース] を選択します。
タグ・ネームスペースの作成をクリックし、以下の情報を入力します。
- コンパートメントに作成: タグ・ネームスペースを作成するコンパートメント
- ネームスペース定義名: タグ・ネームスペースの名前
- 説明: タグ・ネームスペースの説明
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2357379/e7f56c3b-4104-f67b-b013-65370ba5876e.png)

#### 1.2. タグ・キーの作成
ナビゲーション・メニューから [ガバナンスと管理] > [テナンシ管理] > [タグ・ネームスペース] > [<作成したタグ・ネームスペース>]を選択します。
タグ・キー定義の作成をクリックし、以下の情報を入力します。
- タグ・キー: リソースを分類するためのタグ・キー名（例: System, user, department など）
- 説明: タグ・キーの説明
- タグ値のタイプ: 任意の文字列をタグ値に設定できるか、事前に指定した値のリストから選択させるかを選べます。ここでは任意の文字列を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2357379/512b5b4b-f8e3-4726-50ac-60c43893c447.png)



### 2. リソースへのタグ付け
ここでは、Computeインスタンスにタグを付けてみます。
インスタンスを作成する際にタグ付けすることも可能ですし、インスタンス作成後にタグ付けをすることも可能です。
今回はインスタンスを作成した後に、タグを付けます。

ナビゲーション・メニューから [コンピュート] > [インスタンス] > [<タグを付与するインスタンス名>] を選択します。
[その他のアクション] > [タグの追加]をクリックし、以下の情報を入力します。
- タグ・ネームスペース: 先程作成したタグ・ネームスペースを選択
- タグ・キー: 先程作成したタグ・キーを選択
- タグ値: このインスタンスを分類するシステム名やユーザ名などの情報を記入。この値ごとにコスト分析画面では費用が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2357379/d839bd50-9087-7baa-4cab-bd5e4c8b95af.png)

同様にInstanceBにも、タグ値: SyatemB でタグ付けを行いました。

### 3. コスト分析画面での表示
ナビゲーション・メニューから [請求とコスト管理] > [コスト管理] > [コスト分析] を選択します。
開始日、終了日、粒度、表示は任意で選択してください。
[グループ化ディメンション]で[タグ]を選択します。
タグ・ネームスペースとタグ・キーは先程作成したリソースを選択します。
適用をクリックします。

Computeインスタンスに付与したタグ値ごとに費用が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2357379/03fdd99c-3060-78be-6b02-d23c61f212de.png)

## まとめ
このようにタグ付け機能を利用して、タグ値ごとのOCIの費用を表示させることが可能です。
OCIのコストを細かく分類したい場合にはぜひご活用ください。

## 参考
[タグ付けの概要](https://docs.oracle.com/ja-jp/iaas/Content/Tagging/Concepts/taggingoverview.htm)
[タグおよびタグ・ネームスペースの概念](https://docs.oracle.com/ja-jp/iaas/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm)
[コスト分析の概要](https://docs.oracle.com/ja-jp/iaas/Content/Billing/Concepts/costanalysisoverview.htm)