Collection Flashcards

1
Q

O que pode ser Source do Kinesis Data Streams? O que pode ser Target?

A

8 Sources: SDK, KPL, Spark, Kafka, Kinesis Agent, AWS IoT, CloudWatch, Kinesis Data Analytics
6 Targets: SDK, KCL, Spark, Kinesis Connector. Kinesis Firehose, Kinesis Data Analytics, AWS Lambda

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são os modos em que o Kinesis Data Stream Opera e suas particularidades?

A

Provisioned: Define o numero de shards e a capacidade default por Shard é de 1MB/s ou 1000 registris de input
On-Demand: Ele faz automaticamente e o default é 4Mb/s ou 4000 registros, paga pelo stream por hora e por GB. Ajusta a capacidade baseado na média do consumo dos ultimos 30 dias.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais são as formas de segurança disponiveis no Kinesis Data Stream e qual é mais dificil e porque?

A

São 4: IAM policies, HTTPS, KMS e Client Side encryption, mas é bem mais difícil de implementar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual a diferença básica entre a call de API PutRecord e PutRecords?

A

PutRecord pode fazer apenas 1 PUT, enquanto PutRecords usa BATCHING e consegue fazer vários de uma vez com apenas 1 call e isso aumenta o throughput

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quando é recomendado usar o Kinesis Producer SDK?

A

Usado para Mobile e IOs devices, e é recomendado quanto tivermos:
1) Não importa Alta latência
2) Baixo Throughput
3) API simples
4) Só usando para conectar a uma função Lambda

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quando e onde ocorre o erro “ProvisionedThroughputExceeded”? Como lidar com esse problema?

A

No Kinesis Data Streams quando enviamos mais MB ou mais Registros para o Shard do que ele aguente. Se isso ocorrer, você terá uma HOT PARTITION
Para lidar com o Problema, devemos:
1) colocar Retries in Backoff, se der o erro ele tenta denovo em alguns segundos e de novo e de novo e de novo etc.
2) Aumentar o numero de Shards
3) Escolher bem o nome das partições para o stream ficar bem distribuido

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Desenvolvendo Aplicações Produtoras para o Kinesis Data Stream, tanto o SDK quanto o KPL podem criar aplicações Sincronas e Asincronas. V ou F?

A

FALSO. Apenas o KPL pode criar Asynchronous, que tem melhor performance do que o Sync, mas é Async

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tanto com o SDK quanto com KPL você consegue implementar compressão no stream. V ou F?

A

FALSO. Nenhum dos 2 faz isso. Se quiser, o usuário deve implementar a compressão por conta própria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

No KPL, BATCHING tem 2 features habilitados por default.. Quais seus nomes e o que fazem?

A

Collection: WRITE para multiplos SHARDs simultaneamente usando a mesma PutRecords API call
Agregation: Ele consegue colocar multiples registros(mais de 1000) em 1 só registro, e aumentar o tamanho do Payload (mais de 1 MB), mas isso aumenta a latência.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Streams produzidos com o KPL podem ser decodificados pelo SDK. V ou F?

A

FALSO. Só pode ser decodificado usando KCL ou uma Special Helper Library

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quanto a BATCHING do KPL, quanto tempo por padrão ele espera para fazer o BATCH? Qual parametro mudamos para alterar caso necessário?

A

Espera 100ms, podemos mudar isso no RecordMaxBufferedTime

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que situação o KPL não é recomendado?

A

Se uma aplicação não puder tolerar nenhum atraso, o SDK provavelmente é o melhor indicado. Ex: Uma Aplicação de IoT, se o stream ficar Offline, o KPL vai acumular pacotes para enviar. Mas nesse caso só faz sentido ter o dado mais recente, então é melhor usar o SDK para mandar o dado do momento quando ele ficar online novamente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Kinesis Agent podem ser usados para pre-processar o dado. V ou F?

A

VERDADEIRO. Converter CSV to JSON, log to JSON… Lida muito bem com retry upon failures, file rotation e checkpoint

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sobre Kinesis Consume SDK, qual a call de API é realizada para pegar os registros no Shard? Quais suas caracteristicas?

A

GetRecords - conseguimos pegar até 10MB ou 10000 registros com 1 call, mas como isso excede o limite de SHARD, teremos que esperar 5 segundos para receber o máximo. E é possivel fazer 5 API Calls por SHARD p/ seg. 200ms de latência por call

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Se uma aplicação cair, o KCL consegue saber onde parou e retomar. V ou F?

A

VERDADEIRO. Ele tem checkpointing e pode continuar de onde parou

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Se você receber o erro “ExpiredIteratorException”, o que isso significa?

A

