Amazon Glacier ハンズオン

###Amazon Glacier　の3つの用語**###

|用語|説明|
|---|---|
|アーカイブ|画像などGlacierに保存するオブジェクトです。|
|ボールト|アーカイブを保存するためのコンテナです。|
|ボールトアクセスポリシー|ボールトに保存されたデータへのアクセスを許可または禁止するユーザやユーザに許可または禁止数する操作を決定します。|

###Amazon Glacier　の保存方法とアクセス方法###
AWSマネージメントコンソール内でアクセスできますが、ただこの方法ではボールトの作成や削除、ポリシーの作成や管理など、実行できる操作が限られます。
REST API、AWS SDK for Java、AWS SDK for .NETを活用すると、AWS CLI ウェブアプリケーションから操作ができます。
この方法を利用すると、S３のデータを含め、アクセス可能可能なあらゆる場所にあるデータをアーカイブできます。

###データ取り出し###

|取り出し方法 | |
|--- |--- |
|迅速 |通常 1〜5 分以内|
|標準 |通常、標準取り出しは 3〜5 時間 デフォルト|
|大容量 |通常、大容量取り出しは 5〜12 時間で完了します |

詳細な概要は、[アーカイブの取り出しオプション](https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/downloading-an-archive-two-steps.html)
取り出し方法、[Amazon S3 Glacierのよくある質問](https://aws.amazon.com/jp/glacier/faqs/#dataretrievals)
を確認してください。

###ボールトロック###
ロックポリシーは「絶対に書き換えられない」「絶対に削除できない」ポリシーを適用することで企業コンプライアンスをクリアできる、
という場合や多人数、社外の会社さんに運用を頼む時等に絶対にログを消さないで欲しい、というようなケースの場合に
「消えた時どうするか」ではなく「そもそも消えない」という状況を作り出すために使います。

例えば、全員がアーカイブを削除することを禁止したい場合は以下のようになります。


```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "glacier:DeleteArchive",
            "Resource": "arn:aws:glacier:ap-northeast-1:00000000000:vaults/naata-Glacier"
        }
    ]
}
```

ボールトのロックには、2 つのステップがあります。

1.ボールトロックポリシーをボールトに関連付けることによってロックを開始します。これにより、ロックが InProgress 状態になり、ロック ID が返されます。InProgress 状態では、ロック ID の有効期限が切れるまでの 24 時間にボールトロックポリシーを検証することができます。

2.ロック ID を使用してロック処理を完了します。ボールトロックポリシーが想定どおりに機能しない場合は、ロックを中止して最初からやり直すことができます。

https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/vault-lock.html

###料金###

https://aws.amazon.com/jp/about-aws/whats-new/2021/03/amazon-s3-glacier-announces-price-reduction-for-put-and-lifecycle-requests/

###暗号化###

- S3 Glacier に保存した静止データは、自動的にの管理するキーを利用し AES-256 を使用してサーバー側で暗号化される。

https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/key-management.html

---



###1.ボールトの作成###
ステップ 1: ボールト名
「ボールト名」を入力し、「次へのステップ」。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/9ab7d2b2-148b-9cf4-4dbe-a673d66ee81a.png)

ステップ 2: イベント通知
特定のジョブが完了するたびに自分またはアプリケーションに通知を送信するように設定できます。
通知メッセージは、Amazon Simple Notification Service (SNS) によって送信されます。
今回は試しに「通知の有効化と SNS トピックの作成」にしてみます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/cfe24246-4886-7141-bf75-ac3b5be8b778.png)

ステップ 3: イベント通知の詳細
「トピック名」「表示名」を入力し、トリガーが両方ともチェックしておきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/a9cff8d9-6225-bacc-c682-b5cbd36c6ac6.png)

ステップ 4: 確認
「送信」します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/a233fafe-9a37-a050-851a-d888b4a56e39.png)


###2.S3のGlacier自動アーカイブ機能を設定する###
S3のGlacier自動アーカイブ機能は頻繁に使用するデータはS3に保存しておき、ルールを設定して自動的に古くなったデータをGlacierのストレージにアーカイブするといったことが可能になる機能です。

S3のバケットを選択、「フォルダの作成」から適当なフォルダを用意しておく。
![スクリーンショット 2018-11-07 18.32.10.png](https://qiita-image-store.s3.amazonaws.com/0/280929/3fbd3561-23ca-ddb2-434c-51ebeb797397.png)

「管理」「ライフサイクル」「ライフサイクルルールの追加」をクリック。
![スクリーンショット 2018-11-07 18.35.49.png](https://qiita-image-store.s3.amazonaws.com/0/280929/3752d6ae-994c-bfb6-8387-c59e3a6924db.png)

**名前とスコープ**
「ルール名」と「プレフィックス/タグ」を入力します。
今回は以下のように　Glacier/ のものだけをアーカイブするように設定。
![スクリーンショット 2018-11-07 18.37.58.png](https://qiita-image-store.s3.amazonaws.com/0/280929/cc6f3752-6d4c-7bca-bc5e-f4f9e4204a03.png)

**移行**
アーカイブを何日後におこなうのか指定します。
今回は以下の通り設定します。
「以前のバージョン」を選択。
オブジェクトが以前のバージョンになる：「Amazon Glacier への以降期限」
オブジェクト作成からの日数：「2」
参考：[オブジェクトの移行](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)

![スクリーンショット 2018-11-07 18.43.41.png](https://qiita-image-store.s3.amazonaws.com/0/280929/59bb44c8-74e9-7b07-158e-902174910e40.png)

**有効期限**
アーカイブするファイルを何日後にS3から消去するのか指定します。
「以前のバージョン」を選択。
「前のバージョンを完全に削除する」を選択し、「次の後:3日間以前のバージョンになってからの日数」にする。
![スクリーンショット 2018-11-07 18.50.29.png](https://qiita-image-store.s3.amazonaws.com/0/280929/19295155-60ba-2564-0ccc-f7d7af37ea14.png)

**確認**
「保存」をクリックしたら、設定は以上になります。
![スクリーンショット 2018-11-07 18.50.40.png](https://qiita-image-store.s3.amazonaws.com/0/280929/f625f28e-8d11-6489-e097-6777055a2809.png)


###3.SNSで通知先を設定する###

SNSを開き、「トピック」から[1.ボールトの作成]で作成した、Glacier のトピックを開きます。
![スクリーンショット 2018-11-11 20.24.28.png](https://qiita-image-store.s3.amazonaws.com/0/280929/3ac1a63e-3088-dd64-bd8a-94c169efffd8.png)

「サブスクリプションの作成」を開き、[プロトコル]に「Email」、[エンドポイント]に「通知先のメールアドレス」を入力。
![スクリーンショット 2018-11-11 20.28.34.png](https://qiita-image-store.s3.amazonaws.com/0/280929/65cf05bd-7cad-2ee9-2393-eb2c7570adc4.png)

基本的な設定は以上です。