This repository contains the Terraform configuration for Videonia's infrastructure.
Before running the Terraform project, ensure you have the following prerequisites:
-
Terraform Installation:
- Install Terraform from the official website.
-
AWS CLI Installation:
- Install the AWS CLI from the official website.
-
AWS Configuration:
- Configure your AWS credentials provided by the lead of the cloud services by running:
aws configure
- Follow the prompts to enter your AWS Access Key ID, Secret Access Key, region, and output format.
- Configure your AWS credentials provided by the lead of the cloud services by running:
-
Clone the Repository:
git clone https://github.com/numengames/numinia-terraform.git cd numinia-terraform
-
Configure Variables:
- Create a
terraform.tfvars
file and define the necessary variable values required byvariables.tf
.
- Create a
-
Initialize Terraform:
- Run the following command to initialize the Terraform working directory:
terraform init
- Run the following command to initialize the Terraform working directory:
-
Plan and Apply:
- To see the changes that will be made, run:
terraform plan
- To apply the changes, run:
terraform apply
- To see the changes that will be made, run:
- .terraform/: Terraform configuration and state files.
- main.tf: Main Terraform configuration file.
- variables.tf: Variable definitions.
- terraform.tfvars: Variable values.
- terraform.tfstate.backup: Backup of the state file.
- .gitignore: Git ignore file.
- .gitlab-ci.yml: GitLab CI/CD configuration.
- .terraform.lock.hcl: Provider version lock file.
- environments/production/: Production environment configuration.
- modules/: Reusable Terraform modules.
- acm: Manages AWS Certificate Manager (ACM) resources for provisioning and managing SSL/TLS certificates.
- acm_validate: Handles the validation of ACM certificates, typically through DNS validation.
- cloudfront: Configures Amazon CloudFront distributions for content delivery.
- ecs_cluster: Sets up Amazon ECS (Elastic Container Service) clusters for running containerized applications.
- iam: Manages AWS Identity and Access Management (IAM) resources, including users, roles, and policies.
- route53: Configures Amazon Route 53 for DNS management.
- s3: Manages Amazon S3 buckets for object storage.
- secrets-manager: Manages AWS Secrets Manager for storing and retrieving sensitive information.
- ses: Configures Amazon Simple Email Service (SES) for sending and receiving emails.
- videonia-core: Custom module for managing core services specific to Videonia.
- vpc: Sets up Amazon Virtual Private Cloud (VPC) resources for network isolation and management.