Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Provides AWS RDS (Relational Database Service) management patterns using AWS SDK for Java 2.x. Use when creating, modifying, monitoring, or managing Amazon RDS database instances, snapshots, parameter groups, and configurations.
.claude/skills/giuseppe-trisciuoglio-aws-sdk-java-v2-rds/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 172% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 88% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 157% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 151% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 122% | 0% |
This skill provides comprehensive guidance for working with Amazon RDS (Relational Database Service) using the AWS SDK for Java 2.x, covering database instance management, snapshots, parameter groups, and RDS operations.
Follow these steps to work with Amazon RDS:
The RdsClient is the main entry point for interacting with Amazon RDS.
Basic Client Creation:
javaimport software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.rds.RdsClient; RdsClient rdsClient = RdsClient.builder() .region(Region.US_EAST_1) .build(); // Use client describeInstances(rdsClient); // Always close the client rdsClient.close();
Client with Custom Configuration:
javaimport software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.http.apache.ApacheHttpClient; RdsClient rdsClient = RdsClient.builder() .region(Region.US_WEST_2) .credentialsProvider(ProfileCredentialsProvider.create("myprofile")) .httpClient(ApacheHttpClient.builder() .connectionTimeout(Duration.ofSeconds(30)) .socketTimeout(Duration.ofSeconds(60)) .build()) .build();
javaDescribeDbInstancesResponse response = rdsClient.describeDBInstances(); for (DBInstance instance : response.dbInstances()) { System.out.println(instance.dbInstanceArn() + " - " + instance.dbInstanceStatus()); }
javaCreateDbInstanceRequest request = CreateDbInstanceRequest.builder() .dbInstanceIdentifier(dbInstanceIdentifier) .dbName(dbName) .engine("postgres") .engineVersion("15.4") .dbInstanceClass("db.t3.micro") .allocatedStorage(20) .masterUsername(masterUsername) .masterUserPassword(masterPassword) .publiclyAccessible(false) .build(); CreateDbInstanceResponse response = rdsClient.createDBInstance(request); // VALIDATION CHECKPOINT: Wait for instance to be available rdsClient.waiter().waitUntilDBInstanceAvailable( DescribeDbInstancesRequest.builder().dbInstanceIdentifier(dbInstanceIdentifier).build() ); System.out.println("Instance " + dbInstanceIdentifier + " is available!");
javaCreateDbParameterGroupRequest request = CreateDbParameterGroupRequest.builder() .dbParameterGroupName(groupName) .dbParameterGroupFamily("postgres15") .description(description) .build(); rdsClient.createDBParameterGroup(request);
javaCreateDbSnapshotRequest request = CreateDbSnapshotRequest.builder() .dbInstanceIdentifier(dbInstanceIdentifier) .dbSnapshotIdentifier(snapshotIdentifier) .build(); CreateDbSnapshotResponse response = rdsClient.createDBSnapshot(request);
Refer to references/spring-boot-integration.md for complete Spring Boot integration examples including:
Refer to references/lambda-integration.md for Lambda integration examples including:
javaModifyDbInstanceRequest request = ModifyDbInstanceRequest.builder() .dbInstanceIdentifier(dbInstanceIdentifier) .dbInstanceClass(newInstanceClass) .applyImmediately(false) .build(); rdsClient.modifyDBInstance(request);
java// VALIDATION CHECKPOINT: Verify instance exists and check status DBInstance instance = rdsClient.describeDBInstances( DescribeDbInstancesRequest.builder().dbInstanceIdentifier(dbInstanceIdentifier).build() ).dbInstances().get(0); if ("available".equals(instance.dbInstanceStatus())) { DeleteDbInstanceRequest request = DeleteDbInstanceRequest.builder() .dbInstanceIdentifier(dbInstanceIdentifier) .skipFinalSnapshot(false) .finalDBSnapshotIdentifier(snapshotId) .build(); rdsClient.deleteDBInstance(request); }
javapublic String createSecurePostgreSQLInstance(RdsClient rdsClient, String instanceIdentifier, String dbName, String masterUsername, String masterPassword, String vpcSecurityGroupId) { // Create instance with security settings CreateDbInstanceRequest request = CreateDbInstanceRequest.builder() .dbInstanceIdentifier(instanceIdentifier) .dbName(dbName) .masterUsername(masterUsername) .masterUserPassword(masterPassword) .engine("postgres") .engineVersion("15.4") .dbInstanceClass("db.t3.micro") .allocatedStorage(20) .storageEncrypted(true) .vpcSecurityGroupIds(vpcSecurityGroupId) .publiclyAccessible(false) .multiAZ(true) .backupRetentionPeriod(7) .deletionProtection(true) .build(); rdsClient.createDBInstance(request); // VALIDATION: Wait for instance availability rdsClient.waiter().waitUntilDBInstanceAvailable( DescribeDbInstancesRequest.builder().dbInstanceIdentifier(instanceIdentifier).build() ); System.out.println("Instance " + instanceIdentifier + " is available!"); return instanceIdentifier; }
Security: Enable encryption (storageEncrypted=true), use VPC security groups, disable public access.
High Availability: Enable Multi-AZ for production workloads.
Backups: Configure automated backups with 7+ day retention.
Deletion Protection: Enable deletionProtection(true) for production databases.
Resource Management: Always close clients with try-with-resources:
javatry (RdsClient rdsClient = RdsClient.builder().region(Region.US_EAST_1).build()) { // Use client }
xml<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>rds</artifactId> <version>2.20.0</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.6.0</version> </dependency>
For detailed API reference, see:
See API Reference for comprehensive error handling patterns including common exceptions, error response structure, and pagination support.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | pass→pass | 11,068 | 10,675 | -4% | 1 | 1 | 0% | 2,178 | 4,097 | +88% | 0 | 0 | — |
case-01 | pass→pass | 5,771 | 5,033 | -13% | 1 | 1 | 0% | 1,128 | 2,897 | +157% | 0 | 0 | — |
case-02 | pass→pass | 6,510 | 4,756 | -27% | 1 | 1 | 0% | 1,132 | 2,841 | +151% | 0 | 0 | — |
case-03 | pass→pass | 7,844 | 5,910 | -25% | 1 | 1 | 0% | 1,428 | 3,176 | +122% | 0 | 0 | — |
case-04 | fail→fail | 5,748 | 5,103 | -11% | 1 | 1 | 0% | 1,011 | 2,904 | +187% | 0 | 0 | — |
case-06 | pass→pass | 8,913 | 7,340 | -18% | 1 | 1 | 0% | 1,940 | 3,592 | +85% | 0 | 0 | — |
case-07 | pass→pass | 9,273 | 8,114 | -12% | 1 | 1 | 0% | 1,928 | 3,812 | +98% | 0 | 0 | — |
case-08 | pass→pass | 8,670 | 5,361 | -38% | 1 | 1 | 0% | 1,786 | 3,028 | +70% | 0 | 0 | — |
case-09 | pass→pass | 12,034 | 11,750 | -2% | 1 | 1 | 0% | 2,628 | 4,527 | +72% | 0 | 0 | — |
case-10 | pass→pass | 12,253 | 11,165 | -9% | 1 | 1 | 0% | 2,473 | 4,418 | +79% | 0 | 0 | — |
case-11 | pass→pass | 8,468 | 7,297 | -14% | 1 | 1 | 0% | 1,622 | 3,429 | +111% | 0 | 0 | — |
case-12 | fail→pass | 5,146 | 4,155 | -19% | 1 | 1 | 0% | 1,028 | 2,799 | +172% | 0 | 0 | — |
case-13 | pass→pass | 7,317 | 4,829 | -34% | 1 | 1 | 0% | 1,379 | 2,911 | +111% | 0 | 0 | — |
case-14 | pass→pass | 4,969 | 4,015 | -19% | 1 | 1 | 0% | 872 | 2,642 | +203% | 0 | 0 | — |
case-15 | pass→pass | 4,539 | 5,298 | +17% | 1 | 1 | 0% | 863 | 2,995 | +247% | 0 | 0 | — |
case-16 | pass→pass | 17,077 | 15,389 | -10% | 1 | 1 | 0% | 2,775 | 4,381 | +58% | 0 | 0 | — |
case-17 | pass→pass | 13,144 | 9,271 | -29% | 1 | 1 | 0% | 2,076 | 3,588 | +73% | 0 | 0 | — |
case-18 | pass→pass | 11,323 | 6,013 | -47% | 1 | 1 | 0% | 1,880 | 3,129 | +66% | 0 | 0 | — |
case-19 | pass→pass | 7,555 | 2,630 | -65% | 1 | 1 | 0% | 1,201 | 2,355 | +96% | 0 | 0 | — |
case-20 | pass→pass | 5,593 | 5,402 | -3% | 1 | 1 | 0% | 980 | 2,852 | +191% | 0 | 0 | — |
case-21 | pass→pass | 12,478 | 13,873 | +11% | 1 | 1 | 0% | 2,333 | 4,736 | +103% | 0 | 0 | — |
case-22 | pass→pass | 10,858 | 9,303 | -14% | 1 | 1 | 0% | 2,260 | 4,048 | +79% | 0 | 0 | — |
case-23 | pass→pass | 6,489 | 6,621 | +2% | 1 | 1 | 0% | 1,217 | 3,200 | +163% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.