AWS Workbench

Follow me on GitHub

Understanding AWS Workbench

AWS Workbench is based on AWS CDK and Eclipse Sirius. The workbench offers an Eclipse based IDE for designing and deploying AWS Services.

It's magic

The workbench makes it easy for AWS Solution Architects and Engineers to define the AWS infrastructure using a simple Visual UI. Each service can be further configured using properties editor.

The AWS Workbench workflow

Workflow

  1. The user (an AWS architect) creates a workbench project and defines the infrastructure using the AWS services visually using a drag and drop interface.

Main App Tab App Diagram The diagram has an heirarchy as App -> Stack -> Block -> Sub Block -> AWS Service Components. User may also define AWS Service Component directly under Block .

Stack Tab Stack Diagram The Stack and Block structures can be opened in independent tabs and have an uncluttered view.

  1. Each AWS Service component can be configured using the properties editor.
  2. Code is generated from App Diagram Tab by Right Click on Canvas -> Generate -> Code .
  3. Workbench reads the canvas information and the configuration from the properties editor to generate java code in a separate Maven project. The generated code uses builder pattern. So the code for an AWS Bucket definition would look like ```java

Bucket bucket = Bucket.Builder.create(this, “MyBucket”) .versioned(true) .encryption(BucketEncryption.KMS_MANAGED) .build();

```

  1. Once the code is generated, further refinements and additions to the infrastructre code by using the helper class in the Maven project.
  2. Cloudformation script is generated using mvn package and cdk synth in the generated Maven project.
  3. Generated cloud formation script can be deployed using cdk deploy

The User Interface

Following screenshot shows the main components of the workbench AWS Workbench screenshot The main components of workbench are:-

  1. The project explorer for a heirarchical view of defined services
  2. Draw canvas for architectural view of the AWS services
  3. Property editor used to configure each service.
  4. Tools Palette listing all the services and aws components available in the workbench. Users can drag any component and drop it into a Block or Sub Block area.

The Diagram components

Diagram components

  • App is the topmost component in any project. An App contains one or more Stack , Enviroment and DefaultStackSynthesizer structures. The Environment and DefaultStackSynthesizer are used to configure the Stack
  • Stack consists of one or more Block structures. Block may contain one or more Sub Block structures.
  • Block and Sub Block contain AWS Service components.