
AWS Snowballことはじめ パート4【Snowballの配送依頼】
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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
ジョブの種類は以下の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 のサイズと 配送先と配送スピードを選択します。
サイズ
アメリカ地域では - 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
Import job name
ジョブ名を記入します。
Destination
データのインポート先バケットを指定します。
専用バケットを用意していなかった場合は、プルダウンの "Create a bucket" から新規 S3 バケットが作成可能です。
Step 4: Set security
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 を使って暗号化されます。
ここでは Envelop Encryption に使うマスター鍵を指定します。
Snowball 用のデフォルトのマスター鍵の他、同一・別アカウントのユーザーが作成した鍵を指定することもできます。
参考 : https://docs.aws.amazon.com/AWSImportExport/latest/ug/kms.html
Step 5: Set notifications
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" ボタンをクリックするとジョブが作成されます。
1時間以内であれば、取り消すことも可能です。
逆に、ワークフローが動き出すと、取り消せないということです。気をつけましょう。
Snowball ジョブの作成完了
作成が完了すると、マネジメントコンソール上でジョブが作成され、ジョブのステータスが確認できます。
SNS と Email を連携させ、ジョブ作成後に実際に届いた通知が以下です。
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 到着後の初期設定を紹介します。






















