npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aws-cdk-app

v0.1.0

Published

This AWS CDK project is designed to save time and reduce duplicated work when provisioning Amazon RDS instances. It automates the creation of AWS resources such as RDS secrets for CI, APP, and Readonly users, security groups, RDS proxy security groups, RD

Downloads

2

Readme

Overview

This AWS CDK project is designed to save time and reduce duplicated work when provisioning Amazon RDS instances. It automates the creation of AWS resources such as RDS secrets for CI, APP, and Readonly users, security groups, RDS proxy security groups, RDS proxy role, RDS database instance, RDS proxy, and RDS proxy target group. Additionally, the project provides output of the database related endpoints and names.

Prerequisites

Before you can use this AWS CDK project, you must have the following prerequisites installed and configured:

  • AWS CLI
  • Node.js and npm
  • AWS CDK CLI

You must also have appropriate AWS credentials configured on your system.

Installation

Clone this repository to your local machine. Navigate to the root directory of the project in your terminal or command prompt. Run npm install to install the project dependencies.

The cdk.json file tells the CDK Toolkit how to execute your app.

Usage

Modify the properties of the RdsStackProps interface to match your desired configuration for the RDS instance. Save the file.

In your terminal or command prompt, run the following command to provision the RDS instance:

cdk deploy

This will deploy the RDS instance and associated resources to your AWS account.

When the deployment is complete, the AWS CloudFormation console will display the output values for the stack. These values will include the endpoint and name of the RDS instance and other relevant information.

Cleanup

When you are finished with the RDS instance, you can remove it from your AWS account to avoid incurring additional charges. To do this, run the following command in your terminal or command prompt:

cdk destroy

This will remove all resources associated with the stack.

Useful commands

  • npm run build compile typescript to js
  • npm run watch watch for changes and compile
  • npm run test perform the jest unit tests
  • cdk deploy deploy this stack to your default AWS account/region
  • cdk diff compare deployed stack with current state
  • cdk synth emits the synthesized CloudFormation template

Naming conventions

Given {pascalDbName : 'CdkTestDb', snakeDbName : 'cdk-test-db'}

| Resources | Name | Notes | | ------------- | ------------- | --------------| | AWS::SecretsManager::Secret | cdk-test-db-test-RDS-ReadonlySecret | username: CdkTestDb_readonly, password: uuidv4, ssmUsername:/rds/cdk-test-db/test/readonly/username, ssmPassword:/rds/cdk-test-db/test/readonly/username| | AWS::SecretsManager::Secret | cdk-test-db-test-RDS-CISecret | username: CdkTestDb_ci, password: uuidv4, ssmUsername:/rds/cdk-test-db/test/ci/username, ssmPassword:/rds/cdk-test-db/test/ci/username| | AWS::SecretsManager::Secret | cdk-test-db-test-RDS-AppSecret | username: CdkTestDb_app, password: uuidv4, ssmUsername:/rds/cdk-test-db/test/app/username, ssmPassword:/rds/cdk-test-db/test/app/username| | AWS::IAM::Role | CdkTestDbRDSProxyRole | | AWS::EC2::SecurityGroup | CdkTestDbRDSProxySecurityGroup | | AWS::EC2::SecurityGroup | CdkTestDbRDSSecurityGroup | | AWS::RDS::DBInstance | cdk-test-db-test | DBName: cdktestdbtest DBInstanceIdentifier: cdk-test-db-test, MasterUsername: CdkTestDb_ci, MasterUserPassword: uuidv4 | | AWS::RDS::DBProxy | cdk-test-db-rds-proxy | | AWS::RDS::DBProxyTargetGroup | default | | Outputs|CdkTestDbDatabaseProxy, CdkTestDbDatabaseHost, CdkTestDbDatabasePort, CdkTestDbDatabaseName |

8 digits will be added to resource name to make sure it's global unique

Issues

  1. Fn:Import value doesn't work properly in AWS-CDK, to resolve the problem, we would need to read the data from ssm or read from stack details
  2. RdsProxy IAMAuth is attached to Proxy rather than DBSecrets, so we can't have different IAMAuth configuration for the secrets under the RdsProxy
  3. To create the credential and put it into ssm, we would need to check its existence, fetch ssm will throw an exception and terminate the deployment processes even if we captured the exception. To avoid the exception being thrown, we have to read the parameter describes to check existence.
  4. DBProxyTargetGroup deployment can't be processed successfully, somehow we can't connect to the RDS properly, https://github.com/aws/aws-cdk/issues/8919, https://github.com/aws/aws-cdk/pull/12953

Conclusion

This AWS CDK project can save you significant time and effort when provisioning Amazon RDS instances. It automates the creation of resources and provides output values that can be used to configure your applications to use the new RDS instance. By using this project, you can quickly and easily provision RDS instances without having to manually create and configure each resource.