Coder Social home page Coder Social logo

qloudx / terraform-aws-kinesis-stream-glue-job-architecture-pattern Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 141 KB

Terraform implementation of a commonly-used AWS architecture pattern of performing streaming ETL on a Kinesis data stream using a Glue job.

License: MIT License

HCL 100.00%
aws terraform architecture-pattern kinesis-stream glue-etl

terraform-aws-kinesis-stream-glue-job-architecture-pattern's Introduction

Terraform AWS Kinesis Stream Glue Job Architecture Pattern

Terraform implementation of a commonly-used AWS architecture pattern of performing streaming ETL on a Kinesis data stream using a Glue job.

The Kinesis data stream:

  • Expects its name to be provided as a Terraform variable.
  • Has 1 shard.
  • Has server-side encryption enabled with AWS-managed CMK.
  • Retains its data for 1 day.
  • Also creates 3 IAM policies:
    • A policy named kinesis-stream-YOUR-STREAM-NAME-admin that allows all operations on this stream: kinesis:*.
    • A policy named kinesis-stream-YOUR-STREAM-NAME-read-only that allows read operations on this stream:
      • kinesis:DescribeLimits
      • kinesis:DescribeStream
      • kinesis:GetRecords
      • kinesis:GetShardIterator
      • kinesis:SubscribeToShard
      • kinesis:ListShards
    • A policy named kinesis-stream-YOUR-STREAM-NAME-write-only that allows write operations on this stream:
      • kinesis:DescribeStream
      • kinesis:PutRecord
      • kinesis:PutRecords
  • Has all 7 enhanced (shard-level) metrics enabled:
    • IncomingBytes
    • OutgoingBytes
    • IncomingRecords
    • OutgoingRecords
    • IteratorAgeMilliseconds
    • ReadProvisionedThroughputExceeded
    • WriteProvisionedThroughputExceeded

The Glue job:

  • Takes its Python 3 ETL script from an S3 location that you provide as a Terraform variable.
  • Only has permissions to read from the Kinesis data stream (and the S3 bucket).
  • Continuously logs to a CloudWatch log group that retains logs for 14 days.
  • Has all CloudWatch metrics enabled.
  • Has a job timeout of 1 hour max.
  • Will only run 1 instance of this job at a time.
  • Uses Glue v2.0 with 2 G.1X workers.

terraform-aws-kinesis-stream-glue-job-architecture-pattern's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.