Linode Object StorageへのアクセスをAkamai CDN経由のみで実現する

## はじめに
Linode Object Storageは非常に安価で便利なサービスのため、画像や動画、プログラムパッチなどサイズが大きなファイルを配信するためのOrigin Serverとして利用するケースがあるかと思います。
その際にAkamai CDNを利用しているユーザーは従来のAkamaiストレージサービスであるNetStorageのようにAkamai CDN経由のみでアクセスさせたいと考えるのではないでしょうか。
そこで今回はLinode Object StorageをAkamai CDN経由のみでアクセスする手順についてご紹介します。

# Linode Object Storageとは
Linode Object Storageはグローバルに利用可能なS3互換ストレージソリューションです。
データ量は250GBから1PBまで拡張することができます。またインバウンド転送無料、アウトバウンド1TBまでの転送が価格に含まれています。

https://www.linode.com/ja/products/object-storage/

## 設定の流れ
1.Linode Object Storageの設定
2.Cloud Access Managerの設定
3.Akamai CDN の設定

### 1. Linode Object Storageの設定
#### Bucket の作成
https://cloud.linode.com/object-storage/buckets

上記のリンクからObject Storageの管理画面にアクセスし、`Create Bucket` をクリックします。

![createbucket.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/8ba44de5-99aa-51a8-6e18-5d93653bc97d.png)

`Label` を入力し、 `Region` を選択し、`Create Bucket` をクリックします。

![createbucket2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/ea1c4442-750b-a01e-0417-5f24bd53e6e3.png)

これで Bucket の作成は完了です。

#### Linode Object Storage Access Keyの作成
Akamai CDNのみからのアクセスにするため Bucket にアクセス制限を設定します。

https://cloud.linode.com/object-storage/access-keys

上記のリンクからObject Storageの管理画面にアクセスし、`Create Access Key` をクリックします。

![accesskey.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/80dcd5ad-70af-0f5a-1350-407affe9b1f7.png)

`Label` を入力し、`Limited Access` を有効化します。
さきほど作成した Bucket のみ `Read Only` とし、`Create Access Key` をクリックします。

![accesskey2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/40e982b6-c1b0-c50d-6af1-1931b74c5340.png)

Access Key と Secret Key が表示されるので、メモ、もしくはダウンロードしてください。
※Secret Keyは `I Have Saved My Secret Key` を押すと表示されなくなるので注意してください。 

![accesskey3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/dcddfde1-c225-5622-da16-0c2b251e2d2c.png)

これでLinode Object Storage Access Keyの作成は完了です。

### 2. Cloud Access Managerの設定
#### Cloud Access Managerとは
Cloud Access Manager はCloud Origin認証を可能にし、Access Keyの形でその認証情報を安全に保存および管理することができます。
また、Akamai Intelligent PlatformとCloud Providerとの相互接続により、Akamaiの複数の製品や配信設定でAccess Keyを参照することができます。

#### Access Keyの作成
https://control.akamai.com/

上記のリンクからAkamai Control Centerにアクセスし、`Cloud Access Manager` と検索しクリックします。

![cam.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/28068fab-921b-072b-a1b7-bd299beb6b87.png)

次に`New Access Key`をクリックし、Access Keyを作成します。

![cam2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/2bdd1122-8604-7079-122c-538f7366c3d5.png)

以下のように表示されます。
![cam3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/a47d080e-c182-f4a3-12b9-b04f986ba3f3.png)

各パラメータは以下を参考に入力しActivateしてください。
Access key IDとSecret access key IDに関してはLinode Object StorageのAccess Keyで作成したものを入力してください。

| 項目 | 入力例 |
|:-----------:|:------------:|
| Name       | tkmt91-test-key(任意の名前)    |
| Contract    | 1-XYZYX(Akamai Contract ID)   |
| Group    | tkmt91-property(設定対象Property Group)   |
| Authentication method    | Amazon Web Services(S3互換のため)   |
| Access key ID       |  (Bucket Access Key)       |
| Secret access key ID       |  (Bucket Secret Key)       |

Activateには約10分かかります。

![cam4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/7be7c962-8958-ea4e-9584-2fc7335ca097.png)

Activate後、Access Keyの作成完了です。

![cam5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/f4189751-dbd3-ecb4-acdd-304b302059bb.png)

### 3. Akamai CDN の設定
今回は大容量コンテンツ配信に特化した CDN である Download Delivery を作成します。
Linode Object Storageへのアクセスに関連する手順のみ記載します。
その他必要設定は環境に合わせて設定してください。

#### Origin Server 
Origin Server の `Origin Server Hostname` にLinode Object Storageで作成した BucketのHostnameを設定します。

![dd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/9d7fa141-705b-d904-d71f-4df96e7c4b4c.png)

※Hostnameは作成したBucketのNameの下に記載されています。

![dd2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/e2976482-91ab-1bbc-a48a-b9183aca9561.png)

次に Behavior を一つ追加します。

\+ Behavior > Standard property behavior をクリックします。

![dd3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/cc738abd-9d51-7039-b222-e2233ab718a2.png)

左のメニューで `Origin Characteristics` を選択し、`Insert Behavior` をクリックします。

![dd4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/24cde2cc-772b-da56-3df4-b773026a4180.png)

以下のように Behavior が追加されます。

![dd5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617611/332d0d69-d5a6-7a3e-e184-e3bfc83ea966.png)

各パラメータは以下を参考に入力してください。
Access Keyに関してはCloud Access Managerで作成したAccess Keyを選択してください。

| 項目 | 入力例 |
|:-----------:|:------------:|
| Authentication Method       | Amazon Web Services(S3互換のため)    |
| Encrypted Storage     | Yes  |
| Access Key       |  tkmt91-test-key(Cloud Access Managerで作成したAccess Key)       |
| Region | jp-osa-1(Bucketを作成したリージョン) |
| Endpoint Service| s3(S3互換のため) | 

設定を展開したら Akamai CDN の設定は完了です。
これでLinode object storageへのアクセスはAkamai CDN経由のみのアクセスとなりました。

# 最後に
この記事ではLinode object storageへのアクセスをAkamai CDN経由のみで実現する方法についてご紹介しました。今回はLinode Object Storageを用いましたが、AWS S3やGoogle Cloud Storageでも同様にご利用できます。簡単によりセキュアなアクセスを実現できますのでぜひ一度お試しください。