AWS Snowballことはじめ パート4【Snowballの配送依頼】

eyecatch_snowball

Snowball はセキュアなアプライアンスを使用したペタバイト規模のデータ転送ソリューションです。 今回からは最も一般的なユースケースと思われる、オンプレミスから AWS へのデータ移行(インポートジョブ)の手順を紹介します。

今回は Snowball の配送依頼の手順を紹介します。

3 行まとめ

今回のブログのポイントは以下の3点です

  • 利用する S3 と同じリージョンで Snowball ジョブを作成
  • Snowball のディスク容量はアメリカは 80TB/50TB の2択、残りの地域では 80TB 一択。
  • ジョブの進捗は SNS で通知可能

リージョン選択

AWS Snowball はすべてのリージョンで利用出来るわけではありません。 AWS Snowball が提供されているリージョンに移動します。 また、Snowball を利用するリージョンと Snowball の配送先は強い結びつきがあります。

例えば

  • アメリカ内のリージョンを利用する場合は、アメリカ以外には Snowball を配送できない
  • Sydney リージョンを利用する場合は、オーストラリア以外には Snowball を配送できない
  • EU 内のリージョンを利用する場合は、EU の28カ国以外には Snowball を配送できない

などです。

参考 : https://docs.aws.amazon.com/AWSImportExport/latest/ug/shipping.html

Snowball マネジメントコンソールへ移動

AWS マネジメントコンソールにログイン後、Snowball を利用するリージョンに移動し、"Create job" ボタンをクリックするとジョブの作成画面に移動します。

Snowball インポートジョブの作成

まずは AWS S3 にデータを取り込むインポートジョブを AWS マネジメントコンソールから作成します。

Snowball のトップから ”Create Job" をクリックすると、ジョブの作成画面に遷移します。

Step 1: Plan your job

snowball-step-01

ジョブの種類は以下の2種類があります。

  • AWS S3 にデータを転送する Import into Amazon S3
  • AWS S3 からデータを転送する Export from Amazon S3

今回は、AWS S3 にデータを取り込むため、前者の "Import into Amazon S3" を選択します。

Step 2: Give shipping details

次に、Snowball のサイズ配送先配送スピードを選択します。

snowball-step-02

サイズ

アメリカ地域では - 50TB - 80TB の両方に対応しているため、欲しいサイズを選択します。

アメリカ以外の地域では 80TB にしか対応していないため、この設定画面は存在しません。

50 TB は 200 USD, 80 TB は 250 USD の料金がかかります。

配送先

Snowball の配送先を指定します。

  • 私書箱(post office box) への配送はできない
  • Snowball の配送先と Snowball の利用先は同じでなければいけない

などの制限があるためご注意下さい。

参考 : https://docs.aws.amazon.com/AWSImportExport/latest/ug/shipping.html

配送スピード

配送スピードのオプションは地域によって異なります。 例えば、ドイツのフランクフルト・リージョンでは

  • Express Shipping (1-2 business days)
  • Standard Shipping (3-7 business days)

が選択可能でした。

配送方法によって料金は変わります。

Step 3: Give job details

snowball-step-03

Import job name

ジョブ名を記入します。

Destination

データのインポート先バケットを指定します。

専用バケットを用意していなかった場合は、プルダウンの "Create a bucket" から新規 S3 バケットが作成可能です。

Step 4: Set security

snowball-step-04-after-form-filled-in

Permission

Snowball が S3 バケットにオブジェクトを書き込むために assume するロールを用意します。

ウィザード形式では以下のロールが作成されました

Permissions

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketPolicy",
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::*"
    }
  ]
}

Trust Relationships

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "importexport.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "AWSIE"
        }
      }
    }
  ]
}

Encryption

AWS Snowball では Snowball に保存するオブジェクトは暗号化されます。この暗号鍵 は Envelope Encryption を使って暗号化されます。

Workflow_EnvelopeEncryption

ここでは Envelop Encryption に使うマスター鍵を指定します。

Snowball 用のデフォルトのマスター鍵の他、同一・別アカウントのユーザーが作成した鍵を指定することもできます。

