Before You Order a Snowcone Device - AWS Snowcone User Guide

Before You Order a Snowcone Device

AWS Snowcone is a region-specific service, so make sure that the service is available in your region before you plan the job. Ensure that your location and Amazon S3 bucket are within the same AWS Region because it will impact your ability to order the device. There are limitations on shipping the Snowcone device outside of a region’s country borders. For more information, see Region-Based Shipping Restrictions.

International shipments to locations outside of your AWS Region are supported on the AWS Snow Family Management Console for whitelisted customers for a select set of locations from specific regions (such as US to Mexico). You should discuss the target destination, costs, and timing to accommodate these requests with your account team.

As part of the order process, you create an AWS Identity and Access Management (IAM) role and AWS Key Management Service (AWS KMS) key. The KMS protects the encryption keys used to protect data on each device. For more information, see Creating an AWS Snowcone Job.

Questions About the Local Environment

Understanding your dataset and how the local environment is set up will help you complete your data transfer. Consider the following before placing your order.

Will the data be accessed during the transfer?

We recommend that if you are using the file interface, you use only one method of transferring data to the AWS Snowcone. To prevent corrupting your data, don't disconnect a Snowcone device or change its network settings while transferring data. Files should be in a static state while being written to the device. Files that are modified while they are being written to the device can result in read/write conflicts.

Working with Files with Special Characters

