New Release! Pure Storage Hybrid Cloud with AWS Design Guide

At Pure//Accelerate 2017 we announced a ton of new innovation, including a new Hybrid Cloud solution for AWS. If you missed it, check out my breakout session on Building Hybrid Clouds with AWS and Microsoft Azure . Now online is a new Pure Storage Hybrid Cloud with AWS Design Guide which details the steps for integrating Pure Storage with Amazon Web Services (AWS) and Direct Connect. The focus of the solution is to make the first mile of hybrid cloud set-up easier by with a documented design guide as well as automated Python and PowerShell scripts to accelerate hybrid cloud connectivity. This design guide walks you through connecting Pure Storage FlashArray (via iSCSI) which is located at an Equinix data center (in a Rack/Cage) to the AWS Cloud (Cloud Exchange). For both our Microsoft Azure and AWS integrations we partnered with Equinix for their multiple cloud connectivity options and other services. This same design can be accomplished with direct data center connections if that is a capability you have. See more at AWS and Microsoft Azure for direct connection options.

The diagram below illustrates the high-level connectivity components which show the same model for connecting with AWS or Microsoft Azure to a Pure Storage FlashArray.

The Pure Storage Hybrid Cloud with AWS is managed using the AWS Services Portal or can be managed using Python or Windows PowerShell. The Python and PowerShell modules that are shipped as part of the Pure Storage Open Connect for AWS GitHub project help to automate the connectivity from the data center to the cloud.  Below are a few screenshots from our configured environment in AWS which is connected to FlashArray.

The Pure Storage Hybrid Cloud with AWS solution provides Python and Windows PowerShell modules that are shipped as part of the Pure Storage Open Connect for AWS GitHub project help to automate the connectivity from the data center to the cloud.  Below are a few screenshots from our AWS environment connected to FlashArray.

Amazon Web Services (AWS) Portal – This is the central management dashboard for managing all things AWS. These tools are provided by Amazon and at this time there is no Pure Storage integration into the AWS portal.  The example below shows that we have a connection from AWS Direct Connect to our end point at Equinix.

Python & Windows PowerShell Automation Scripts – The Python and PowerShell modules provide basic scripts to help walk you through the connectivity process in an automated workflow vs having to go to various screens within the different management interfaces. The scripts are meant to be the simplest way to get started and then extend as a service offering or other service. Below is an example of one of the Python methods for creating a vpc() connection.

def vpc():
  ec2 = boto3.resource('ec2')
  client = boto3.client('ec2')
  ec2 = boto3.client('ec2')
  global vpc_id,SubnetId,AvailabilityZone

  #install awscli
  aws_access_key_id = input("Enter The Access Key Id :")
  aws_secret_access_key = input("Enter The Secret Key Id :")
  client = boto3.client('ec2',aws_access_key_id=aws_access_key_id,aws_secret_access_key=aws_secret_access_key)
  print('Accessed AWS')
  print("Creating VPC ...")
  Cidrblockk = input("Enter The CIDR value :")
try:
  response = client.create_vpc(CidrBlock=Cidrblockk)
  time.sleep(10)
  print(response)
    except ClientError as e:
    print(e)
sys.exit()

print("Describing VPCs...")
response = ec2.describe_vpcs()
#print(response)
try:
  vpc_id = response.get('Vpcs', [{}])[0].get('VpcId', '')
  print("VPC Id is :"+vpc_id)
    exceptIndexErroras e:
    print(e)
sys.exit()

Subnetcidrblock = input("Enter The Subnet cidr value :")
AvailabilityZone = input("Enter The AvailabilityZone :")
try:
  response = client.create_subnet(CidrBlock=Subnetcidrblock,AvailabilityZone=AvailabilityZone,VpcId=vpc_id,)
  except ClientError as e:
  print(e)
sys.exit()

print("Describing Subnets")
time.sleep(15)
response = ec2.describe_subnets()
try:
  SubnetId = response.get('Subnets', [{}])[0].get('SubnetId', '')
  print("Subnet Id is:"+SubnetId)
  exceptIndexErroras e:
  print(e)
sys.exit()
#vpc()

Using Visual Studio Code the source can be modified easily for any customizations. Below is an example of both the Python and PowerShell modules being edited in vscode.

The following are references used in the development of the Pure Storage Direct Connect for AWS solution.

Questions and feedback welcome and requested.

Thanks,
Barkz

Add Comment

Required fields are marked *. Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.