DEV Community

Nao San for AWS Community Builders

Posted on

[AWS] Efficiency in everything! Community Builder shares the appeal of AWS Developer Tools [DevTools]

This article is a machine translation of the contents of the following URL, which I wrote in Japanese:
https://qiita.com/Nana_777/items/cec4d2163e12f826fecd

Introduction

Since being selected as an AWS Community Builder in 2025, I have been continuing to output my work, hoping to let more people know about the appeal of DevTools.
In this article, I will introduce the representative DevTools used in each process of system construction.

I gave a talk at the Community Stage of AWS Summit Japan 2025

I gave a talk on the first day of the Community Stage of AWS Summit Japan 2025 on the same content as this blog post.
I will also post a link to the materials from that time.
I would like to express my gratitude to AWS for giving me this valuable opportunity.

https://speakerdeck.com/naonana777/nandemoxiao-lu-hua-community-buildergachuan-eru-aws-developer-toolsnomei-li

↓ AWS Summit Japan 2025 AWS User Community - I spoke at the Community Stage
image.png

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Summit-Japan-2025-EXPO-Guide.pdf

What is DevTools?

AWS product description page

This is how it is explained on the AWS product description page.
・Tools that allow you to build, test, and deploy development tasks more quickly and effectively
・Tools that are used to improve security, speed, code quality, etc.

↓ AWS product description page

https://aws.amazon.com/jp/what-is/developer-tools/

Software Development Life Cycle (SDLC)

The Software Development Life Cycle (SDLC) is a way of describing the flow of system development. It divides the software development process into steps such as planning, design, implementation, testing, deployment, and operation, and various DevTools can be used at each step.
You don't necessarily need to use all the tools, but using the right tools at the right time can make the work more efficient.

↓ SDLC phases and DevTools
image.png

DevTools that can be used in the implementation phase

IaC tools

IaC tools allow you to manage infrastructure configurations as code. IaC tools reduce the burden of opening the console screen for each resource and managing the definitions, and allow you to check the infrastructure configuration settings in a list. In addition, since they are managed as code, it is easier to manage the change history.

AWS Infrastructure Composer (IaC tools)

By using AWS Infrastructure Composer, you can define the infrastructure configuration in a GUI. By placing cards with AWS service definitions on a GUI canvas, linking the cards together, and configuring the card details, the content is transcribed into IaC code.

AWS CloudFormation (IaC tool)

By using AWS CloudFormation, you can define resource settings in detail. Since it is not abstracted like AWS CDK, there is a problem that the definition items become redundant, but since it is not abstracted, it is possible to define resources according to the purpose. In addition, there are many related tools such as CloudFormationGuard and Rain.

AWS CDK (IaC tool)

By using AWS CDK, you can define resources efficiently with less code due to abstracted definitions such as L2 constructors.

↓ Image diagram of each IaC tool
image.png

Code development with Amazon Q Developer

By using Amazon Q Developer, you can generate code by simply making a request to Amazon Q Developer in natural language. When using AI to generate code, you may be worried about whether the code can be generated according to your team's own rules, but by preparing a document that describes the rules and making a request to generate code based on that, you can generate code that follows those rules.
In the example of the capture image below, the CDK construct design guidelines were placed in the docs folder, and a request was made to Amazon Q Developer to create a new L2 construct based on that. As a result, the code for a new L2 construct that complies with the guidelines was generated along with a description of the compliant elements of the implemented guidelines.

↓ Creating a new L2 construct by Amazon Q Developer referring to the CDK construct design guidelines

image.png

No-code development with Amazon Q Developer in GitHub

With Amazon Q Developer in GitHub, you can build systems and address issues without coding while interacting with Amazon Q Developer on GitHub. By creating issues on GitHub that Amazon Q Developer will be responsible for with a description, Amazon Q Developer will develop according to the description, self-review and create a pull request.
The work done by humans is to check the pull request created by Amazon Q Developer, and if there is a problem, register a review comment to Amazon Q Developer and request correction. Once review comments are entered, Amazon Q Developer will again revise the deliverables.

↓Image of development by Amazon Q Developer
image.png

DevTools that can be used in the test/review phase

PoC with AWS CloudFormation Guard

By using CloudFormation Guard (Cfn-guard), which realizes Policy as Code (PaC), which codes policies, it is possible to quickly verify whether the CloudFormation template you created complies with your team's unique rules. The following example capture shows an example of preparing policy code that defines Lambda timeout settings, memory settings, and runtime settings, and performing a pre-deployment check.

