CDK construct library for creating an EC2 instance with Node.js installed
Project description
CDK Node.js EC2 Instance Construct
This is a CDK Construct for creating an EC2 instance with Node.js installed.
You can use Node.js as soon as the EC2 instance starts.
Usage
Install the package:
npm install cdk-node-ec2-instance
Use it in your CDK stack:
import { NodeEc2Instance } from 'cdk-node-ec2-instance';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
declare const vpc: ec2.IVpc;
// You can configure all properties of the EC2 instance
new NodeEc2Instance(this, 'Instance', {
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
machineImage: new ec2.AmazonLinuxImage({
generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2023,
}),
nodeJsVersion: 'v20.13.1', // Optional property. Default is installing the latest LTS version
});
After the stack is deployed, you can SSH into the EC2 instance and use Node.js:
$ ssh ec2-user@<public-ip>
$ node --version
v20.13.1
user data
Installation of Node.js is done by user data script. You can see the script in the src/index.ts
file.
nodejsUserData.addCommands(
'touch ~/.bashrc',
'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash',
'source ~/.bashrc',
'export NVM_DIR="$HOME/.nvm"',
'[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"',
`nvm install ${props.nodeJsVersion ?? '--lts'}`,
// Note that the above will install nvm, node and npm for the root user.
// It will not add the correct ENV VAR in ec2-user's environment.
`cat <<EOF >> /home/ec2-user/.bashrc
export NVM_DIR="/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
EOF`);
Ofcourse, you can customize the additional user data script by calling instance.userData.addCommands()
method.
declare const instance: NodeEc2Instance;
// install VScode for linux
instance.userData.addCommands(
'sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc',
'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null',
'sudo dnf check-update',
'sudo dnf install -y code',
);
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
node-ec2-instance-0.0.7.tar.gz
(41.7 kB
view hashes)
Built Distribution
Close
Hashes for node_ec2_instance-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab3fbb79011e0d7271002b6d6166315c1d15e2f000b6e64c81115e4d377c4a82 |
|
MD5 | 740bec732211efe9f98b545ece1d91ba |
|
BLAKE2b-256 | 6a97f9cc45773dde43be82089da202ba4f5fcf23aa47f0d16f39d096717fdff0 |