SerAws - 0.0.2
As discussed in blog post SerAws – 0.0.0; Version 0.0.2 of the addin marks an important milestone in the development of SerAws, in that it provides a vertical slice of functionality for a user to be able to round-trip information from AWS to EA and back again into AWS via CloudFormation. It only covers the VPC entity, but this is sufficient to prove out the overall idea. Please see below for the steps and accompanying screenshots describing the one round-trip operation.
1. Configure AWS Security Credentials
A windows form/dialog is provided to allow the user to enter AWS security credentials. The figure below shows details of a fictional account.
Note that these details are not stored as part of the addin or EA, instead the security credentials are managed by the AWS SDK, and hence any other tooling that uses the SDK can also be used to manage them (e.g. AWS Toolkit for Visual Studio).
2. Import AWS Entities into EA
The .NET AWS SDK is used to query AWS and the corresponding elements are created in EA. The diagram below shows the imported entities.
On the project browser on the left, you can see imported VPC, Subnet, Security Groups, Route Tables, Internet Gatewasy and Access Control List entities. Paul and myself have a little solution on AWS that we use to host an EA database. I have used that here to illustrate the operation of the addin.
Note, that at this stage, only the VPC element has all the data attributes from the AWS model. The rest of the entities are placeholders, with only the AWS internal identifier having been used to name the elements within EA. On the right you can see the attributes/properties for the VPC element - this will be used in the following steps to produce the CloudFormation file.
3. Transform to the CloudFormation Model
A set of model transformation templates are used to transform the AWS model to a CloudFormation model for VPC elements. Below is the resultant output.
4. CloudFormation Code Generation
A set of code generation templates are used to generate the CloudFormation json file. Below is the generated file.
As stated previously, although the addin is still not entirely useful, it should be in a sufficient state to prove the concept. With the next version (0.0.3) what I'm aiming for is to round-trip the configuration of the complete EA repository I share with Paul.
[Originally posted here.]
1. Configure AWS Security Credentials
A windows form/dialog is provided to allow the user to enter AWS security credentials. The figure below shows details of a fictional account.
Note that these details are not stored as part of the addin or EA, instead the security credentials are managed by the AWS SDK, and hence any other tooling that uses the SDK can also be used to manage them (e.g. AWS Toolkit for Visual Studio).
2. Import AWS Entities into EA
The .NET AWS SDK is used to query AWS and the corresponding elements are created in EA. The diagram below shows the imported entities.
On the project browser on the left, you can see imported VPC, Subnet, Security Groups, Route Tables, Internet Gatewasy and Access Control List entities. Paul and myself have a little solution on AWS that we use to host an EA database. I have used that here to illustrate the operation of the addin.
Note, that at this stage, only the VPC element has all the data attributes from the AWS model. The rest of the entities are placeholders, with only the AWS internal identifier having been used to name the elements within EA. On the right you can see the attributes/properties for the VPC element - this will be used in the following steps to produce the CloudFormation file.
3. Transform to the CloudFormation Model
A set of model transformation templates are used to transform the AWS model to a CloudFormation model for VPC elements. Below is the resultant output.
4. CloudFormation Code Generation
A set of code generation templates are used to generate the CloudFormation json file. Below is the generated file.
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "VPCEA" : { "Type" : "AWS::EC2::VPC", "Properties" : { "CidrBlock" : "10.0.0.0/16", "EnableDnsSupport" : "True", "EnableDnsHostnames" : "True", "InstanceTenancy" : "default", "Tags" : [ {"Key" : "Name", "Value" : "VPC-EA"} ] } } } }
As stated previously, although the addin is still not entirely useful, it should be in a sufficient state to prove the concept. With the next version (0.0.3) what I'm aiming for is to round-trip the configuration of the complete EA repository I share with Paul.
[Originally posted here.]
Comments
Post a Comment