Services Flashcards
What are Step Functions?
Step Functions allow you to visualize and test your serverless applications. Step Functions provide a graphical console to arrange and visualize the components of your application as a series of steps. This makes it simple to build and run multistep applications. Step Functions automatically triggers and tracks each step, and retries when there are errors, so you application executes in order and as expected. Step Functions logs the state of each step, so when things do go wrong, you can diagnose and debug problems quickly.
What is X-Ray?
X-Ray is a service that collects data about requests that your application serves, and provides tools you can use to view, filter and gain insights into that data to identify issues and opportunities for optimization. For any traced request to your application, you can see detailed information not only about the request and response, but also about calls that your application makes to downstream AWS resources, microservices, databases and HTTP web APIs.
How does the X-Ray architecture work?
You have your application, and you have the X-Ray SDK installed. The SDK then sends bits of information to the X-Ray daemon (can be installed on Linux, Windows, Mac OS X), It’s listening on UDP and takes the JSON it gets from the SDK and sends it to the X-Ray API. The API stores all the data and creates the visualization that you can see in the X-Ray console.
What does the X-Ray SDK provide?
The X-Ray SDK provides:
Interceptors to add to your code to trace incoming HTTP requests.
Client handlers to instrument AWS SDK clients that your application uses to call other AWS services.
An HTTP client to use to instrument calls to other internal and external HTTP web services.
What services does X-Ray integrate with?
X-Ray integrates with Elastic Load Balancing, Lambda, API Gateway, EC2 and Elastic Beanstalk.
What languages are supported by X-Ray?
Java, Go, Node.js, Python, Ruby, .Net
What is streaming data?
Streaming data is data that is generate continously by thousands of data sources, which typically send in the data records simultaneously, and in small sizes (order of kilobytes).
What are some examples of streaming data?
Purchases from online stores. Stock prices. Game data (as the gamer plays). Social network data. Geospatial data (Uber). iOT sensor data.
What is Kinesis?
Kinesis is a platform on AWS to send your streaming data to. Kinesis makes it easy to load and analyze streaming data, and also providing the ability for you to build your own custom applications for you business needs.
What are the core Kinesis services?
Kinesis Streams, Kinesis Firehose and Kinesis Analytics.
What is Kinesis Streams?
Imagine you have several data producers (like EC2 instances, cell phones, laptops, etc.) that are sending data to a Kinesis Stream. Kinesis Streams store this data, by default for 24 hours, but also up to 7 days.
The data is stored in shards. The data is then sent to a fleet of EC2 instances (consumers) which take your data and turn it into something useful (perform calculations, etc.). Once they’ve done their useful thing, they can send the data to be stored in DynamoDB, S3, EMR or Redshift.
What are shards?
Kinesis Streams consist of shards. Shards basically has two purposes: 1) a certain amount of capacity/throughput and 2) an ordered list of messages.
What is the data capacity of your Kinesis Stream?
The data capacity of your stream is a function of the number of shards that you specify for the stream. The total capacity of the stream is the sum of the capacities of its shards.
What is Kinesis Firehose?
Just as with Kinesis Streams, you have producers sending data to your Kinesis Firehose. But unlike Streams, you don’t have shards (this is automated for you). You also don’t have to worry about consumers going in and analyzing your data (you can analyze the data using Lambda in real time). Once the data has been analyzed you can send it directly to S3 (analyzing is optional). There’s not data retention window, when you send data to Kinesis Firehose, it’s either analyzed using Lambda, or sent directly to S3, Redshift, Elasticsearch Cluster.
What is Kinesis Analytics?
Kinesis Analytics allows you to run SQL queries on the data as it exists in your Stream or Firehose and then you can use that SQL query to store that data in S3, Redshift or Elasticsearch cluster. So it’s a way of analyzing data inside Kinesis using SQl type querying language.