Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Go AWS Projects
-
Pulumi
Pulumi - Infrastructure as Code in any programming language. Build infrastructure intuitively on any cloud using familiar languages 🚀
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
terraformer
CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code
-
go-cloud
The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
terragrunt
Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
-
terratest
Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
-
external-dns
Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services
-
Encore
Encore is the Backend Development Platform purpose-built to help you create event-driven and distributed systems.
-
terrascan
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
-
komiser
Open-source cloud-environment inspector. Supporting AWS, GCP, Azure, and more! Your cloud resources will have nowhere to hide!
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
If you are following this blog series, you should already know the benefits of using Terraform to define and deploy your AWS resources and configuration. Other IaC solutions such as AWS CloudFormation, AWS CDK, and Pulumi work the same way but differs in the programming or configuration language.
My script just sets up default .sops.yaml for https://github.com/getsops/sops
You can further edit .sops.yaml(eg have multiple of them) and decide how you split secrets in your directory tree to further customize who can decrypt the secrets.
It works pretty well for prod/dev splits, etc
‍Terraformer is a CLI tool developed by Google that generates Terraform files from existing infrastructure (reverse Terraform), simplifying the process of adopting Terraform in existing environments and speeding up the initial setup process. Terraformer supports multiple cloud providers, including AWS, Google Cloud, Azure, and others.
‍Infracost is a cost estimation tool that generates cost estimates for Terraform projects, which is crucial for budget planning and cost optimization, especially in cloud environments where resource costs can vary significantly.
Project mention: How To Manage Amazon GuardDuty in AWS Organizations Using Terraform | dev.to | 2024-04-23âš There is currently an issue where the additional_configuration block order causes differences when applying the Terraform configuration without making any changes.
Even when going multi-cloud you can employ different strategies. Vault is definitely one of them, but you can also use federation to exchange one cloud's credentials for another's, giving you the ability to centralize secrets in one of them. You can use a layer of abstraction like GoCloud [0]. You can also build for each cloud separately and decide either not to centralize secrets at all, or build some trivial bespoke tooling to synchronize some of them. I'm not endorsing any of the options, just pointing out that Vault isn't the only one.
https://github.com/google/go-cloud
Project mention: my first go project, a CLI application to store IP addresses | /r/golang | 2023-07-12
Undying fondness for aws-vault to securely cache my session credentials.
Project mention: Deploying a Containerized App to ECS Fargate Using a Private ECR Repo & Terragrunt | dev.to | 2024-04-22name: Configure on: push: branches: - main pull_request: branches: - main workflow_dispatch: inputs: destroy: description: 'Run Terragrunt destroy command' required: true default: 'false' type: choice options: - true - false jobs: apply: if: ${{ !inputs.destroy || inputs.destroy == 'false' }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Setup SSH uses: webfactory/[email protected] with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Setup Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: 1.5.5 terraform_wrapper: false - name: Setup Terragrunt run: | curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/v0.48.1/terragrunt_linux_amd64" chmod +x terragrunt_linux_amd64 sudo mv terragrunt_linux_amd64 /usr/local/bin/terragrunt terragrunt -v - name: Apply Terraform changes run: | cd dev terragrunt run-all apply -auto-approve --terragrunt-non-interactive -var AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -var AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -var AWS_REGION=$AWS_DEFAULT_REGION env: AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }} destroy: if: ${{ inputs.destroy == 'true' }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Setup SSH uses: webfactory/[email protected] with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Setup Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: 1.5.5 terraform_wrapper: false - name: Setup Terragrunt run: | curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/v0.48.1/terragrunt_linux_amd64" chmod +x terragrunt_linux_amd64 sudo mv terragrunt_linux_amd64 /usr/local/bin/terragrunt terragrunt -v - name: Destroy Terraform changes run: | cd dev terragrunt run-all destroy -auto-approve --terragrunt-non-interactive -var AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -var AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -var AWS_REGION=$AWS_DEFAULT_REGION env: AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
Terratest is a Go library that provides tools and patterns for testing infrastructure, with first-class support for Terraform, Packer, Docker, Kubernetes, and more. It's used to write automated tests for your infrastructure code.
The second one is a combination of tools: External DNS, cert-manager, and NGINX ingress. Using these as a stack, you can quickly deploy an application, making it available through a DNS with a TLS without much effort via simple annotations. When I first discovered External DNS, I was amazed at its quality.
Project mention: A Deep Dive Into Terraform Static Code Analysis Tools: Features and Comparisons | dev.to | 2024-04-16tfsec Owner/Maintainer: Aqua Security (acquired in 2021) Age: First released on GitHub on March 5th, 2019 License: MIT License tfsec project is no longer actively maintained in favor of the Trivy tool. But because many people still use it and it's quite famous, I added tfsec to this comparison. However, I recommend against using it for new projects.
Project mention: Steampipe: Dynamically query APIs, code and more with SQL | news.ycombinator.com | 2024-04-04
Project mention: We might want to regularly keep track of how important each server is | news.ycombinator.com | 2024-02-06Check out CloudQuery - https://github.com/cloudquery/cloudquery for an easy cloud asset inventory.
Project mention: Cutting down AWS cost by $150k per year simply by shutting things off | news.ycombinator.com | 2024-01-22To give this a slightly different spin:
--> "The best optimization is simply not spinning things up."
At least for local development and testing, as made possible by LocalStack (https://localstack.cloud), among other local testing solutions and emulators.
We've seen so many teams fall into the trap of "someone forgot to shut down dev resource X for a week and now we've racked up a $$$ bill on AWS".
What is everyone's strategy to avoid this kind of situation? Tools like `aws-nuke` (https://github.com/rebuy-de/aws-nuke) are awesome (!) to clean up unused resources, but frankly they should not be necessary in the first place.
OpenCost is an open source implementation for Kubernetes cost monitoring and now cloud cost monitoring for AWS, Azure, and GCP. The project makes all of this data accessible via an API and user interface. While discussing the idea of running OpenCost on platforms besides Kubernetes we realized that with this new Cloud Costs feature there are users who want API access to their cloud billing data without needing to run on Kubernetes. I opened the Issue OpenCost without Kubernetes #2268 and as luck would have it, we had our internal Hackathon last week.
If you're not familiar with OpenCost, it's the open source CNCF project for monitoring Kubernetes and cloud spending. It's a Golang implementation of the OpenCost Specification for monitoring Kubernetes cloud costs. It has an optional web UI and you can also run it as a Prometheus metrics exporter. The code is all at https://github.com/opencost/opencost and you can learn more about the project at https://opencost.io
Project mention: Build and deploy a REST API with Postgres database in TypeScript | dev.to | 2024-04-15In this tutorial you will create a REST API for a URL Shortener service using Encore for TypeScript, a new way of building fully type-safe and production-ready distributed systems in TypeScript using declarative infrastructure.
Project mention: A Deep Dive Into Terraform Static Code Analysis Tools: Features and Comparisons | dev.to | 2024-04-16Terrascan Owner/Maintainer: Tenable (acquired in 2022) Age: First release on GitHub on November 28th, 2017 License: Apache License 2.0
Project mention: Komiser – Your cloud resources will have nowhere to hide | news.ycombinator.com | 2023-10-17
I thought at the beginning that such certificate would then expire, but I have seen cert-manager is within ALB code https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/config/certmanager/certificate.yaml so that makes me hesitate about it.
Project mention: WAL-G 3.0.0 – fast disaster recovery for Postgres | news.ycombinator.com | 2024-03-17
Go AWS related posts
- How To Manage Amazon GuardDuty in AWS Organizations Using Terraform
- Deploying a Containerized App to ECS Fargate Using a Private ECR Repo & Terragrunt
- Pico.sh – Hacker Labs
- AWS EKS: From IRSA to Pod Identity With Terraform
- Go's Error Handling Is Perfect
- Keep your AWS CLI config fresh with Cog
- Top Terraform Tools to Know in 2024
-
A note from our sponsor - InfluxDB
www.influxdata.com | 25 Apr 2024
Index
What are some of the best open-source AWS projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | Pulumi | 19,705 |
2 | sops | 15,069 |
3 | terraformer | 11,763 |
4 | infracost | 10,239 |
5 | terraform-provider-aws | 9,453 |
6 | go-cloud | 9,380 |
7 | up | 8,766 |
8 | aws-sdk-go | 8,549 |
9 | aws-vault | 8,141 |
10 | terragrunt | 7,613 |
11 | terratest | 7,330 |
12 | external-dns | 7,242 |
13 | tfsec | 6,544 |
14 | steampipe | 6,379 |
15 | cloudquery | 5,581 |
16 | aws-nuke | 5,326 |
17 | awless | 4,952 |
18 | opencost | 4,708 |
19 | Encore | 4,531 |
20 | terrascan | 4,494 |
21 | komiser | 3,844 |
22 | aws-load-balancer-controller | 3,754 |
23 | wal-g | 3,038 |
Sponsored