この記事では、NetApp Cloud Syncを使ってBOXにあるファイルをAmazon S3に同期したいと思います。

Keyword
-
Amazon S3とは
Amazon S3(Amazon Simple Storage Service)はデータを格納・管理できるオブジェクトストレージサービスです。主にウェブサイトやアプリケーションなどのデータバックアップおよび復元、アーカイブなど、さまざまなことに利用します。また、ファイルのバックアップ、ファイル処理の加工前、あるいは加工後のファイルの保存、動画・画像ファイルやCSSなどWebで使う静的なファイルをS3に置いて配信するなど、非常に広範囲な使い方ができます。 -
BOX
BOXは、世界中で活用されているファイル共有のオンラインストレージサービスです。オンラインストレージとはさまざまな形式のファイルを管理できるサービスであり、マニュアルの共有や議事録の保存など、ビジネスのあらゆるシーンで活用されています。また、BOXは海外で開発されたサービスですが、日系企業でも広く導入されています。 -
NetApp Cloud Sync
ハイブリッド・マルチクラウド環境でのデータ同期サービスです。NFSまたはCIFSファイル共有、Amazon S3 Object、Azure Blob、Google Cloud Storage、IBM Cloud Object Storage、NetApp StorageGRID、BOX、SMB Serverなど異なるフォーマットのファイルサーバーの間でデータを転送できます。
手順
1.BOXの認証情報を準備
2.Cloud SyncとS3バケットをAmazon Cloudに作成
3.BOXにあるファイルをS3バケットに同期
構成イメージ:

1.BOXの認証情報を準備
BOXのサイトにアクセスしてアカウントを作成します。外部ユーザーの二要素認証が必要の為、Business プランのEnterpriseを14日無料利用できるプランを選びます。

ログインすると、最初にこの画面になります。Dev ConsoleとAdmin Consoleにより、設定を準備します。

- Dev Consoleでの操作
Dev ConsoleをクリックしてCustome AppとServer Authentication (with JWT)を選び、Appを作成して必要な認証情報Client ID、Client Secret、Enterprise ID、Private Key、Passphraseを取得します。

Generate a Public/Private Keypairを押してDownlaod as JSONして保存します。

Editorで開いて、中身のJsonを確認して後程これらの情報を使います。
- Admin Consoleでの操作
作成したAppのClient IDを入れてAddします。

Contentにアクセスして、Log in to user's accountをした後にファイルを作っておきます。
- 注意事項:
必ず、My Apps ->Configuration -> App Access LevelをApp + Enterprise Accessにします。

上記の設定後に、Admin ConsoleからReauthorize Appをします。

ここまではBOXの準備が完了です。
2.Cloud SyncとS3バケットをAmazon Cloudに作成
- Cloud Sync
こちらの記事「Amazon Cloud上にNetApp Cloud SyncのData Brokerを作成する二つの方法」を参考して、Cloud SyncをAWS上に作成します。

Cloud SyncのIAM roleをクリックしてARNをメモし、後程S3バケットに使います。
- S3
AWS consoleでBlock public accessをoffにしてS3バケットを作成します。

こちらのドキュメントを参考して「The permissions included in this JSON file」を確認した上でBucket policyを編集します。<bucketName>をここで作成したバケットにして、<roleARN>を上記のCloud SyncでメモしたをARNにします。
3.BOXにあるファイルをS3バケットに同期
NetApp BlueXPのGUIからドラッグでBOXとS3のSync Relationshipを作成します。

最初準備したBOXの認証情報を入力します。

正しくBOXの認証情報を入れた後、BOXのファイルが読めるようになります。

BOXにあるデモ用のファイルを確認します。

用意したS3バケットを選択します。

S3バケットへのアクセス方法は、S3 Private LinksとS3 Bucket Policy二つがあります。
S3 Private Linksの場合は、事前にAWS consoleでS3バケットにアクセスできるVPC endpointを作成して選択できます。

今回はS3 Private Linksを利用せずに、S3 Bucket PolicyにCloud SyncのARNを入れてアクセスできるように設定しました。

Relationship Metadataはdefaultのままで行きます。

BOXにあるファイル/NetAppCloudSyncDemo/をS3バケット netappcloudsyncboxtos3demoに同期します。

同期が完了後、Dashboardから詳細を確認できます。

S3に同期できたファイルを確認します。

まとめ
NetApp Cloud Syncを使って、NetApp BlueXPのGUIにより、BOXにあるファイルをAmazon S3に同期しました。同じことをAmazon FSx for NetApp ONTAPでもできます。
参考リンク
1.Permissions required for S3 buckets in other AWS accounts
2.Amazon S3 とは
3.Cloud Sync: Creating a new data broker in AWS
4.Amazon Cloud上にNetApp Cloud SyncのData Brokerを作成する二つの方法
5.NetApp BlueXP: Create a Connector in AWS from BlueXP
6.クラウドストレージ「Box」とは?
7.Configuring provisioning for Box
8.【AWS初心者向け】ストレージサービス「Amazon S3」