参考 : https://docs.aws.amazon.com/AWSImportExport/latest/ug/kms.html

Step 5: Set notifications

snowball-step-05

Snowball が出荷されたなど、Snowball ジョブのステータスが遷移すると SNS 経由で通知を受けることができます。 この通知設定を行います。

SNS と 通知を受けたいイベントを指定します。

対応しているイベントは以下です。

Job Status Description Job Type That Status Applies To
Job created ジョブが作成された直後。このステータスの間だけは、ジョブをキャンセルできます。 Both
Preparing Snowball AWSは、ジョブのためにSnowballを準備しています。 Both
Exporting AWSは、Amazon S3から Snowball にデータをエクスポートしています。 Export
Preparing shipment AWSはSnowballを出荷する準備をしています。 Both
In transit to you Snowball は、ジョブの作成時に提供されたアドレスに出荷されています。 Both
Delivered to you Snowball はジョブの作成時に提供されたアドレスに到達しました。 Both
In transit to AWS Snowball を AWS に返送した。 Both
At AWS 出荷した Snowball がAWSに到達した。

インポートは、到着後1日以内に開始されます。

Both
Importing AWS が Amazon S3 にデータをインポートしています。 Import
Completed インポートジョブやエクスポートジョブが正常に完了しました。 Both
Canceled Your job has been canceled. You can only cancel Snowball import jobs during theJob created status.

ジョブがキャンセルされました。

Snowball インポートジョブは ”Job created”ステータスの間だけキャンセルすることができます。

Both

もちろん、通知を受けないようにすることもできます。

Step 6: Review

最後に登録内容を確認し "Create Job" ボタンをクリックするとジョブが作成されます。

snowball-step-06

1時間以内であれば、取り消すことも可能です。

逆に、ワークフローが動き出すと、取り消せないということです。気をつけましょう。

Snowball ジョブの作成完了

作成が完了すると、マネジメントコンソール上でジョブが作成され、ジョブのステータスが確認できます。

snowball-after-job-creation

SNS と Email を連携させ、ジョブ作成後に実際に届いた通知が以下です。

snowball-job-creation-sns

API からジョブを確認してみる

describe-job API にジョブIDを渡すと、ジョブの詳細を確認できます。 ジョブを作成したばかりのため、5行目"JobState": "New" となっています。 また、インポートジョブのため、27行目が "JobType": "IMPORT" となっています。

$ aws snowball describe-job --job-id JIDXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --region eu-central-1
{
    "JobMetadata": {
        "SnowballCapacityPreference": "T80",
        "JobState": "New",
        "Description": "cm-berlin",
        "AddressId": "XXXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "KmsKeyARN": "arn:aws:kms:eu-central-1:123456789012:key/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "Notification": {
            "NotifyAll": false,
            "JobStatesToNotify": [
                "New",
                "WithAWS",
                "InProgress",
                "WithCustomer",
                "PreparingShipment",
                "InTransitToAWS",
                "PreparingAppliance",
                "Cancelled",
                "InTransitToCustomer",
                "Complete"
            ],
            "SnsTopicARN": "arn:aws:sns:eu-central-1:123456789012:snowball-import-s3"
        },
        "RoleARN": "arn:aws:iam::123456789012:role/snowball-import-S3-role",
        "JobId": "JIDXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "JobType": "IMPORT",
        "CreationDate": 1473181393.0,
        "Resources": {
            "S3Resources": [
                {
                    "BucketArn": "arn:aws:s3:::xxxxxxxx",
                    "KeyRange": {}
                }
            ]
        },
        "ShippingDetails": {
            "ShippingOption": "STANDARD"
        }
    }
}

まとめ

Snowball ジョブの作成方法を紹介しました。

配送については制約がいろいろとあるため、ご利用までに一度 "Shipping Considerations for AWS Snowball - AWS Import/Export" を一読下さい。 また SNS 通知を有効にすると、 Snowball の出荷・返送・取り込み完了などをリアルタイムで受け取れるため、ぜひ有効にして下さい。

次回は Snowball の配送と Snowball 到着後の初期設定を紹介します。

参考

AWS Cloud Roadshow 2017 福岡