Signficia que seu KCL está mandando dados demais para o DynamoDB que está com uma quantidade subdimensionada de WCU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Como e para que é usada a Kinesis Connector Library?

A

É instalado em uma instância EC2 e seu único propósito é receber stream diretamente do KD Stream e enviar para:
1) Redshift
2) S3
3) ElastichSearch
4) DynamoDB

Melhor usar Lambda ou Firehose para qualquer um desses casos. K Connector Library está em phase out

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Podemos usar o Lambda para decodificar dados do KPL. V ou F?

A

VERDADEIRO. Lambda tem um Library que permite desagregar o dado do KPL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

O que é o Kinesis Enhanced Fanout e como ele funciona? Qual o limite de usuários por SHARD?

A

É uma feature do KD Streams que passa a oferecer 2MB/s por usuário por SHARD. Os dados são PUSHED (usando HTTPS/2) e não PULLED do Shard como no método normal. A latência também é bem menor, 70ms por usuário. 5 usuários por SHARD, mas esse limite pode ser retirado contectando a AWS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Durante um processo de Shard Splitting, é possivel receber mensagens fora de ordem tanto com implementação via SDK quanto KCL. V ou F?

A

FALSO. o KCL já tem dentro dele um sistema para evitar esse tipo de ocorrencia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Caso necessário, conseguimos ativar auto-scaling nativo dentro do KD Streams. V ou F?

A

FALSO. KD Stream não tem auto-scaling nativo, mas é possível implementar usando Lambda e call de API UpdateShardCount

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Resharding (Merge ou Split) de múltiplos shards pode ser realizado em paralelo em até 1000 shards por vez. V ou F?

A

FALSO. O Resharding é feito em sequencia. Ex: Para dobrar o numero de Shards de 1000 para 2000, são necessário 30K segundos (8.3hs).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Em uma operação de Shard Splitting no KD Stream, quanto tempo aproximadamente leva para passar de 1000 Shards para 2000 shards?

A

30k Segundos (8.3hs)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Uma aplicação escrita com KPL envia um registro para o KD Streams, mas por questões de rede o ACK nunca chega a aplicação Produtora. Nesse caso, a aplicação produtora envia uma segunda vez o arquivo e recebe o ACK. Mas dentro do KD Streams, existem 2 registros com o mesmo dado, mas com chaves diferentes de registro. Como evitar isso?

A

Criar no código um mecanismo para encapsular no dado um ID único que permita a deduplicação

25
Q

Em que caso pode haver duplicação na leitura de registros no lado do Consumer? Como lidar com isso?

A

Quando a aplicação de Consumo performa um RETRY, ela pode ler o dado duplicado.
1) A worker terminate unexpectedly
2) Worker instances are added or removed
3) Shards are merged or split
4) The Application is deployed

Para lidar com isso, é necessário lidar do lado da App. Ou faz aplicação idempotente ou que ela seja capaz de identificar dados repetidos como um ID único em cada registro por exemplo

26
Q

Como o KD Firehose consegue copiar dados para dentro do Redshift?

A

Ele coloca os dados primeiro no S3 e depois envia um comando de COPY para o Redshift

27
Q

Quais são os serviços AWS para onde o KD Firehose consegue enviar os dados? (Qual aquele 1 serviço Third Party muito importante também)?

A

Redshift, S3 e Elasticsearch. E o Third Party é o SPLUNK

28
Q

É possivel enviar dados do KD Firehose para um destino customizado usando… o que?

A

Uma API call em um HTTP Endpoint

29
Q

Quais os principais serviços AWS que são fonte para o KD Firehose?

A

KD Streams, CloudWatch e AWS IoT

30
Q

O que acontece com registros que por ventura venha a falhar o processamento ou transformação no KD Firehose?

A

São enviados para um bucket no S3

31
Q

KD Firehose é NEAR-REAL TIME. Qual a latência MINIMA para Batchs que não estejam FULL?

A

60s

32
Q

KD Firehose pode escalar on-demand via API call. V ou F?

A

FALSO. Ele escala automaticamente.

33
Q

KD Firehose pode fazer conversão de formatos de arquivo de JSON para Parquet/ORC. V ou F?

A

VERDADEIRO, mas apenas para S3. Caso queira fazer transformação de um CSV para JSON, terá que usar Lambda.

34
Q

Quais compressões KD Firehose suporte para S3? E para Redshift?

A

GZIP, ZIP e SNAPPY no S3
Apenas GZIP no Redshift

35
Q

Dados vindos do KD Firehose podem ser lidos por Spark ou KCL. V ou F?

A

FALSO. KCL e Spark só podem ler dados do KD Streams

36
Q

Quais são os limites de FLUSH de um BATCH para KD Firehose?

A

