助け合いフォーラム

AWS

AWS ソリューションアーキテクト - アソシエイト(SAA-C03)
問題ID : 30511
問題を開く
ある企業がローカルに保存している300TBのデータは、企業独自のフォーマットで保存されている。AWSクラウドへデータを移行するにあたり、フォーマットを標準のものに変換してから保存するようにしたいとき、適切な方法はどれか。なお、データ移行の期間は1ヶ月とする。

正解

AWS SnowballデバイスにLambda関数を設定し、データの変換処理を組み込む。変換したデータをSnowballへ保存する

解説

AWS Snowballは、オンプレミスの多量のデータをAWSストレージへ転送するサービスです。利用者には大容量のストレージを備えた機器がAWSから貸し出され、移行対象のデータを機器へ取り込んでからAWSへ返送すると、データがAmazon S3へ保存される仕組みです。また、貸し出される機器にはCPU(vCPU)やメモリなどを潤沢に搭載したものを選択でき、データ転送だけでなく、IoT端末やエッジコンピューティング(IoT端末自身、または近いエリアのサーバーで処理を行うこと)を実現することもできます。

本設問のケースでは、「大容量のデータ(300TB)をAWSクラウドへ移行する」という主旨から、AWS Snowballを利用して移行するのが効率的かつ高速な手法です。
Snowballではオプションとして事前にEC2 AMIやLambda関数(※)をデバイスに設定しておくことができます。転送するデータに特殊な処理を行いたい場合や分析を行いたいようなケースで活用します。
※Lambda関数...サーバーレスでプログラムの実行が可能なAWSサービス。他サービスと連携でき、イベントが発生したタイミングでプログラムを起動させることができる。Lambdaで起動するコードをLambda関数(Lambda Function)と呼ぶ。

したがって正解は
・AWS SnowballデバイスにLambda関数を設定し、データの変換処理を組み込む。変換したデータをSnowballへ保存する
です。

事前に設定しておいたLambda関数はSnowball Edgeデバイス上で動作します。デバイスにデータが書き込まれたタイミングでLambda関数を動作させ、データ処理を行うことができます。
なお、データ変換の他にも、サイズの小さなファイルが多量にある場合には圧縮してからデバイスへ転送し、Lambda関数を使ってデバイス上のファイルを解凍するといったユースケースもあります。

その他の選択肢については、以下のとおりです。

・AWS Storage Gatewayを利用する。自社のアプリケーションなどでフォーマットを変換してからS3バケットへ保存する
Storage Gatewayはオンプレミス(自社環境)からAWSのストレージサービスへのアクセスを高速かつセキュアに行うことができるサービスです。今回のケースではデータをAWSクラウドとオンプレミスとで共有する目的でないため、Storage GatewayではなくSnowballを利用してデータ移行を行う方が効率的ですので誤りです。

・自社のアプリケーションで変換したデータをインターネット経由でS3バケットへ転送する
300TBのデータを仮に1Gbpsの回線を80%使用してアップロードしたとしても約35日かかります。
1ヶ月以内に移行という要件を満たせないので、Snowballを利用して確実に移行する方が効率的です。よって、誤りです。

・新たにEC2インスタンスを作成し、データ変換プログラムを配置する。EC2インスタンスにインターネット経由でデータを転送し、出力結果をS3バケットへ保存する
前述のとおり、300TBのデータをインターネット経由で1ヶ月以内に移行ができないので、誤りです。

参考

【AWS Snowファミリー】
オンプレミス(自社環境)からクラウドへシステムなどを移行するにあたり、データの転送は非常に大きな課題です。移行するデータ量が数十TB~PB(※)級の場合はネットワークを通じて転送しても数時間で終わるものではありません。また、転送に使用できるネットワーク帯域や速度、セキュリティ、コストなども考慮する必要があります。場合によっては、物理的にデータが保存されたデバイスを人間が持って移動した方が早く確実なケースもあります。
※ 1TB(テラバイト)= 1024GB、1PB(ペタバイト)= 1024TB

AWS Snowファミリーは多量のデータをAWSストレージへ転送するサービスです。利用者には大容量のストレージを備えた機器がAWSから貸し出され、移行対象のデータを機器へ取り込んでからAWSへ返送すると、データがAmazon S3へ保存される仕組みです。また、貸し出される機器にはCPU(vCPU)やメモリなどを潤沢に搭載したものを選択でき、データ転送だけでなく、IoT端末やエッジコンピューティング(IoT端末自身、または近いエリアのサーバーで処理を行うこと)を実現することもできます。
Snowファミリーにはデータの量や用途ごとに選べる3つのサービスがあります。


本項では3つのSnowファミリーのうち Snowball について解説します。