↓ Example of using cfn-guard

image.png

Amazon Q Developer (/test)

When creating unit test code for IaC code, simply enter /test in the Amazon Q Developer chat box, and Amazon Q Developer will scan the artifacts and generate the corresponding test code.

AI-based test code generation reduces the burden on humans, but adding perspectives based on human experience and knowledge to the code generated by AI should enable even higher quality testing.

↓ Image of test code generation by Amazon Q Developer (IDE)
image.png

Amazon Q Developer (/review)

You can also review deliverables by simply typing /review in the Amazon Q Developer chat field. In the example below, the review points out that there is no error handling implementation in the AWS Lambda function.

As with testing, reviews by AI should be of higher quality if you add perspectives based on human experience and knowledge in addition to the review content generated by AI.

↓ Image of review by Amazon Q Developer (IDE)
image.png

DevTools that can be used in the deployment phase

AWS CodePipeline

Deployment processes are not just about uploading programs, but also include checking changes, approving deployment, monitoring for abnormalities after deployment, and reverting to normal operations when abnormalities occur. Using AWS CodePipeline reduces the workload of people.
The following capture image shows an example of the deployment process, in which a developer uploads the IaC code with the modifications, creates a Cloud Formation change set, notifies the person in charge that the change set has been created, and the person in charge approves the deployment, thereby executing the deployment. By using AWS CodePipeline for these processes, the only tasks that humans perform are the developer uploading the IaC code and the person in charge approving it.

↓ Example of using AWS CodePipeline
image.png

AWS CodeDeploy

Deployment is not complete until the deployment is performed. In preparation for errors or other problems that may occur after the deployment, it is necessary to temporarily restrict access to the new version, monitor for problems for a certain period of time, and revert to the original stable version if a problem occurs. These tasks can be automated by using AWS CodeDeploy.
In the example capture below, when deploying a revised version of AWS Lambda, only 10% of traffic is allowed to access the new version. This allows you to limit the scope of impact to a very small area if a problem occurs with the new version. You can also set it to issue an alarm if a preset number of errors occur for a preset period of time, and if an alarm is issued, you can revert to the original version, and if no alarm is issued, all traffic can flow to the new version. This allows you to quickly revert to the original version when a problem occurs.

↓ Examples of using AWS CodeDeploy
image.png

DevTools that can be used in operations/monitoring

Operational investigation with Amazon Q Developer

When operational monitoring is done by humans, it is necessary to collect logs to check for problems, and if there are problems, to analyze the cause and consider solutions, which requires a lot of effort and skill from the worker.
By using AI operations available from the CloudWatch console, Amazon Q Developer can analyze the contents of the log insights, metrics, and alarms, and report the discovery of problems and hypotheses about the cause.
This makes it possible to reduce the burden of work that needs to be done by humans.
The following example capture image shows the sample contents.

↓ AI operation screen
image.png

↓ Audit results by AI operation
image.png

↓ Hypothesis by AI operation (reporting root cause)
image.png

DevTools that can be used in planning/design

Automatic document generation by Amazon Q Developer

By entering /doc in the Amazon Q Developer chat field, you can generate a README file from an already created artifact.

The README file is packed with content that not only describes the project and deployment method in text, but also includes data flow and configuration diagrams.

↓ Image of document generation in Amazon Q Developer (IDE)
image.png

The configuration diagram in the README file does not have AWS service icons and is difficult to understand intuitively, but it is possible to generate an architecture diagram using AWS service icons by using the MCP server. If you ask Amazon Q Developer to create an architecture diagram using aws diagram mcp server, which is an MCP server that creates architecture diagrams, you can generate an intuitive and easy-to-understand architecture diagram using AWS service icons.

↓ Creating an architecture diagram using aws diagram mcp server
image.png

Conclusion

There are many types of DevTools, and you don't necessarily need to use all of them. How you use them and how you combine them is up to you. Select the appropriate tool according to the characteristics of your project, process, and team.
DevTools are evolving every day, and new tools are appearing. Instead of getting hung up on how you've been working up until now, I hope you'll take a moment to look back and see if there are any areas you can improve.
I hope this article will make you interested in DevTools and make you feel their appeal. If you want to know more ways to use them, how to devise them, and how to learn them, try looking at the output of other engineers and getting in touch with the world of AWS Community.

Top comments (0)