Podemos configurar por Buffer Size ou Buffer Time Limit. O Limite mínimo do Buffer Time é de 60s e do Buffer Size, “Poucos mega”

37
Q

Por quanto tempo um arquivo pode ficar no KD Streams? E no KD Firehose?

A

de 1 a 365 dias. Firehose não possui storage.

38
Q

Para quais serviços CloudWatch consegue mandar seu stream de logs? Qual Library usamos para isso?

A

KD Streams, KD Firehose e Lambda. AWS CLI é a usada para ativar essa feature. (Para enviar para o Elastica Search, apenas via Lambda ou Firehose, sembrando que KD Firehose é NEAR-REAL TIME)

39
Q

Qual o limite de tempo que uma mensagem pode ficar retida aguarando ser retirada no SQS?

A

4 dias Default, maximo 14 dias

40
Q

Qual o tamanho máximo das mensagems que pode ser alimentadas no SQS?

A

256kb por mensagem

41
Q

Qual a principal diferença entre SQS e KD Firehose ou KD Streams?

A

Uma vez que uma mensagem do SQS é processada, ela é deletada. Mas tem a menor latência de todas (10ms)

42
Q

Qual o tamanho máximo de um Objeto no KD Streams, KD Firehose e no SQS?

A

1MB, 128MB, 256kb

43
Q

O que é, e que serviços podem ser Source do DMS?

A

Bancos On-Premise, Azure SQL DB, Amazon RDS e S3

44
Q

O que é e para que serve o AWS SCT?

A

AWS Schema Conversion Tool é usado para converter um DB em um Engine diferente. De SQL para Oracle. Se forem Iguais os Engines, NÃO É NECESSÁRIO

45
Q

O que é o DX e para que ele serve?

A

Direct Connect - É uma conexão dedicada entre uma localização remota e a sua VPC. É necessário colocar um Virtual Private Gateway. Leva no mínimo 1 mês para implementar esse tipo de conexão

46
Q

Quais os tipos de conexão e qual o tamanho de Banda possivel do Direct Connect?

A

Dedicated Connection: 1 GBps, 10GBps, 100GBps; Hosted Connection: 50Mbps, 500Mbps to 10Gbps

47
Q

Qual o tempo mínimo de implementação de um Direct Connect?

A

1 Mês

48
Q

Caso o exame solicite Resiliencia no Direct Connect, o que devemos fazer? E se ele requisitar MÁXIMA resiliencia?

A

1) Criar 2 DX partindo de diferentes DCs on-prem passando cada um pelo seu AWS Direct Connect Endpoint até a VPC.
2) Criar 4 DX, 2 para cada DC, cada um dos 4 passando pela sua própria AWS Direct Connection Endpoint.

49
Q

Da Familia Snow, quais são os usandos para Data Migration e quais os usados para Edge Computing?

A

Snow mobile usado apenas para Data Migration.
Snow Edge e Snowcone, usados para DM e Edge Compute

50
Q

Via de regra, a partir de quanto tempo de migração, devemos considerar o Snowball Family?

A

Mais de 1 semana de migração

51
Q

O que é o AWS MSK?

A

AWS Managed Streaming Kafka

52
Q

Em que caso devemos usar MS Kafka e não AWS Kinesis?

A

Kafka pode receber até 10Mb de Payload e Kinesis só até 1Mb. Ele também é bem mais configuravel do que o Kinesis.

53
Q

O que é um Zookeper? O que é um Broker?

A

O Zookeeper é usado pela MSK Managed Streaming Kafka para gerenciar o fluxo de dados. Apenas 1 por AZ é necessário.
Broker é quem vai entregar o dado a aplicação final

54
Q

Quais cryptografias estão disponiveis para MSK?

A

TLS entre os Brokers e KMS at Rest no EBS do cluster

55
Q

IMPORTANTE : Quais os tipos de autenticação e autorização usados pelo MSK?

A

1) Authorize specific groups for access your Kafka clients.
2) Mutual TLS + Kafka ACLs
3) SASL/SCRAM + Kafka ACLs
4) IAM Access Control (AuthN + AuthZ)

IMPORTANTE: Kafka ACLs NÃO são gerenciados pelo IAM policies. São gerenciados de dentro do Cluster Kafka

56
Q

Para uso de segurança, Kafka ACLs podem ser gerenciados por IAM policies. V ou F?

A

FALSO. Kafka ACLs são gerenciados de dentro do cluster Kafka

57
Q

O faz o Prometheus junto do MSK?

A

Usado para monitorar. Se conecta e exporta as métricas de cluster, broker e topics

58
Q

Para que serve o MSK Connector?

A

Para colocar dados no S3, Redshift, Elastisearch entre outros.