Akamai を Bitmovin の入出力ストレージとCDNとして利用する

## はじめに

Bitmovin 社（以下 Bitmovin）は特定のハードウェアやプラットフォームに縛られないエンコーディングサービスを提供しています。大量の映像素材がある場合、入出力で利用するストレージのコストは気になりますが、Akamai の提供する S3 互換の安価なオブジェクトストレージサービスは一つの候補になります。また、多数のエンドユーザーにコンテンツを配信するには CDN 技術が有効です。本記事は Bitmovin のサービスと連携して Akamai のストレージサービスと CDN を利用する手順についてご紹介します。

## 設定の流れ

以下の流れで設定を進めます。
1. Akamai オブジェクトストレージの設定
2. Bitmovin の入出力ストレージ設定
3. Akamai CDN の作成

:::note info
Bitmovin のエンコーディング設定手順は省略します。
:::

### 1. Akamai オブジェクトストレージの設定

#### Bucket の作成

https://cloud.linode.com/object-storage/buckets

上記のリンクからオブジェクトストレージの管理画面にアクセスし、`Create Bucket` をクリックします。

![access_ObjectStorage.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/e697c897-0ca3-ca60-62d2-c682aba7357a.jpeg)

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

![create_ObjectStorage_Bucket.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/a56e2c68-590f-e865-a97d-a82465550afc.jpeg)

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

#### アクセスキーの作成

第三者が Bucket に直接アクセスできないようにするために、アクセス制限を設定します。

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

上記のリンクからオブジェクトストレージの管理画面にアクセスし、`Create Access Key` をクリックします。

![access_ObjectStorage_AccessKey.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/51786b35-b059-9e56-8aa3-7a22dfa952d3.jpeg)

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

![create_ObjectStorage_AccessKey.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/dff1ecff-4b00-e34d-287c-c60d923be292.jpeg)

Access Key と Secret Key が表示されるので、どこかにメモしておいてください。

![ObjectStorage_AccessKey_SecretKey.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/f63b44d5-3c13-f43d-5b6e-dc891b02c5cb.jpeg)


これでアクセスキーの作成は完了です。

### 2. Bitmovin の入出力ストレージ設定

Bitmovin の管理画面にアクセスし、Inputs > + Create をクリックします。

![access_bitmovin_input.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/e00061a3-8261-f377-25d8-e8a143127a3a.jpeg)

上段にストレージサービスの選択メニューがあります。
AKAMAI がありますが、今回はオブジェクトストレージを利用するため、`GENERIC_S3` を選択します。

:::note info
Akamai のオブジェクトストレージは S3 互換のため、このパラメータを指定します。
:::

![create_bitmovin_input_and_output.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/c49b2147-0b94-8606-7023-573f09d33a93.jpeg)

*がついた項目と、`Create also as output` を選択し、`Create` をクリックします。
`Host` と `Bucket Name` はさきほど作成した Bucket の情報を入力してください。
オレンジで囲った部分で Bucket の情報を確認できます。

![dashboard_ObjectStorage.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/ce56abad-c721-2fd2-99e1-928e29675a5b.jpeg)

`Access Key` と `Secret Key` はさきほどメモした値を入力してください。

| 項目 | 入力例 |
|:-----------:|:------------:|
| Name       | bitmovin     |
| Host     | bitmovin.jp-osa-1.linodeobjects.com|
| Access Key       |  作成した Access Key      |
| Secret Key         |  作成した Secret Key         |
| Bucket Name | bitmovin |

これで入出力に利用するストレージ設定は完了です。

### 3. Akamai CDN の作成

今回はストリーミングに特化した CDN である Adaptive Media Delivery を作成します。
こちらの記事で作成の流れが記載されていますので、修正が必要な部分について記載します。

https://qiita.com/isss802/items/e01bb17a05e773c5aec1#akamai-adaptive-media-delivery%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B

#### Origin Server 

Origin Server の `Origin Server Hostname` と `Forward Host Header` を変更します。

![Property_OriginServer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/09515dc0-c23f-fb82-35c7-45a5b1302e4e.jpeg)

| 項目 | 入力例 |
|:-----------:|:------------:|
| Origin Server Hostname     | bitmovin.jp-osa-1.linodeobjects.com|
| Forward Host Header       | Origin Hostname     |

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

\+ Behavior > Standard property behavior をクリックしてください。

![add_behavior.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/df96a0d0-126d-cfae-fd54-5edf3f3581df.jpeg)

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

![add_OriginCharacteristics.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/d16fd785-2132-3095-6c11-83df4e845ee7.png)

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

![modify_OriginCharacteristics.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/dbdab7be-68eb-df35-fe03-bd7cec08b5e5.jpeg)

各パラメータは以下を参考に入力してください。

| 項目 | 入力例 |
|:-----------:|:------------:|
| Authentication Method       | Amazon Web Services    |
| Encrypted Storage     | No |
| Access Key ID       |  作成した Access Key       |
| Secret Access Key         |  作成した Secret Key         |
| Region | jp-osa-1 (オブジェクトストレージを作成したリージョン名) |
| Hostname (Optional) | bitmovin.jp-osa-1.linodeobjects.com |
| Endpoint Service| s3 | 

設定を展開したら Akamai CDN の設定は完了です。
これで Bitmovin でエンコードした動画を Akamai CDN を利用して配信できる構成が出来上がりました。

## まとめ
今回は Akamai と Bitmovin を連携して利用する方法をご紹介しました。
動画サービスの場合、ストレージの利用量や転送量による課金が重くのしかかってきます。
Akamai のクラウド・コンピューティング・サービスを利用することで安価なオブジェクトストレージによるコスト圧縮と、加えて安定した CDN を利用できます。
ぜひ一度 Akamai のクラウド・コンピューティング・サービスを使ってみてください。

## 今後について
Akamai と Bitmovin はまもなくエンコーディングの部分でも連携して利用できるようになる予定です。（ただし、変更の可能性があります。）

![akamai-bitmovin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711428/efabb98e-a602-d252-59c0-e25c12a2b06b.png)

https://bitmovin.com/akamai