https://github.com/pepperize/cdk-vpc
Utility constructs for tagging subnets or creating a cheaper vpc.
https://github.com/pepperize/cdk-vpc
aws cdk cheap tags vpc
Last synced: 3 months ago
JSON representation
Utility constructs for tagging subnets or creating a cheaper vpc.
- Host: GitHub
- URL: https://github.com/pepperize/cdk-vpc
- Owner: pepperize
- License: mit
- Created: 2022-04-05T12:04:30.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-01T16:01:54.000Z (4 months ago)
- Last Synced: 2025-07-03T17:16:31.602Z (4 months ago)
- Topics: aws, cdk, cheap, tags, vpc
- Language: TypeScript
- Homepage:
- Size: 4.02 MB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://makeapullrequest.com)
[](https://github.com/pepperize/cdk-vpc/blob/main/LICENSE)
[](https://www.npmjs.com/package/@pepperize/cdk-vpc)
[](https://pypi.org/project/pepperize.cdk-vpc/)
[](https://www.nuget.org/packages/Pepperize.CDK.Vpc/)
[](https://s01.oss.sonatype.org/content/repositories/releases/com/pepperize/cdk-vpc/)
[](https://github.com/pepperize/cdk-vpc/actions/workflows/release.yml)
[](https://github.com/pepperize/cdk-vpc/releases)
[](https://gitpod.io/#https://github.com/pepperize/cdk-vpc)# CDK Vpc
Utility constructs for tagging subnets or creating a cheaper vpc.
- [Cheaper Vpc](#create-a-cheaper-vpc)
- [Tagging subnets](#tag-your-imported-subnets)## Install
### TypeScript
```shell
npm install @pepperize/cdk-vpc
```or
```shell
yarn add @pepperize/cdk-vpc
```### Python
```shell
pip install pepperize.cdk-vpc
```### C\# / .Net
```shell
dotnet add package Pepperize.CDK.Vpc
```### Java
```xml
com.pepperize
cdk-vpc
${cdkVpc.version}```
## Getting Started
1. Create a new CDK TypeScript App project with [projen](https://github.com/projen/projen)
```shell
mkdir my-project
cd my-project
git init -b main
npx projen new awscdk-app-ts
```2. Add `@pepperize/cdk-vpc` to your dependencies in `.projenrc.js`
```typescript
const project = new awscdk.AwsCdkTypeScriptApp({
//...
deps: ["@pepperize/cdk-vpc"],
});
```3. Install the dependency
```shell
npx projen
```# Usage
## Create a cheaper Vpc
Use this as a cheaper drop-in replacement to create a vpc with 2 AvailabilityZones and a `t3.nano` NatInstance.
```typescript
import { App, Stack } from "aws-cdk-lib";
import { CheapVpc } from "@pepperize/cdk-vpc";const app = new App();
const stack = new Stack(app, "MyCheapVpcStack");new CheapVpc(stack, "MyCheapVpc");
```## Tag your imported subnets
Subnets imported by `Vpc.fromLookup` wouldn't be tagged by `Tags.of` automatically. To tag them (or any other imported vpc resource) use:
```typescript
import { CheapVpc } from "@pepperize/cdk-vpc";
import * as ec2 from "aws-cdk-lib/aws-ec2";const app = new App();
const stack = new Stack(app, "VpcStack");
const vpc = ec2.Vpc.fromLookup(stack, "VpcLookup", {
vpcId: "vpc-1234567890",
region: env.region,
});new CreateTags(vpcStack, "TagPrivateSubnets", {
resourceIds: vpc.privateSubnets.map((subnet) => {
return subnet.subnetId;
}),
tags: [
{
key: "kubernetes.io/role/internal-elb",
value: "1",
},
],
});
```# Contributing
Contributions of all kinds are welcome :rocket: Check out our [contributor's guide](https://github.com/pepperize/cdk-vpc/blob/main/CONTRIBUTING.md).
For a quick start, check out a development environment:
```shell
git clone git@github.com:pepperize/cdk-vpc
cd cdk-vpc
# install dependencies
yarn
# build with projen
yarn build
```