https://github.com/gordonmurray/terraform_aws_api_gateway_proxy
An AWS API gateway to receive data via POST and store the data in to an s3 bucket. An Ansible playbook is included to test that the API endpoint is working and saving data to s3
https://github.com/gordonmurray/terraform_aws_api_gateway_proxy
api-gateway aws lambda s3
Last synced: 11 months ago
JSON representation
An AWS API gateway to receive data via POST and store the data in to an s3 bucket. An Ansible playbook is included to test that the API endpoint is working and saving data to s3
- Host: GitHub
- URL: https://github.com/gordonmurray/terraform_aws_api_gateway_proxy
- Owner: gordonmurray
- License: mit
- Created: 2022-04-28T21:25:41.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-21T19:22:16.000Z (over 3 years ago)
- Last Synced: 2025-07-19T09:30:06.473Z (12 months ago)
- Topics: api-gateway, aws, lambda, s3
- Language: HCL
- Homepage:
- Size: 95.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# AWS API Gateway
An AWS API Gateway that can be used to receive data via a POST request and store the data in to an s3 bucket in json format.
```
terraform apply
Plan: 21 to add, 0 to change, 0 to destroy.
```
Once applied, test the deployment URL with Ansible. It will Post to the API and check that a file is created on s3.
Terraform will create a variables file for Ansible to use, so it will know the API endpoint and s3 bucket to check
The file will be located at `/ansible/roles/test/vars/main.yml`
```
cd ansible
ansible-playbook main.yml
```
[](https://asciinema.org/a/547248)
## Estimated cost per month:
Assuming 1m API requests and 5 GB of logs stored on Cloudwatch per month
```
Project: gordonmurray/terraform_aws_api_gateway_proxy
Name Monthly Qty Unit Monthly Cost
aws_api_gateway_rest_api.default
└─ Requests (first 333M) 1 1M requests $3.50
aws_cloudwatch_log_group.lambda
├─ Data ingested 5 GB $2.50
├─ Archival Storage 5 GB $0.15
└─ Insights queries data scanned 5 GB $0.03
aws_lambda_function.default
├─ Requests Monthly cost depends on usage: $0.20 per 1M requests
└─ Duration (first 6B) 125 GB-seconds $0.00
aws_s3_bucket.data_bucket
└─ Standard
├─ Storage Monthly cost depends on usage: $0.023 per GB
├─ PUT, COPY, POST, LIST requests Monthly cost depends on usage: $0.005 per 1k requests
├─ GET, SELECT, and all other requests Monthly cost depends on usage: $0.0004 per 1k requests
├─ Select data scanned Monthly cost depends on usage: $0.002 per GB
└─ Select data returned Monthly cost depends on usage: $0.0007 per GB
OVERALL TOTAL $6.18
──────────────────────────────────
20 cloud resources were detected:
∙ 4 were estimated, all of which include usage-based costs, see https://infracost.io/usage-file
∙ 14 were free:
∙ 2 x aws_api_gateway_integration
∙ 2 x aws_api_gateway_method
∙ 2 x aws_api_gateway_method_response
∙ 2 x aws_iam_role_policy_attachment
∙ 1 x aws_api_gateway_deployment
∙ 1 x aws_api_gateway_resource
∙ 1 x aws_iam_policy
∙ 1 x aws_iam_role
∙ 1 x aws_lambda_permission
∙ 1 x aws_s3_bucket_acl
∙ 2 are not supported yet, see https://infracost.io/requested-resources:
∙ 2 x aws_api_gateway_integration_response
```
## API gateway check
This project includes a [Checkly](https://www.checklyhq.com/) provider and API test so that the resulting API gateway is monitored.