【AWS Snowball】
Snowballを注文する際は、データ転送(インポート・エクスポート)用途とコンピューティング用途など自分にあったものを選択します。

なお、コンピューティング用途の場合は、複数台で構成するクラスターの注文も可能です。クラスターを構成することにより耐久性や耐障害性を向上させることができます。

さらにどの機器を利用したいかも選択します。


●Snowball Edge Storage Optimized
データ転送用のオプションで、デバイスには内蔵HDD80TBが搭載されています。
オンプレミスからS3へデータをインポートする用途のほかに、S3からエクスポートするケースでも利用します。インポートする際は空のデバイスが届きますので、自分でデータをデバイスへ転送します。エクスポートする際は、対象のデータが格納されたS3バケットを注文時に選択すると、デバイスにデータがロードされた状態で届きます。
いずれも利用完了後にAWSへ返送すると、データ移動など必要な処理が行われたあとにデータが消去されます。
なお、1台あたりのストレージ容量は最大で80TBですので、それ以上の容量を転送したい場合は複数のSnowballデバイスを申請する必要があります。

●Snowball Edge Compute Optimized
Storege Optimizedがデータ移行向けのデバイスであるのに対して、Compute Optimizedはコンピューティング向けのデバイスです。多くのCPU(vCPU)とメモリを搭載した機器が用意されており、更にGPUを備えた機器を注文することもできます。
本オプションはデータの転送を行う前処理として利用します。独立した場所(ネットワーク環境が整っていない、インターネットを利用できないなど)における機械学習や、分析処理などの用途に向いています。
なお、Compute Optimizedに限らず、Snowファミリーのデバイスはインターネットを必要としないオフラインでの操作が可能です。

なお、Snowballではオプションとして事前にEC2 AMIやLambda関数をデバイスに設定しておくことができます。転送するデータに特殊な処理を行いたい場合や分析を行いたいようなケースで活用します。

【クラウドへのデータ移行】
AWSクラウドへデータ移行を行うサービスには、Snowballのほかに以下のようなものがあります。

・AWS Storage Gateway ... オンプレミスからAWSのストレージサービスへのアクセスを高速かつセキュアに行うことができるサービス
・AWS Direct Connect ... AWSとの物理的な専用回線を構築するサービス
・AWS DataSync ... オンプレミスのストレージと、Amazon S3、Elastic File System(EFS)、FSx For Windowsファイルサーバーなどの間でデータを移行するサービス
DataSyncで転送されるデータは、ファイルやフォルダのタイムスタンプ、ディレクトリ構造、アクセス権限などのメタデータが保持されます。
※「AWS Storage Gateway」「AWS Direct Connect」の詳細はそれぞれの分野を参照してください。

Snowballと他のサービスとの違いは、オフラインでデータを移行できるかどうかです。上述したサービスはオンプレミスからオンラインでデータにアクセスするため、移行対象のデータが更新中のものであったり、停止できないシステムのデータを移行したい場合に利用します。
Snowballは、AWSから送付されたハードウェアに一旦データを保存し返送すると、後日AWSによって当該データがS3バケット上へ保存されるため静的なデータの移行に適しています。例えば昨年までの数年分のバックアップデータの一括移行や、過去のログファイルの保存先として利用するのがよいでしょう。移行済みのデータを活用したい場合は、S3上のデータへいつでもアクセスできます。
Snowballへ転送した後に生成されたデータは直接S3に保存することで、初期転送するデータ量を抑えつつスムーズにクラウドストレージに移行できます。

上に戻る

回答が間違っていると思われる

公開日 2023/12/16

問題文は

ある企業がローカルに保存している30TBのデータは、企業独自のフォーマットで保存されている。
AWSクラウドへデータを移行するにあたり、フォーマットを標準のものに変換してから保存するようにしたいとき、
適切な方法はどれか。なお、データ移行の期間は 1週間 とする。

選択肢は

  • AWS SnowballデバイスにLambda関数を設定し、データの変換処理を組み込む。変換したデータをSnowballへ保存する
  • AWS Storage Gatewayを利用する。自社のアプリケーションなどでフォーマットを変換してからS3へ保存する
  • オンプレミスからS3バケットへ転送する際、自社のアプリケーションで変換したデータをアップロードする
  • 新たにEC2インスタンスを作成し、データ変換プログラムを配置する。S3上へは変換前のデータを保存し、データ変換プログラムに自動で変換させ、再度アップロードさせる

で、正解は Snowball となっているが、Snowball の注文から S3 のアップロードまで 最短1週間程度 であることを考えると現実的に1週間の期限に間に合うとは思えない

スタッフからの返信

s staff_satomi

2023/12/18 11:53

zampona様 ご指摘の点を修正いたしました。 ご報告いただきまして、誠にありがとうございます。

この投稿に対して返信しませんか?