Oracle Cloud Infrastructure(OCI) のObject Storageの「Lifecycle Policy Rules」について

# はじめに
今回は以下の記事で検討事項としていた、「Lifecycle Policy Rules」について少しまとめてみた。
[AWSを真似てOracle Cloud Infrastructure(OCI) で簡易 踏み台サーバーを構築してみた2]
(https://qiita.com/untitle_23/items/c7176e70ea2773a92de5#4-%E4%BB%8A%E5%BE%8C%E3%81%AE%E6%A4%9C%E8%A8%8E%E4%BA%8B%E9%A0%85)

# Object Storageとは？
[Oracle Cloud InfrastructureのFAQを参照](https://cloud.oracle.com/ja_JP/storage/object-storage/faq)
>Oracle Object Storageは、インターネット規模の高パフォーマンスで耐久性のあるストレージ・プラットフォームです。開発者およびIT管理者は、このストレージ・サービスを使用すると非常に低コストで無制限のデータ量を格納できます。

# Archive Storageとは？
[Oracle Cloud InfrastructureのFAQを参照](https://cloud.oracle.com/ja_JP/storage/archive-storage/faq)
>Oracle Cloud Infrastructure Archive Storageは、アクセス頻度の低い長期保存データを格納するのに最適なストレージ層です。Oracle Archive Storageに格納されたデータには、Oracle Object Storageと同じインタフェース(API、SDK、CLI)を使用してアクセスできます。ただし、Oracle Object Storageとは異なり、即時のデータ取得はできません。データを読み取るには、まずアーカイブ・ストレージからデータをリストアする必要があります。リストア・リクエストを発行してからデータの読取りが可能になるまでに、最大4時間のラグを見込んでください。取得時間メトリックは、Time To First Byte (TTFB)で計測されます。適切なIdentity and Access Managementポリシーを活用してデータ・アクセスを管理することにより、Oracle Archive StorageでWORMコンプライアンスを達成できます。

# Object Storage vs Archive Storage

2019/2/8現在、価格としては以下の様になっている。
※Pay as You go、Monthly Flexどちらも現在は変わらない。

|項目|価格|
|:--------------------------------------|:--------------------------------------|
|Block Volume|5.1円 (GB/月)|
|Object Storage - Storage|3.06円 (GB/月)|
|Object Storage - Request|0.408円 (10,000 Request/月)|
|Archive Storage|0.312円 (GB/月)|

[Oracle Cloud Infrastructure 価格情報 参照](https://cloud.oracle.com/ja_JP/iaas/pricing)


# 費用と運用を考えるとどうすべきか？
これは考え方次第なので、完全に個人の見解だが以下の方式が良いのでは？と考える。

1. ログをObject Storageにアップロードする  
  [方法はこれを参照](https://qiita.com/untitle_23/items/c7176e70ea2773a92de5)
2. 1週間したらArchive Storageに移動する
3. 1年したらArchive Storageから削除する

※監査ログなどについては、最初からArchive Storageにアップロードし、削除期間を必要な監査期間とするのが良いかもしれない。今回はそれは対象外。

**そして、上記の2と3に関して「Lifecycle Policy Rules」で対応をする。**

# Object StorageのLifecycle Policy Rulesの設定方法
「1週間でArchive Storageに移動するルールの設定」と「1年したらArchive Storageから削除するルールの設定」をするだけで問題ない。

## 1週間でArchive Storageに移動するルール
`Object Storage` > `Object Storage` > `作成したBucket名` > `Lifecycle Policy Rules`と移動して`Create Rule`を押す。

**[Create Rule画面]**
`NAME`：任意の名前
`LIFECYCLE ACTION`：Archiveを選択
`NUMBER OF DAYS`：7を記載
`PREFIX`：今回は特に設定しない（移動させたいファイルを限定させたい場合等に使用）
`STATE`：ENABLEDにチェックする
<img width="481" alt="001.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/d64af982-f2b6-68dc-00d4-3f6d74fe9b6b.png">

作成できると以下のような画面になる。
<img width="960" alt="002.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/8ee77055-d756-35ba-cd5d-63c8b9bb5c48.png">

## Archive Storageの注意点
ここで、一つ注意点。
上記のルールでArchive Storageに移動したファイルは、Archive StorageのBucketで確認する訳ではなく、**Lifecycle Policy Rulesを有効にしたObject StorageのBucketから確認する**ことになる。

**[Object StorageのBucketの画面]**
<img width="960" alt="003.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/17fa11ba-43d7-1e7e-bd52-231a6e5c20d8.png">
`Storage Tier`が「Archive」だとBucketとしては、Archive StorageのBucketとなるが、上記の画面は「Standard」のため、通常のObject Storageとなる。
そしてObjectsの赤枠部分が、アップロードされているファイル類になる。
**ここは、Lifecycle Policy Rulesを有効にして、Archive Storageに移動する設定をしていると、通常のファイルとArchive Storageに移動したファイルが混在する。**
画面にもある、testopc.logとtest.tgzでもう少し説明する。

**[testopc.logファイルの詳細画面]**
testopc.logのDetailsを押す。
<img width="476" alt="004.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/f68e2291-87c0-7e6d-b0d7-edfa5d177c4a.png">
`Storage Tier`がStandardのため、通常のObject Storageとなっている。

**[test.tgzファイルの詳細画面]**
<img width="475" alt="005.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/a6eeeb43-3ba9-2f34-d198-adb103f65cc1.png">
**`Storage Tier`がArchiveのため、Archive Storageとなっている。**
そのため、Download機能も使用できない。Downloadするためには、一度リストアをする必要がある。詳細は[ここ](https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/managingobjects.htm)を確認。

このような形で通常のファイルとArchive Storageが混在する。

## 1年したらArchive Storageから削除するルール
`Object Storage` > `Object Storage` > `作成したBucket名` > `Lifecycle Policy Rules`と移動して`Create Rule`を押す。

**[Create Rule画面]**
`NAME`：任意の名前
`LIFECYCLE ACTION`：Deleteを選択
`NUMBER OF DAYS`：365を記載
`PREFIX`：今回は特に設定しない（移動させたいファイルを限定させたい場合等に使用）
`STATE`：ENABLEDにチェックする
<img width="481" alt="006.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/d189e282-4da7-98fe-23e7-46122f739d59.png">

作成できると以下のような画面になる。
<img width="960" alt="007.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/278065/08cecc34-9dfb-c717-b7b5-f72405ea5304.png">

# 最後に
ここまで実施すると以下のシリーズも最低限の構築ができたのかなと思える。
[AWSを真似てOracle Cloud Infrastructure(OCI) で簡易 踏み台サーバーを構築してみた1](https://qiita.com/untitle_23/items/af4e6b9fb00cf5981e32)
[AWSを真似てOracle Cloud Infrastructure(OCI) で簡易 踏み台サーバーを構築してみた2](https://qiita.com/untitle_23/items/c7176e70ea2773a92de5)