Company

About Us
The Cloudelligent Story

AWS Partnership
We’re All-In With AWS

Events
Keep Up With Cloudelligent

Careers
Cloudelligent Powers Cloud-Native. You Power Cloudelligent.

Discover our Blogs
Explore our Case Studies

Insights

Blog
Latest Insights, Trends, & Cloud Perspectives

Solution Briefs
Cloud-Native Solution Offerings

Case Studies
Customer Stories With Impact

Explore Deep Insights

AWS Cloud Management Tools Competency Partner

Learn More

AWS Advanced Consulting Partner


Learn More

Blog Post

The Good, the Bad, and the AI: A Review of Amazon Q Developer

Imagine a world where coding feels like conversing with a knowledgeable friend. That’s the ambitious vision behind the transformative Amazon Q Developer, unveiled at AWS re:Invent 2023. Promising to revolutionize the entire software development lifecycle (SDLC), it’s the Generative AI-powered assistant every developer dreams of. From coding and debugging to deployment, it aims to boost efficiency so that developers can focus on more complex and innovative tasks.

But can Amazon Q Developer live up to its ambitious promises? To find out, Cloudelligent will be putting it through rigorous testing across various development tasks. We’ll evaluate its real-world efficacy and uncover its true potential – the good, the bad, and everything in between.

Architecting AWS Solutions: Can Amazon Q Deliver?

One of the most exciting promises of Amazon Q Developer is its ability to expedite the design and deployment of cloud infrastructure on AWS.  To evaluate its capabilities, we conducted a series of tests across various architecting tasks. Our goal was to assess its effectiveness in providing expert guidance and streamlining the process of building AWS solutions. The results demonstrated Amazon Q Developer’s potential to significantly enhance efficiency and precision in cloud infrastructure projects.

Here’s a breakdown of our test scenarios:

Scenario 1: Designing an Architecture for a 3-Tier Application

We tasked Amazon Q with providing the design and architecture for a 3-tier application, emphasizing high availability, fault tolerance, cost-effectiveness, responsive database performance, and security best practices.

Amazon Q Developer_AWS Solutions

Figure 1: Amazon Q’s response to our query on designing an architecture for a 3-tier application.

Results: Amazon Q delivered a well-structured architecture, exactly as expected. The solution adhered to high standards, incorporating best practices for high availability, fault tolerance, cost-effectiveness, and security. Notably, it recommended the use of Amazon CloudFront to ensure global accessibility and lag-free performance. This highlighted Amazon Q’s ability to understand complex architectural requirements and provide precise solutions.

Scenario 2: Building a Secure Static Website on S3

The challenge was to create an S3 bucket with best practices for static website hosting.

Amazon Q_AWS Solutions

Figure 2: Amazon Q’s detailed instructions on setting up an S3 bucket for static website hosting.

Results: Amazon Q demonstrated its depth of knowledge by providing detailed, step-by-step instructions for creating an Amazon S3 bucket and enabling static website hosting. Instead of offering basic instructions, it elaborated on each step, ensuring a smooth setup process even for beginners. This comprehensive approach highlighted Amazon Q’s capability to cater to users of all skill levels.

Analyzing these results, it’s evident that Amazon Q AI chatbot provides valuable guidance on architectural solutions on AWS. By offering detailed and expert recommendations, it enhances efficiency and ensures adherence to best practices, making it a powerful tool for AWS solution architects. However, further exploration is needed to assess its performance in highly complex scenarios and its ability to handle niche use cases.

Troubleshooting Errors: Does Q Offer Accurate Diagnoses?

Amazon Q Developer boasts the ability to diagnose common errors encountered while using AWS services such as Amazon EC2, Amazon ECS, Amazon S3, and AWS Lambda. It claims to pinpoint issues such as insufficient permissions, incorrect configurations, and exceeding service limits. But how accurate are these diagnoses? Can Q truly replace manual troubleshooting?

Scenario: Diagnosing and Resolving Network Connectivity Issues

Consider a situation where you encounter an “Access Denied” error while trying to access your static website hosted on Amazon S3. This issue can be perplexing and time-consuming to resolve manually since it can stem from a variety of misconfigurations. We copy-pasted this error into Amazon Q to initiate the troubleshooting process.

Troubleshooting Errors with Amazon Q

Figure 3: Amazon Q Developer provided various solutions for the “Access Denied” error.

