{"id":24882810,"url":"https://github.com/minhajul/learning-terraform","last_synced_at":"2025-10-16T02:30:28.519Z","repository":{"id":275013839,"uuid":"916228953","full_name":"minhajul/learning-terraform","owner":"minhajul","description":"This repository is created for the purpose of learning and practicing Terraform concepts and how they apply to AWS. It contains various Terraform configurations for provisioning resources and managing infrastructure on AWS.","archived":false,"fork":false,"pushed_at":"2025-01-30T17:12:45.000Z","size":9,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T18:23:55.419Z","etag":null,"topics":["aws","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/minhajul.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-13T17:39:45.000Z","updated_at":"2025-01-30T17:12:49.000Z","dependencies_parsed_at":"2025-01-30T18:24:06.911Z","dependency_job_id":"f3f410cf-84cc-44b9-9821-0b3c68c2a00e","html_url":"https://github.com/minhajul/learning-terraform","commit_stats":null,"previous_names":["minhajul/learning-terraform"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minhajul%2Flearning-terraform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minhajul%2Flearning-terraform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minhajul%2Flearning-terraform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minhajul%2Flearning-terraform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minhajul","download_url":"https://codeload.github.com/minhajul/learning-terraform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236664668,"owners_count":19185537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","terraform"],"created_at":"2025-02-01T13:16:24.020Z","updated_at":"2025-10-16T02:30:23.233Z","avatar_url":"https://github.com/minhajul.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Learning Terraform with AWS\n\nThis repository is created for the purpose of learning and practicing Terraform concepts and how they apply to AWS. It contains various Terraform configurations for provisioning resources and managing infrastructure on AWS.\n\n### Table of Contents\n\n- [Introduction](#introduction)\n- [Prerequisites](#prerequisites)\n- [Getting Started](#getting-started)\n- [Structure](#structure)\n- [Usage](#usage)\n- [Notes](#notes)\n- [Contributing](#contributing)\n\n### Introduction\n\nTerraform is an open-source infrastructure as code (IaC) tool that allows you to define, provision, and manage cloud resources using a declarative configuration language. In this repository, we explore how to use Terraform to interact with AWS, including setting up networks, EC2 instances, databases, S3 buckets, and more.\n\n### Prerequisites\n\nBefore you start using Terraform with AWS, ensure you have the following installed and configured:\n\n- [Terraform](https://www.terraform.io/downloads.html) - Version 1.x or newer\n- [AWS CLI](https://aws.amazon.com/cli/) - Version 2.x\n- [An AWS Account](https://aws.amazon.com/)\n\nAdditionally, set up your AWS credentials by configuring the AWS CLI:\n\n```bash\naws configure\n```\n\n### Getting Started\n\nClone this repository:\n\n```bash\ngit clone https://github.com/minhajul/learning-terraform.git\ncd learning-terraform\n```\n\nChange the path to the specific folder, now initialize Terraform to download the necessary provider plugins:\n\n```bash\nterraform init\n```\n\nReview and modify configuration files as necessary.\n\nApply the Terraform configuration to provision the resources on AWS:\n\n```bash\nterraform apply\n```\n\nTerraform will prompt you to confirm the plan. Type `yes` to proceed.\n\nOnce done, destroy the resources if you no longer need them:\n\n```bash\nterraform destroy\n```\n\n### Structure\n\nThis repository is organized into different directories and files for various AWS resources:\n\n- `vpc/` – Contains Terraform configurations for setting up a VPC.\n- `ec2/` – Includes configurations to create EC2 instances.\n- `s3/` – Contains configurations to provision S3 buckets.\n- `rds/` – Sets up an RDS database instance.\n- `outputs.tf` – Terraform outputs after resources are created.\n- `variables.tf` – Define input variables for the Terraform configurations.\n- `main.tf` – The primary configuration file for the infrastructure.\n\n### Usage\n\n1. **Creating Resources:** To create resources, simply use the `terraform apply` command from within any of the subdirectories. Modify the variables and configurations to suit your needs.\n\n2. **Output:** Once the configuration is applied, Terraform will output the details of the created resources, such as EC2 instance public IP, S3 bucket URL, etc.\n\n3. **Variables and Customization:** Customize `variables.tf` and the main configuration files (`main.tf`) to define your AWS resources, such as security groups, instances, VPCs, etc.\n\n### Notes\n\n- Always be careful when applying Terraform configurations on your AWS account. Some resources can incur costs, such as EC2 instances and RDS databases.\n- Use the `terraform destroy` command to remove resources after experimentation or when they are no longer needed to avoid unnecessary charges.\n\n### Contributing\n\nFeel free to fork this repository, make changes, and submit pull requests. This project is primarily for educational purposes, so if you encounter any issues, please open an issue, and we will work on resolving it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminhajul%2Flearning-terraform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminhajul%2Flearning-terraform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminhajul%2Flearning-terraform/lists"}