This post was originally published on this site

We announced AWS Wavelength at AWS re:Invent 2019. As a quick recap, we have partnered with multiple 5G telecommunication providers to embed AWS hardware and software in their datacenters. The goal is to allow developers to build and deliver applications that can benefit from ultra-low latency.

In the time since the announcement we have been working with our partners and a wide range of pilot customers: enterprises, startups, and app developers. Partners and customers alike are excited by the possibilities that Wavelength presents, while also thrilled to find that most of what they know about AWS and EC2 still applies!

Wavelength Zones Now Open
I am happy to be able to announce that the first two Wavelength Zones are now open, one in Boston and the other in San Francisco. These zones are now accessible upon request for developers who want to build apps to service Verizon Wireless customers in those metropolitan areas.

Initially, we expect developers to focus on gaming, media processing, ecommerce, social media, medical image analysis, and machine learning inferencing apps. I suspect that some of the most compelling and relevant use cases are still to be discovered, and that the field is wide open for innovative thinking!

Using a Wavelength Zone
As I mentioned earlier, just about everything that you know about AWS and EC2 still applies. Once you have access to a Wavelength Zone, you can launch your first EC2 instance in minutes. You can initiate the onboarding process by filling out this short sign-up form and we’ll do our best to get you set up.

Each WZ is associated with a specific AWS region known as the parent region. This is US East (N. Virginia) for the Wavelength Zone in Boston, and US West (N. California) for the AZ in San Francisco. I’m going to use the Wavelength zone in Boston (us-east-1-wl1-bos-wlz-1), and will show you how to launch an EC2 instance using the AWS Command Line Interface (CLI) (console, API, and CloudFormation support is also available).

I can inspect the output of describe-availability-zones to confirm that I have access to the desired Wavelength Zone:

$ aws ec2 describe-availability-zones
...
||  ZoneName             |  us-east-1f             ||
|+-----------------------+-------------------------+|
||                AvailabilityZones                ||
|+---------------------+---------------------------+|
||  GroupName          |  us-east-1-wl1            ||
||  NetworkBorderGroup |  us-east-1-wl1-bos-wlz-1  ||
||  OptInStatus        |  opted-in                 ||
||  RegionName         |  us-east-1                ||
||  State              |  available                ||
||  ZoneId             |  use1-wl1-bos-wlz1        ||
||  ZoneName           |  us-east-1-wl1-bos-wlz-1  ||
|+---------------------+---------------------------+|

I can create a new Virtual Private Cloud (VPC) or use an existing one:

$ aws ec2 --region us-east-1 create-vpc 
  --cidr-block 10.0.0.0/16

I capture the VPC Id (vpc-01d94be2191cb2dfa) because I will need it again. I’ll also need the Id of the desired security group. For simplicity I’ll use the VPC’s default group:

$ aws ec2 --region us-east-1 describe-security-groups 
  --filters Name=vpc-id,Values=vpc-01d94be2191cb2dfa 
  | grep GroupId

Next, I create a subnet to represent the target Wavelength Zone:

$ aws ec2 --region us-east-1 create-subnet 
  --cidr-block 10.0.0.0/24  
  --availability-zone us-east-1-wl1-bos-wlz-1 
  --vpc-id vpc-01d94be2191cb2dfa

Moving right along, I create a route table and associate it with the subnet:

$ aws ec2 --region us-east-1 create-route-table 
  --vpc-id vpc-01d94be2191cb2dfa

$ aws ec2 --region us-east-1 associate-route-table 
  --route-table-id rtb-0c3dc2a16c70d40b5 
  --subnet-id subnet-0bc3ad0d67e79469c

Next, I create a new type of VPC resource called a Carrier Gateway. This resource is used to communicate (in this case) with Verizon wireless devices in the Boston area. I also create a route from the gateway:

$ aws ec2 --region us-east-1 create-carrier-gateway 
  --vpc-id vpc-01d94be2191cb2dfa
$ 
$ aws ec2 --region us-east-1 create-route 
  --route-table-id rtb-01af227e9ea18c5ab --destination-cidr-block 0.0.0.0/0 
  --carrier-gateway-id cagw-020c231b6e33ad1ef

The next step is to allocate a carrier IP address for instance that I am about to launch, create an Elastic Network Interface (ENI), and associate the two (the network border group represents the set of IP addresses within the Wavelength Zone):

$ aws ec2 --region us-east-1 allocate-address 
  --domain vpc --network-border-group us-east-1-wl1-bos-wlz-1
$
$ aws ec2 --region us-east-1 create-network-interface 
  --subnet-id subnet-0bc3ad0d67e79469c
$
$ aws ec2 --region us-east-1 associate-address 
  --allocation-id eipalloc-00c2c378c065887f1 --network-interface-id eni-0af68d5ce897ed2b8

And now I can launch my EC2 instance:

 $ aws ec2 --region us-east-1 run-instances 
  --instance-type r5d.2xlarge 
  --network-interface '[{"DeviceIndex":0,"NetworkInterfaceId":"eni-0af68d5ce897ed2b8"}]' 
  --image-id ami-09d95fab7fff3776c 
  --key-name keys-jbarr-us-east

The instance is accessible from devices on the Verizon network in the Boston area, as defined by their coverage map; the Carrier IP addresses do not include Internet ingress. If I need to SSH to it for development or debugging, I can use a bastion host or assign a second IP address.

I can see my instance in the EC2 Console, and manage it as I would any other instance (I edited the name using the console):

I can create an EBS volume in the Wavelength Zone:

And attach it to the instance:

I can create snapshots of the volume, and they will be stored in the parent region.

The next step is to build an application that runs in a Wavelength Zone. You can read Deploying Your First 5G-Enabled Application with AWS Wavelength to learn how to do this!

Things to Know
Here are some things to keep in mind as you think about how to put Wavelength to use:

Pricing – You will be billed for your EC2 instances on an On-Demand basis, and you can also purchase an Instance Savings Plan.

Instance Types – We are launching with support for t3 (medium and xlarge), r5 (2xlarge), and g4 (2xlarge) instances.

Other AWS Services – In addition to launching EC2 instances directly, you can create ECS clusters, EKS clusters (using Kubernetes 1.17), and you can make use of Auto Scaling. Many other services, including AWS Identity and Access Management (IAM), AWS CloudFormation, and Amazon CloudWatch will work as expected with no additional effort on your part.

More Wavelength Zones – We plan to launch more Wavelength Zones with Verizon in the US by the end of 2020. Our work with other carrier partners is proceeding at full speed, and I’ll let you know when those Wavelength Zones become available.

Jeff;

This syndicated content is provided by AWS and was originally posted at https://aws.amazon.com/blogs/aws/aws-wavelength-zones-are-now-open-in-boston-san-francisco/