Results: Amazon Q Developer offered a variety of potential causes and solutions for the “Access Denied” error related to static website hosting. We followed the first suggestion, which was to ensure that the objects in the S3 bucket have public read permissions by checking the bucket policy and object Access Control Lists (ACLs). Amazon Q also provided the necessary bucket policy in JSON format to guide us. Implementing this policy resolved the issue, and we were able to access our website.

Troubleshooting Errors

Figure 4: The S3 bucket policy in JSON format generated by Q that helped resolve access issues.

In this instance, Amazon Q Developer proved to be a valuable asset. It accurately pinpointed the root cause of the issue and provided a clear, actionable solution. This not only saved significant time compared to manual troubleshooting but also demonstrated Q’s capability to streamline error resolution processes, making it an essential resource for developers.

Identifying Security Vulnerabilities: Is Q Up to the Task?

Security is a constant concern for any organization leveraging the cloud. In our exploration of Amazon Q Developer’s capabilities in identifying and resolving security issues within AWS environments, we encountered some notable insights. 

Scenario: Security Audit Request

We prompted Q with a critical mission to identify any security vulnerabilities or compliance issues within a sample AWS environment and provide us with a list of actionable recommendations. 

Amazon Q Developer_Security

Figure 5: Q’s response on security lacked detail, suggesting links and AWS Support instead.

Results: We were hoping for a detailed security report, but Amazon Q’s response fell short of expectations. It acknowledged the sensitive nature of security and compliance and refrained from offering specific advice. Instead, it directed us to some helpful links and suggested contacting AWS Support for a more in-depth analysis.

The above-mentioned response highlighted a limitation in Amazon Q’s functionality. While we understand these topics are sensitive, it would be more helpful if Q could provide suggestions and prompt us to investigate further rather than outright stating it cannot provide that information. This felt like a missed opportunity. The limitation becomes even more apparent when compared to other Generative AI systems such as ChatGPT, which can generate reports with actionable recommendations and best practices.

Optimizing Resources: Does Q Help You Choose Wisely?

Amazon Q Developer promises to help select the most efficient and cost-effective and Amazon EC2 instances tailored to your specific requirements. Let’s see how it performs in a real-world scenario.

Scenario: Cost-Effective Amazon EC2 Instance Selection

We tasked Q with finding the most efficient and cost-effective EC2 instance for the backend of our PHP application, which requires significant CPU and RAM. 

Can Amazon Q Optimize Resources?

Figure 6: Q’s final response balanced performance and cost after inputting multiple prompts.

Results: Initially, Amazon Q provided a generic answer and requested more details, such as the specific vCPU and RAM requirements. After we specified that our application required 4 vCPUs, Amazon Q responded with an excellent recommendation that met our vCPU requirements. However, it did not address the cost aspect. We had to re-enter the prompt to obtain a more detailed and focused answer on cost optimization and efficiency. Ultimately, the final response was above average in terms of balancing performance and cost.

We appreciated that Amazon Q prompted us to provide more relevant details. However, its initial response fell short by not addressing both cost and efficiency simultaneously. This required some back-and-forth communication. Ideally, Q should be able to handle these combined requirements in a single prompt. Overall, the final answer from the tool was accurate, well-structured, and helpful.

In Cloudelligent’s opinion, Amazon Q’s guidance can lead to significant cost savings by recommending cost-effective Amazon EC2 instances, optimizing resource allocation, and suggesting Spot Instances or Savings Plans. This ultimately would reduce overall cloud spend.

Enhancing Developer Workflow: Does Q Integrate Seamlessly?

A key selling point of Amazon Q Developer is its tight integration with Amazon CodeWhisperer and popular IDEs. This promises a streamlined workflow where developers can ask questions, troubleshoot errors, and receive AI-powered assistance directly within their development environment. This makes Amazon Q for builders even more valuable, allowing them to focus on building and problem-solving without context switching.

Scenario: Installing Amazon Q Extension in Visual Studio

To test Q’s integration, we installed the Amazon Q extension in Visual Studio. Following the clear instructions (download the “AWS Toolkit – Amazon Q, CodeWhisperer, and more” extension), we made sure to use a supported version of Visual Studio for a smooth setup. 

Code Generation in Python

Figure 7: Amazon Q Developer integrates smoothly with Visual Studio.

