移行方法について柴田氏は当初、AWSが提供するデータ転送サービスの「AWS Snowball」を利用して商品画像を社内サーバからクラウドへ移行しようと考えていた。
AWS Snowballは、80TBの容量を持つ専用デバイス「Snowball」を用いてデータを転送できるサービスだ。AWSから配送されるSnowballを社内ネットワークに接続し、データを暗号化して取り込んだ後、AWS側に返送することで、S3にデータが取り込まれる。
しかし柴田氏は「AWS Snowballは今回の移行には合わないと判明した」と述べる。
「AWS Snowballの利用を想定し、移行する画像量と画像の平均サイズ、ネットワークの転送速度から移行にかかる時間を試算した結果、移行に約73日かかると判明した。そこまで時間をかけられなかったため、別の方法を検討する必要があった」
そこで柴田氏は「S3のAPIを用いて、全画像をAPIで送信して保存することで移行しよう」と考えた。
「3並列のバッチ処理で保存する方式を試算した結果、約17日で移行できると分かった。AWS Snowballと比べてSnowballの手配や、Snowballとの接続に必要なサーバとツールが不要になるメリットもあり、『S3に全画像を送信して保存する方式』をベースに検討を開始した」
「さらに転送速度の改善ができないものか」と柴田氏が検討したのは、リサイズ画像を、Lambdaで作成して保存することだ。
「Lambdaでリサイズ画像を作成して保存することで、『オンプレミスからS3に送信する画像をオリジナル画像のみに絞れる』『画像変換用のサーバも不要になる』というメリットがあった。この方式なら、約9日で移行できることも分かり、この移行方式を採ることにした」
柴田氏は、クラウド移行後の現在のシステム構成について説明する。
現在のシステム構成は、商品画像(オリジナル)を「一次受けバケット(S3の領域)」に保存し、Lambdaを用いてリサイズ画像を生成。オリジナル画像とリサイズ画像を別々のバケットに保存する形だ。一次受けバケットは、企業から送信された画像が破損していたり、エラーで保存できなかったりした場合にリカバリー用バケットに送る役割もある。バケットに保存した商品画像は、移行前と同様にCDN経由で配信している。
この構成について柴田氏は「クラウド移行前よりもコストは若干増えている感覚ではあるが、AWSのマネージドサービスを使う構成により、エンジニアがスケーラビリティに関して心配する必要がないメリットの方が大きい」と述べる。
最後に柴田氏はシステムの移行を振り返り、講演を締めくくった。
「クラウドに関する知識を持ち合わせていなかったが、S3やLambdaに触れることで、クラウドの知識を身に付ける機会となった。社内サーバからクラウドへの移行がうまくいったのは、移行に関わった人々が普段から連携しており、移行に向けて気軽に相談できる空気感があったからだ。さらに、AWS SAのレスポンスの速さと問題解決の意識の高さにも救われた。今後は、サーバレスのメリットを他のサービスにも享受させるべく、サーバレス化の検討を続けていきたい」
Copyright © ITmedia, Inc. All Rights Reserved.