How-to Deploy a Node.js application on AWS
Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on a JavaScript Engine (i.e. V8 engine) which was designed to build scalable backend applications.
Microtica offers a ready-to-use template to deploy a Node.js application as part of our Free templates pack. You can self-host Node.js on your own AWS account and setup a production-ready solution in minutes.
When you deploy an application with the Node.js template, you have the possibility to create a new Node.js application in your Git repository or select an existing Node.js application if you already have one.
By using Git for your Node.js projects, you can take advantage of automated deployments, rollbacks of the infrastructure if something fails, and deployment insights (who deployed what, when, and where).
1. Select the Node.js Template
In the starting screen, select the Node.js template, in the Free Application Templates section. These are free forever templates. You will be redirected to a page where you need to connect your Git account, choose a cluster where to deploy your app, and Deploy.
On the left side, you can see a link to the source code of this template. It will redirect you to Microtica's GitHub account.
2. Import Git Repository
As a first step, you need to connect a Git account (GitHub, Bitbucket, or GitLab). If you already have a Git account connected to Microtica, you can choose it from the list. Select the repository with your existing application code, click Save, and every Git push will be deployed automatically in Microtica.
3. Prepare your Git repository
When importing an existing project in Microtica, there are necessary files that need to be present in the repository, in order for the CI/CD pipelines to work correctly. These files are defined in the .microtica folder, whose content you can preview on our GitHub account.
Clicking the Add button will create a new .microtica folder in your Node.js repository that contains (among other files) the microtica.yaml pipeline spec and a Dockerfile. The files contain some default configurations, so if you have anything specific for your application, you can update them.
Before continuing to the next step, we need to verify that these files are present in the repository. Clicking the Validate button will perform a check, and you can continue to choose where to deploy your application, once everything is correctly setup in your Git repo.
4. Select a cluster
The next step is choosing the Kubernetes cluster where your application will deploy. There are two options you can select to run your container app:
- Create a new EKS cluster on the spot
- Connect an existing cluster
4.1. Create a new EKS cluster on the spot
If you want to deploy your Node.js application on your own AWS account, you can create an AWS managed-Kubernetes (EKS) cluster, by clicking on the Create Amazon EKS Cluster button.
This is the recommended option for production applications, as it gives you full ownership of your cloud infrastructure and applications.
This action will open the popup shown on the image above. You can select the environment in which you'd want this cluster to be deployed. If you don't have an existing environment, you can create one by selecting the Create Environment action from the dropdown menu.
Once you select an environment, the next step is to select an AWS account and region where the EKS cluster will be deployed. If you don't have a connected AWS account, you can connect one right here by clicking the Connect AWS Account button. This will initiate a CloudFormation stack that will give Microtica permissions to provision infrastructure on your AWS account. Once you create the stack, the connection will be established automatically and you'll be able to see the AWS account in the dropdown list of accounts.
Select the account, select a region, and then click on Deploy to start the deployment of your environment.
Deploying a new Kubernetes cluster on your AWS account could take up to 15 mins.
4.2. Connect an existing cluster
In Microtica you can also connect an existing Kubernetes Cluster that you have and deploy your applications there. You can connect Kubernetes clusters running on basically any cloud provider or on-premise. By connecting a cluster you can use the full capabilities of Microtica’s Kubernetes automation.
To connect an existing Kubernetes cluster in Microtica and deploy your Node.js application there, follow the documentation linked here.
5. Deploy the template to your cluster
Once you’re done with the cluster selection, you can go ahead and trigger a deployment of the environment by clicking on the Deploy button.
It takes approximately 4-5 minutes for this application to be deployed on the cloud. In the meantime, you can follow the detailed deployment logs by clicking the View Logs button.
6. Access application
When the deployment is finished, you will see a View Applications button, that leads you to the Apps tab inside the environment. Here you can see all your live applications that are deployed and currently running on the cloud.
Select your Node.js application to navigate to the overview page, where you have some basic information about the app. By clicking on the domain field or the Visit button, you can preview your application live in the browser.
For even more information, you can also look at the Deployments and Monitoring tabs, where you have the pipeline history, resource consumption metrics, and logs for your instances.
To learn more about how to scale your Node.js application in Microtica, read the following article about Scaling Applications in Microtica.