Results: The installation and integration process was a breeze. We simply downloaded the extension within Visual Studio and it seamlessly became part of our development environment. No complex configurations or additional steps were required.

From our experience, having the Amazon Q extension in Visual Studio is invaluable. It facilitates seamless inquiries and troubleshooting within the same IDE where code is being written. This integration streamlines our workflow, making it more efficient and less disruptive. We genuinely appreciate this feature, as it enhances our productivity by allowing us to access Amazon Q’s powerful capabilities without switching contexts. This seamless integration is a significant benefit for developers who want to maintain focus and efficiency.

Accelerating Development: Does Q Help You Code Faster?

One of the exciting promises of Amazon Q Developer is its ability to accelerate development by generating real-time code suggestions. This includes everything from code snippets to full functions based on your comments and existing code. It even boasts support for command-line interface (CLI) completions and natural language–to-bash translation in the command line.

Scenario: Testing Code Generation and Optimization in Python

We put Q’s code generation capabilities to the test with a common task: writing an AWS Lambda function in Python that connects to an Amazon RDS database. We provided Q with the prompt along with some additional instructions.

Figure 8: Q struggled with complex AWS Lambda function generation in Python.

Results: Unfortunately, Amazon Q fell short in generating the Lambda code for us. We decided to shift gears and try Q’s code review abilities by providing a sample Lambda function and then asking for optimization suggestions. Here, Q performed as we had requested.

Figure 9: Q’s optimization suggestions for a sample AWS Lambda code.

However, our enthusiasm was dampened again when we asked Q to implement the best practices directly into the sample code.  Unfortunately, Q was unable to fulfill this request, highlighting a limitation in its current capabilities.

Figure 10: Amazon Q was unable to implement best practices directly into the sample code.

Amazon Q’s inability to generate Lambda code was disappointing, especially since this is a task we believe it should handle. Competitors such as ChatGPT and Google’s Gemini excel in this capability. While the suggestions on the code review of the Lambda function were accurate, we were expecting Amazon Q to implement code updates following best practices, but it failed to deliver. This highlights a significant area for improvement in Amazon Q’s functionality.

Transforming Functionality: Can Amazon Q Optimize?

Beyond code generation, Amazon Q Developer promises a range of functionalities to optimize your existing code. This includes explaining coding concepts and snippets, generating tests, improving code through debugging and refactoring, and even assisting with best practices. Let’s explore Amazon Q’s code transformation capabilities through a real-world prompt.

Scenario: Finding Best Practices for Storing Database Credentials

Amazon Q was tasked with finding the best practice for storing database credentials in Lambda function environment variables. We mentioned that the Lambda functions read database hostnames and credentials stored in plain text in environment variables. The goal was to determine whether this was a secure option and to seek advice on how to secure the code.

Optimize with Best Practices

Figure 11: Amazon Q Developer suggesting how to secure database credentials with AWS Secrets Manager.

Results: Thankfully, Q delivered here and responded with several suggestions for securing the database credentials. It recommended using AWS Secrets Manager to store sensitive information and provided code snippets to implement this solution. The updated code suggestions were accurate and aligned with best practices for securing credentials in AWS environments.

In this scenario, the Amazon Q chatbot demonstrated its expertise for providing precise and secure coding recommendations, which can really help us optimize our code and boost our security practices. This is a valuable capability for developers, especially when dealing with sensitive information within code. While Q couldn’t directly modify our code, its guidance effectively facilitated the optimization process.

Leverage AI-Powered Development Solutions With Cloudelligent

Amazon Q Developer offers a promising glimpse into the future of AI-powered development, from real-time code suggestions to promoting industry best practices. While it may not be a silver bullet for all development needs compared to more established Generative AI systems such as ChatGPT and Gemini, its capabilities for optimizing workflows and providing valuable optimization recommendations hold significant potential.

Here at Cloudelligent, we’re not just familiar with cutting-edge AI tools such as Amazon Q Developer – we’re experts in maximizing their potential for your specific needs. Together, we can unlock the full potential of Generative AI to transform your development process, optimize your codebase, and propel your applications to the next level.

Feeling stuck with your code? Let’s chat about how Generative AI can help! We offer a free consultation with our AI specialists to see if Amazon Q Developer or other tools can streamline your development process and take your projects to the future.

Sign up for the latest news and updates delivered to your inbox.

Share

You May Also Like...

Industries

Industries