It is important to note that if your files contain special characters, you might encounter errors. Although Amazon S3 allows special characters, we highly recommend that you avoid the following characters:

  • Backslash ("\")

  • Left curly brace ("{")

  • Right curly brace ("}")

  • Left square bracket ("[")

  • Right square bracket ("]")

  • 'Less than' symbol ("<")

  • 'Greater than' symbol (">")

  • Non-printable ASCII characters (128–255 decimal characters)

  • Caret ("^")

  • Percent character ("%")

  • Grave accent / back tick ("`")

  • Quotation marks

  • Tilde ("~")

  • 'Pound' character ("#")

  • Vertical bar / pipe ("|")

If your files have one or more of these characters, rename them before you copy them to the AWS Snowcone device. Windows users who have spaces in their file names should be careful when copying individual objects or running a recursive command. Surround individual objects that contain spacing in the name with quotation marks. The following are examples of such files.

Operating System File Name: test file.txt

Windows

“C:\Users\<username>\desktop\test file.txt”

Mac

/Users/<username>/test\ file.txt

Linux

/home/<username>/test\ file.txt

Note

The only object metadata that is transferred is the object name and size. If you want additional metadata to be copied, you can use the file interface or other tools to copy the data to Amazon S3. However, AWS DataSync preserves access control lists (ACLs). For information, see How DataSync Handles Metadata and Special Files in the AWS DataSync User Guide.

Using Amazon EC2 on Snowcone

This section provides an overview of using Amazon EC2 compute instances on an AWS Snowcone device.

You should use the Amazon EC2 compatible instances when you have an application running on the edge that is managed and deployed as a virtual machine (an Amazon Machine Image, or AMI). Snowcone supports the SNC1 instance type with three instances, including snc1.micro (1 CPU and 1 GB RAM), snc1.small (1 CPU and 2 GB RAM), and snc1.medium (2 CPU and 4 GB RAM). The support for EC2-compatible instances on Snowcone enables you to build and test your application on Amazon EC2. You can enable and provision EC2 AMIs during AWS Snowcone job creation using either the AWS Management Console, AWS Snowball SDK, or AWS CLI.

Supported Amazon EC2 instance types

Use the following Amazon EC2 instance types for your compute jobs.

snc1.micro—1 CPU core, 1 GB RAM

snc1.small—1 CPU core, 2 GB RAM

snc1.medium—2 CPU cores, 4 GB RAM

Use AWS OpsHub to manage your instances on Snowcone. Download AWS OpsHub from the AWS Snowball resources website. After you unlock the device using AWS OpsHub, navigate to the Amazon EC2 page. Choose Create instance to create an EC2 instance based on the AMI that you had preloaded onto the device when you created the job. You can then connect to the instances and run your edge application. AWS OpsHub also provides single-click buttons to start, stop, terminate, and reboot your EC2 instances. For more information, see Using AWS OpsHub for Snow Family to Manage Devices.

When you're done with your device, return it to AWS. If the device was used in an import job, the data transferred using the file interface is imported into Amazon S3 by using the Snowcone NFS interface. Otherwise, we perform a complete erasure of the device when it is returned to AWS. This erasure follows the National Institute of Standards and Technology (NIST) 800-88 standards.

Important

Data in compute instances running on a Snowcone isn't imported into AWS.

Pricing for Compute Instances on Snowcone

There are additional costs associated with using compute instances. For more information, see AWS Snowcone pricing.

Prerequisites

Before creating your job, keep the following information in mind:

  • Before you can add any AMIs to your job, you must have an AMI in your AWS account and it must be a supported image type. Currently, supported AMIs are based on the Amazon Linux 2, CentOS 7 (x86_64) - with Updates HVM, or Ubuntu 16.04 LTS - Xenial (HVM) images. You can get these images from the AWS Marketplace.

  • All AMIs must be based on Amazon Elastic Block Store (Amazon EBS), with a single volume.

  • If you are connecting to a compute instance running on a Snowcone, you must use Secure Shell (SSH). To do so, you first add the key pair.

Creating a Linux AMI from an Instance

You can create an AMI using the console or the command line. Start with an existing AMI, launch an instance, customize it, create a new AMI from it, and finally, launch an instance of your new AMI.

To create an AMI from an instance using the console

  1. Choose an appropriate EBS-backed AMI as a starting point for your new AMI, and configure it as needed before launch. For more information, see Launching an instance using the Launch Instance Wizard.

  2. Choose Launch to launch an instance of the EBS-backed AMI that you've selected. Accept the default values as you step through the wizard. For more information, see Launching an instance using the Launch Instance Wizard.

  3. While the instance is running, connect to it. You can perform the following actions on your instance to customize it for your needs:

    • Install software and applications

    • Copy data

    • Reduce start time by deleting temporary files, defragmenting your hard drive, and zeroing out free space

    • Attach additional Amazon EBS volumes

  4. (Optional) Create snapshots of all the volumes attached to your instance. For more information about creating snapshots, see Creating Amazon EBS snapshots.

  5. In the navigation pane, choose Instances, and select your instance. For Actions, choose Image, Create Image

    Tip

    If this option is disabled, your instance isn't an Amazon EBS-backed instance.

  6. In the Create Image dialog box, specify the following information, and then choose Create Image.

    • Image name - A unique name for the image.

    • Image description - An optional description of the image, up to 255 characters.

    • No reboot - This option is not selected by default. Amazon EC2 shuts down the instance, takes snapshots of any attached volumes, creates and registers the AMI, and then reboots the instance. Choose No reboot to avoid having your instance shut down.

      Warning

      If you choose No reboot, we can't guarantee the file system integrity of the created image.

    • Instance Volumes - The fields in this section enable you to modify the root volume, and add other Amazon EBS and instance store volumes. For information about each field, pause on the i icon next to each field to display field tooltips. Some important points are listed following.

      • To change the size of the root volume, locate Root in the Volume Type column. For Size (GiB), enter the required value.

      • If you select Delete on Termination, when you terminate the instance created from this AMI, the Amazon EBS volume is deleted. If you clear Delete on Termination, when you terminate the instance, the Amazon EBS volume is not deleted. For more information, see Preserving Amazon EBS volumes on instance termination in the Amazon EC2 User Guide for Linux Instances.

      • To add an Amazon EBS volume, choose Add New Volume (which adds a new row). For Volume Type, choose EBS, and fill in the fields in the row. When you launch an instance from your new AMI, additional volumes are automatically attached to the instance. Empty volumes must be formatted and mounted. Volumes based on a snapshot must be mounted.

      • To add an instance store volume, see Adding Instance Store Volumes to an AMI. When you launch an instance from your new AMI, additional volumes are automatically initialized and mounted. These volumes do not contain data from the instance store volumes of the running instance on which you based your AMI.

  7. To view the status of your AMI while it is being created, in the navigation pane, choose AMIs. Initially, the status is pending but should change to available after a few minutes.

    (Optional) To view the snapshot that was created for the new AMI, choose Snapshots. When you launch an instance from this AMI, we use this snapshot to create its root device volume.

  8. Launch an instance from your new AMI. For more information, see Launching an instance using the Launch Instance Wizard.

  9. The new running instance contains all of the customizations that you applied in previous steps.

To Create an AMI from an Instance Using the Command Line

You can use one of the following commands. For more information about these command line interfaces, see Accessing Amazon EC2.

Creating a Linux AMI from a Snapshot

If you have a snapshot of the root device volume of an instance, you can create an AMI from this snapshot using the AWS Management Console or the command line.

To create an AMI from a snapshot using the console

  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, under Elastic Block Store, choose Snapshots.

  3. Choose the snapshot and choose Actions, Create Image.

  4. In the Create Image from EBS Snapshot dialog box, complete the fields to create your AMI, and then choose Create. If you're re-creating a parent instance, choose the same options as the parent instance.

    • Architecture: Choose i386 for 32-bit or x86_64 for 64-bit.

    • Root device name: Enter the appropriate name for the root volume. For more information, see Device naming on Linux instances.

    • Virtualization type: Choose whether instances launched from this AMI use paravirtual (PV) or hardware virtual machine (HVM) virtualization. For more information, see Linux AMI Virtualization Types.

    • (PV virtualization type only) Kernel ID and RAM disk ID: Choose the AKI and ARI from the lists. If you choose the default AKI or don't choose an AKI, you must specify an AKI every time you launch an instance using this AMI. In addition, your instance might fail the health checks if the default AKI is incompatible with the instance.

    • (Optional) Block Device Mappings: Add volumes or expand the default size of the root volume for the AMI. For more information about resizing the file system on your instance for a larger volume, see Extending a Linux file system after resizing a volume.

To Create an AMI from a Snapshot Using the Command Line

You can use one of the following commands. For more information about these command line interfaces, see Accessing Amazon EC2.