Automating the deployment of your application is key for fast development cycles. CodeDeploy is a service offered by AWS to perform this task. This post shows how to integrate AWS Lightsail and CodeDeploy to achieve automation of deployments.
Scaling web applications can be tricky. One obstacle is the handling of shared data, like images uploaded by users. A common solution is the usage of a shared file system. For these kinds of use cases AWS provides the Elastic File System (EFS). Fortunately, it can also be used with AWS Lightsail using three easy steps.
AWS Lightsail is a set of services offered by AWS which can be used to run the infrastructure needed for hosting web applications: virtual servers, managed databases and load balancers. Launching the infrastructure through infrastructure as code tools is not well supported yet. Fortunately, this can be done with little effort by using the AWS CLI instead.
In previous blog posts I’ve shown how to build serverless microservices which provide a REST API. Each service consists of a bunch of Lambda functions triggered by the AWS API Gateway. In a real world scenario multiple microservices would compose an application exposed through a single domain. To achieve this, a custom domain can be used.
GitHub provides a simple API for updating the status of commits based on the results of Continuous Integration (CI) builds. This can easily be integrated with AWS CodePipeline which has no out-of-the-box support for this feature.
The OpenAPI Specification (aka Swagger) provides a structured way for describing REST APIs. The AWS API Gateway can be configured based on this Swagger configuration files. This way the configuration of the API can be done in “code”, can be automated completely and from the configuration the documentation can be generated.
Most of the time I’ve been using Node.js for building Lambda functions running on AWS. Recently, I wanted to experiment with Java for building a serverless application. In this blog post I describe the necessary steps for building a very simple microservice.