It is a set of infrastructure code which intends to be reusable, scalable, testable, customizable, secure and well-documented. In a first moment, this repo works as base for the open-source project FloWave. It can be used in other projects with the apropriate reference.
To deploy the FloWave infrastructure, you will need to set up the following prerequisites:
An AWS account AWS CLI installed and configured Terraform installed Git installed
Once you have set up the prerequisites, follow these steps to deploy the infrastructure:
-
Clone this repository to your local machine:
git clone https://github.com/Demians12/FloWave-infrastructure.git
-
Navigate to the terraform directory:
cd FloWave-infrastructure/terraform
-
Initialize the Terraform environment:
terraform init
-
Modify the terraform.tfvars file to include your own values for the variables defined in variables.tf.
-
Create an execution plan for the Terraform configuration and review the configuration:
terraform plan
-
Apply the Terraform configuration:
terraform apply
The infrastructure code in this repository includes the following resources:
- A virtual private cloud (VPC) with public and private subnets
- An Amazon Elastic Kubernetes Service (EKS) cluster for hosting the FloWave microservices
- A set of AWS Identity and Access Management (IAM) roles and policies for granting permissions to the EKS cluster
- An Amazon Elastic File System (EFS) for storing persistent data used by the FloWave microservices
- An Amazon Relational Database Service (RDS) instance for storing metadata related to ocean wave data
- A set of Amazon Simple Notification Service (SNS) topics and subscriptions for sending notifications related to the FloWave platform
- An Amazon CloudFront distribution for caching and serving static assets used by the FloWave platform
In addition to the infrastructure code, this repository includes a set of AWS Lambda functions for automating certain tasks related to the FloWave platform, such as sending notifications based on data in the RDS database.
Contributing If you wish to contribute to the FloWave infrastructure code, please follow these guidelines:
Fork this repository to your own GitHub account.
Clone your fork of the repository to your local machine: