@mavogel/cdk-vscode-server v0.0.40
cdk-vscode-server
Running your dev IDE vscode on AWS for development and workshop purposes.
!Note This construct is designed for workshop purposes and does not fulfill all security and authentication best practices.
This is an early version of the package. The API will change while I
we implement new features. Therefore make sure you use an exact version in your
package.json before it reaches 1.0.0.
Table of Contents
Features
- โก Quick Setup: Spin up and configure your vscode server in under 10 minutes in your AWS account
- ๐ Best Practice Setup: Set up with projen and a single configuration file to keep your changes centralized.
- ๐คนโโ๏ธ Pre-installed packages: Besides the vscode server, other tools and software packages such as
git,docker,awsclinodejsandpythonare pre-installed on the EC2 instance. - ๐๏ธ Extensibility: Pass in properties to the construct, which start with
additional*. They allow you to extend the configuration to your needs. There are more to come...
Usage
The following steps get you started:
- Create a new
awscdk-appvia
npx projen new awscdk-app-ts --package-manager=npm- Add
@mavogel/cdk-vscode-serveras a dependency to your project in the.projenrc.tsfile - Run
npx projento install it - Add the following to the
src/main.tsfile:
import { App, Stack, StackProps } from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as iam from 'aws-cdk-lib/aws-iam';
import { Construct } from 'constructs';
import {
LinuxArchitectureType,
LinuxFlavorType,
VSCodeServer
} from '@mavogel/cdk-vscode-server';
export class MyStack extends Stack {
constructor(scope: Construct, id: string, props: StackProps = {}) {
super(scope, id, props);
new VSCodeServer(this, 'vscode', {
// for example (or simply use the defaults by not setting the properties)
instanceVolumeSize: 8,
instanceClass: ec2.InstanceClass.M7G,
instanceSize: ec2.InstanceSize.LARGE,
instanceOperatingSystem: LinuxFlavorType.UBUNTU_22,
instanceCpuArchitecture: LinuxArchitectureType.ARM,
// ๐๐ฝ or if you want to give the InstanceRole more permissions
additionalInstanceRolePolicies: [
new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
actions: [
'codebuild:*',
],
resources: [
`arn:aws:codebuild:*:${Stack.of(this).account}:*/*`,
],
}),
]
// and more... ๐ก
});
}
}
const env = {
account: '123456789912',
region: 'eu-central-1',
};
const app = new App();
new MyStack(app, 'vscode-server', { env });
app.synth();and deploy it
npx projen build
npx projen deploywith the output
โจ Deployment time: 509.87s
Outputs:
dev.vscodedomainName6729AA39 = https://d1foo65bar4baz.cloudfront.net/?folder=/Workshop
dev.vscodepassword64FBCA12 = foobarbazSee the examples folder for more inspiration.
Then open the domain name in your favorite browser and you'd see the following login screen:

After entering the password, you are logged into VSCode and can start coding :tada:

!Important There are issues with copy pasting into the VSCode terminal within the Firefox browser (2025-01-12)
Solution Design

Inspiration
This project was created based on the following inspiration
- vscode-on-ec2-for-prototyping: as baseline, which unfortunately was outdated
- aws-terraform-dev-container: as baseline for terraform, but unfortunately also outdated
- java-on-aws-workshop-ide-only.yaml: an already synthesized cloudformation stack, which used mostly python as the custom resources
- fleet-workshop-team-stack-self.json: also an already synthesized cloudformation stack, which did much more as I currently implemented here.
- eks-workshop-vscode-cfn.yaml: another great baseline
๐ Unlock the Full Potential of Your AWS Cloud Infrastructure
Hi, Iโm Manuel, an AWS expert passionate about empowering businesses with scalable, resilient, and cost-optimized cloud solutions. With MV Consulting, I specialize in crafting tailored AWS architectures and DevOps-driven workflows that not only meet your current needs but grow with you.
๐ Why Work With Me?
โ๏ธ Tailored AWS Solutions: Every business is unique, so I design custom solutions that fit your goals and challenges.
โ๏ธ Well-Architected Designs: From scalability to security, my solutions align with AWS Well-Architected Framework.
โ๏ธ Cloud-Native Focus: I specialize in modern, cloud-native systems that embrace the full potential of AWS.
โ๏ธ Business-Driven Tech: Technology should serve your business, not the other way around.
๐ What I Bring to the Table
๐ 12x AWS Certifications
Iโm AWS Certified Solutions Architect and DevOps โ Professional and hold numerous additional certifications, so you can trust Iโll bring industry best practices to your projects. Feel free to explose by badges
โ๏ธ Infrastructure as Code (IaC)
With deep expertise in AWS CDK and Terraform, I ensure your infrastructure is automated, maintainable, and scalable.
๐ฆ DevOps Expertise
From CI/CD pipelines with GitHub Actions and GitLab CI to container orchestration Kubernetes and others, I deliver workflows that are smooth and efficient.
๐ Hands-On Experience
With over 7 years of AWS experience and a decade in the tech world, Iโve delivered solutions for companies large and small. My open-source contributions showcase my commitment to transparency and innovation. Feel free to explore my GitHub profile
๐ผ Letโs Build Something Great Together
I know that choosing the right partner is critical to your success. When you work with me, youโre not just contracting an engineer โ youโre gaining a trusted advisor and hands-on expert who cares about your business as much as you do.
โ๏ธ Direct Collaboration: No middlemen or red tape โ you work with me directly.
โ๏ธ Transparent Process: Expect open communication, clear timelines, and visible results.
โ๏ธ Real Value: My solutions focus on delivering measurable impact for your business.
๐ Acknowledgements
Big shoutout to the amazing team behind Projen!
Their groundbreaking work simplifies cloud infrastructure projects and inspires us every day. ๐ก
Author
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago