Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/infraspecdev/terraform-aws-athena

This Terraform module automates the setup of AWS Athena to query ALB access and connection logs stored in an S3 bucket.
https://github.com/infraspecdev/terraform-aws-athena

athena glue-catalog terrform-module

Last synced: 3 days ago
JSON representation

This Terraform module automates the setup of AWS Athena to query ALB access and connection logs stored in an S3 bucket.

Awesome Lists containing this project

README

        

terraform-aws-athena

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.8.4 |
| [aws](#requirement\_aws) | ~> 5.0 |

## Providers

| Name | Version |
|------|---------|
| [aws](#provider\_aws) | ~> 5.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [aws_athena_workgroup.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/athena_workgroup) | resource |
| [aws_glue_catalog_database.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/glue_catalog_database) | resource |
| [aws_glue_catalog_table.alb_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/glue_catalog_table) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [alb\_access\_logs\_table\_name](#input\_alb\_access\_logs\_table\_name) | (Optional) The name of the Glue Catalog table that will store the parsed ALB access logs | `string` | `"alb_access_logs"` | no |
| [alb\_connection\_logs\_table\_name](#input\_alb\_connection\_logs\_table\_name) | (Optional) The name of the Glue Catalog table that will store the parsed ALB connection logs | `string` | `"alb_connection_logs"` | no |
| [database\_name](#input\_database\_name) | (Required) The name of the Athena database in the AWS Glue Catalog that will contain the schema definitions for your ALB logs | `string` | n/a | yes |
| [query\_results\_bucket](#input\_query\_results\_bucket) | (Required) The name of the S3 bucket where Athena will store the output of executed queries | `string` | n/a | yes |
| [s3\_bucket\_name](#input\_s3\_bucket\_name) | (Required) The name of the S3 bucket that holds the raw Application Load Balancer (ALB) logs | `string` | n/a | yes |
| [workgroup\_name](#input\_workgroup\_name) | (Required) The name of the Athena workgroup that will manage and isolate query execution and resource usage | `string` | n/a | yes |

## Outputs

| Name | Description |
|------|-------------|
| [alb\_access\_logs\_location](#output\_alb\_access\_logs\_location) | Location in S3 where ALB access logs are stored |
| [alb\_connection\_logs\_location](#output\_alb\_connection\_logs\_location) | Location in S3 where ALB connection logs are stored |
| [alb\_logs\_bucket\_name](#output\_alb\_logs\_bucket\_name) | S3 bucket name where ALB logs are retrieved |
| [athena\_workgroup\_name](#output\_athena\_workgroup\_name) | Name of the Athena Workgroup |
| [glue\_catalog\_database\_name](#output\_glue\_catalog\_database\_name) | Name of the Glue catalog database |
| [glue\_table\_names](#output\_glue\_table\_names) | Names of the Glue tables under the database |
| [query\_results\_bucket\_name](#output\_query\_results\_bucket\_name) | S3 bucket name where Athena query results are stored |