API Gateway is a solution for creating secure APIs in your cloud environment at any scale.
Create APIs that act as a front door for applications to access data, business logic, or functionality from back-end services.
API Gateway throttles api endpoints at 10,000 requests per second (can be increase via service request through AWS support).
Stages allow you to have multiple published versions of your API eg. prod, staging, QA.
Each Stage has an Invoke URL which is the endpoint you use to interact with your API.
You can use a custom domain for your Invoke URL eg. api.exampro.co
You need to publish your API via Deploy API. You choose which Stage you want to publish your API.
Resources are your URLs eg. /projects
Resources can have child resources eg. /projects/-id-/edit
You defined multiple Methods on your Resources eg GET, POST, DELETE.
CORS issues are common with API Gateway, CORS can be enabled on all or individual endpoints.
Caching improves latency and reduces the amount of calls made to your endpoint.
Same Origin Policies help to prevent XSS attacks.
Same Origin Policies ignore tools like postman or curl.
CORS is always enforced by the client.
You can require Authorization to your API via AWS Cognito or a custom Lambda.
Kinesis - Data Streams
Kinesis - Firehose Delivery Stream
Kinesis - Video Streams
Kinesis - Data Analytics
Amazon Kinesis is the AWS solution for collecting, processing, and analyzing streaming data in the cloud. When you need “real-time” think Kinesis.
Kinesis Data Streams Per per running shard, data can persist within the stream, data is ordered and every consumer keeps its own position. Consumers have to be manually added (coded), Data persists for 24 hours (default) to 168 hours.
Kinesis Firehose - Pay for only the data ingested, data immediately disappears once processed.
Consumer of choice is from a predefined set of services: S3, Redshift, Elasticsearch or Splunk.
Kinesis Data Analytics - allows you to perform queries in real-time. Needs a Kinesis Data Streams/Firehose as the input and output.
Kinesis Video Analytics securely ingests and stores video and audio encoded data to consumers such as SageMaker, Rekognition or other services to apply Machine learning and video processing.
KPL (Kinesis Producer Library) is a Java library to write data to a stream.
You can write data to stream using AWS SDK, but KPL is more efficient.