Devops Flashcards
¿Qué especificas en un parámetro de CF?
Default value, allowed values, allowed pattern, min, maxValue y maxLength.
¿Qué sucede si se crea un recurso en CF sin especificar su nombre?
CF genera un nombre único.
¿Cómo se inserta el valor de un parámetro en un template CF?
Utilizando un objeto {“Ref” : “nombreParametro”}
¿Cómo recuperas un valor para output en cF?
Habitualmente con un {“Ref” : “…”} o {“Fn:GetAtt” : “..:”}
¿Qué condiciones soporta CF?
Fn::And, Fn::Equals, Fn::If, Fn::Not, Fn::Or
¿Qué funciones soporta CF?
Fn::Base64 Fn::FindInMap Fn::GetAtt Fn::GetAZs Fn::ImportValue Fn::Join Fn::Select Fn::Sub Ref
¿Cuál es la sintaxis de Fn::Base64?
{ “Fn::Base64” : “Hello world.” }
¿Cuál es la sintaxis de Fn::FindInMap?
Mappings > RegionMap > {“us-east-1” : { “32bit” : “ami-12345678”, “64bit” : “ami-22224444”}}
{ “Fn::FindInMap” : [“RegionMap”, { “Ref” : “AWS:Region” }, “32bit” ]}
¿Cuál es la sintaxis de Fn::Select?
“az” : { “Fn::Select” : [“0”, {“Fn:GetAZs” : “”}]}
¿Cuál es la sintaxis de Fn:Join?
{“Fn::Join” : [”#”, [“a”, “b”, “c”]] –> “a#b#c”
¿Cómo se especifican condiciones en CF?
“isProd” : { “Fn:Equals” : [{ “Ref” : “ParamEnvType”}, “prod”]}
"NewVolume" : { "Type" : "AWS::EC2::Volume", "Condition" : "isProd", "Properties" : {...} }
¿En qué casos DependsOn es obligatorio?
Cuando la dependencia no es implícita. Por ejemplo, unas EC2 puede que tengan que esperar a que una RDS se haya creado.
¿Cuál es la sintaxis de DependsOn?
“Instancia” : { “Type” : “:..”, “DependsOn” : [“RDS1”, “RDS2”]}
¿Para qué sirve un StackPolicy en CF?
Para controlar cómo se ven afectados los recursos en caso de actualización o borrado.
¿Cómo se aplica una StackPolicy en CF?
Si existe, por defecto, se añade un “Update:* : Deny”. Por ello la actualización se vuelve explícita.
¿Es posible retirar una StackPolicy de un CF?
No, una vez añadida solo puede modificarse.
¿Qué componentes forman una StackPolicy de CF?
Effect, Resource/NotResource, Principal, Action, Condition
¿Qué valor puede tomar Principal en una StackPolicy?
El único aceptable es *
¿Qué valor puede tomar Action en una StackPolicy de CF?
Update:Modify (mantain physical id)
Update:Replace
Update:Delete
Update:* (all actions)
¿Qué tipo de cambios genera una modificación de un recurso mediante CF?
Replacement (por ejemplo, mover una EC2 de AZ o cambiar imagen), Some Interruptions (cambir el tipo de una EC2), No Interruption (cambiar el throughput de Dynamodb)
¿Qué límites tiene un Stack de CF?
460KB, 200 resources, 100 mappings, 60 params, 60 output.
¿Cómo pueden superarse los límites de un Stack?
Utilizando templates anidados.
¿Cómo se invoca un template anidado?
Utilizando como resource type AWS::CloudFormation::Stack
¿Cómo es posible pasar valores desde un nested template a otro nested template en CF?
Utilizando la sección Output del primero en el parent para invocar los parámetros del segundo.
¿Qué es un CreationPolicy?
Una versión simple de WaitConditions para EC2 y ASG
¿Cómo se añade una CreationPolicy a un ASG?
“CreationPolicy” : { “ResourceSignal” : { “count” : 2, “Timeout” : “PT15M”}}
¿Cómo se lanza un signal desde EC2 a un CreationPolicy de CF?
Con el cfn-signal helper
¿Qué es un waitHandle en CF?
Un recurso que genera una URL a la que se puede invocar para alterar fijar el estado como SUCCESS o FAILURE junto a info adicional que puede usarse con GetAtt[waitCond, Data]
¿Dónde se usa un waitHandle?
En una AWS::Cloudformation::WaitCondition
¿Qué properties tiene una WaitCondition?
handle, timeout, y count. También se debe especificar un DependsOn relacionado con el recurso que generará la señal.
¿A qué nivel se especifica el autohealing en OpsWorks?
A nivel de Layer (no stack)
¿A cuántos stacks puede asociarse una instancia RDS concreta?
Solo a uno.
Al clonar un stack de OpsWorks ¿las instancias RDS se copian también?
Nope
¿Qué es una instancia 24/7 en OpsWorks?
La que defines para arrancarse y pararse manualmente.
¿Qué es una instancia timebased en OpsWorks?
La que se preconfigura para ser arrancada a ciertas horas
¿Qué es un loadbased instance en OpsWorks?
La que se lanza cuando la carga de trabajo lo requiere (por cpu, memoria, carga o cloudwatch)
¿Qué es el create-deployment command en OpsWorks? ```aws opsworks create-deployment …
Crea despliegues y permite ejecutar comandos a nivel de stack. El nombre es inadecuado.
¿Qué comandos admite create-deployment?
install_depedencies, update_dependencies,
update_custom_cookbooks, execute_recipies,
setup, configure,
deploy, rollback, undeploy,
start, stop, restart
¿Qué es un CF custom resource?
Custom::ResourceNameHere para invocar una lambda o un sns.
¿Cuándo se invoca un CF custom resource?
Cuando se crea, actualiza o borra un stack
¿Cuáles son los eventos de OpsWorks?
Setup, configure, deploy, undeploy, shutdown
¿Qué es opsworks local?
Un agente instalable onpremise
¿Qué es un resource en una recipe chef?
Un “estado deseado”. Por ejemplo, registry_key “set background color” do … end indicaría que queremos modificar el registro.
¿OpsWorks hace autopatching?
No automáticamente pero es fácil automatizarlos.
¿Qué sucede cuando ocurre un evento Chef?
Se ejecuta un conjunto de recipes asociadas
¿Cuándo se lanza SETUP en Chef?
Lanzado justo después de terminar el inicio de la instancia
¿Cuándo se lanza CONFIGURE en Chef?
Lanzado cuando entra o sale de online o cuando cambia su comunicación (ip, eip, elb, eni…)
¿Cuándo se lanza DEPLOY en Chef?
Tras ejecutarse el comando deploy en una instancia
¿Cuándo se lanza UNDEPLOY en Chef?
Cleanup de un repliegue
¿Cuándo se lanza SHUTDOWN en Chef?
Cuando se apaga la instancia
¿Qué instancias reciben el evento de configuración de Chef?
Típicamente se lanza en todas las instancias como reacción al setup de una de ellas para permitir la conexión entre ellas
¿Qué parámetros se indican en OpsWorks para crear una aplicación?
Name, Document root, Data Source (RDS/None), Source (git/http/s3), environment vars, domain names, ssl settings
¿Cuántas copias de la aplicación se mantienen en OpsWorks?
5, incluyendo la actual
¿Qué es un databag?
Metadata en json asociada a cada elemento de chef (stack, layer, app, instance) y que en OpsWorks se puede generar automáticamente.
¿Dónde se usa un databag?
En las recipes se pueden usar para recuperar datos de otros elementos.
¿Cuál es el periodo máximo de retención de cloudwatch?
14 días
¿Qué limitación de tiempo tiene el periodo asignado a una alarma en CW?
Siempre debe ser superior al de la frecuencia de la métrica
¿Puede una alarma ejecutar una acción cuando está en un determinado estado?
La ejecución se asocia al cambio de estado.
¿Puede una alarma desatar una acción en una región distinta a la que se genera?
Nope
¿Qué significa insufficient_data?
Un volumen no attacheado no emite métricas, así que pasa a este estado. Igual que una EC2 apagada.
¿Qué estados tiene una alamarma?
OK, ALARM, INSUFFICIENT_DATA
¿Qué comandos manipulan alarmas?
mon-put-metric-alarm, mon-enable-alarm-mon-disable-alarm, mon-describe-alarms
¿Es oblitorio tener métricas para poder crear una alarma?
No.
¿Cómo se implementa cloudwatch logs sin usar el api?
Instalando agents.
¿Permite cloudwatch logs long term storage?
Sí, con expiration date
¿Que es en cloudwatch log un event?
Un registro con timestamp + message
¿Que es en cloudwatch log un stream?
Una sucesión de eventos de la misma fuente
¿Que es en cloudwatch log un log group?
Un grupo de streams que tienen la misma configuración
¿Es posible aplicar un filtro de cw logs sobre los datos ya almacenados?
no
¿Cuántos eventos devuelve un filtro?
Un máximo de 50
¿Pueden generarse métricas y alarmas a partir de filtros en cloudwatch logs?
sí (pero a través de filtros?
¿Cómo puede procesarse en tiempo real Cloudwatch logs?
Con kinesis streams, lambda o firehose.
¿Qué elementos contiene un registro de Cloud Trail?
Identity de quien invocó, timestamp, ip, request y response
¿Dónde se almacenan los logs de Cloudtrail?
En s3, utilizando server side encryption.
¿Qué latencia tiene Cloud Trail?
Cada cinco minutos se publican nuevos logs. El tiempo máximo entre invocación y publicación es de 15 minutos.
¿Qué es CloudWatch Events?
Similiar a Cloudtrail pero mucho más rápido: tiempo real.
¿Qué destinos soporta un CloudWatch Events?
Kinesis, lambda, SNS, builtin
¿Cuándo se crea un CloudWatch Event?
Un cambio de estado en un recurso, una llamada a un API soportada, o una invocación custom
¿Qué permite IAM Delegation?
Permitir acceso a recursos a usuarios de otras cuentas
¿Qué es IAM Federation?
permitir acceso a recursos utilizando autentificación externa, a través de un rol
¿Qué papel juega Cognito en la federación de usuarios?
Gestiona de una forma simple el proceso de integración
¿Qué es una trust policy?
Un documento que se asociada a un rol que lista las los usuarios y cuentas que pueden asumirlo.
¿Qué es una access policy?
Una lista de permisos para invocar APIs.
¿Qué es una sesión en IAM?
Credenciales temporales generadas por el STS
¿Qué es service delegation?
El equivalente a AssumeRole para EC2 o Lambda
¿Qué rango de tiempo ofrecen unas credenciales temporales si usas Corporate Identity Federation?
Entre 15min y 1h
¿Qué objetivo tiene GetFederationToken?
Obtener credenciales federadas para una aplicación en lugar de para un usuario
¿Soporta GetFederationToken MFA?
No
¿Por qué es preferible AssumeRoleWithSAML para dar credenciales temporales a un usuario?
De esta forma no es necesario que el proxy que autentifica contra AD tenga permisos IAM: es el propio usuario el que envía el token SAML a AWS endpoint
¿Qué es un identity pool?
Una colección de identidades gestionadas por Cognito. Permite unificar distintos providers en una sola entidad
¿Qué son los Autoscaling lifecycle Hooks?
Permiten controlar el bootstrapping y termination de una instancia en un ASG
¿Qué timeout por defecto tiene un Autoscaling lifecycle Hook?
Una hora
¿Cómo puede una instancia informar de que ha terminado su acción de bootstraping al Autoscaling lifecycle Hook?
Mediante el comando complete-lifecycle-action
¿Puede una instancia pedir más tiempo que el predefinido para completar su Autoscaling lifecycle Hook?
Sí, mediatne record-lifecycle-action-heartbeat, hasta 48 horas.
¿Cuándo empieza a contar el periodo de Cooldown en un ASG?
Cuando la instancia pasa a InService. No se producirá ningún cambio en desired desde que se lanza la instancia hasta que finaliza el cooldown
¿Es posible eliminar una instancia que acaba dea rrancar mientras se procesa su Autoscaling lifecycle Hook?
Sí, retornando ABANDON como resultado del mismo
¿Es posible impedir que una instancia termine como consecuencia de una reducción en el ASG?
Sí, mediante los Autoscaling lifecycle Hooks (no aplicable a Spot)
¿Qué Autoscaling lifecycle Hooks existen?
EC2_INSTANCE_LAUNCHING y EC2_INSTANCE_TERMINATING
¿Qué performance ofrece una partición en DynamoDB?
3000RCU + 1000WCU
¿Qué tamaño máximo tiene una partición de DynamoDB?
10GB
¿Qué rendimiento tiene un volumen recuperado desde una snapshot?
Inicialmente no muy alto debido a que la recuperación de los bloques desde la snapshot es lazy. Esto puede ser un problema al restaurar una bd en EC2.
¿Qué es y cómo se gestiona una orphan snapshot?
Aquella que se ha convertido innecesaria al existir una más reciente. Lambda es ideal para eliminarlas automáticamente filtrando por tags de fecha.
¿Qué implica enter-standby de una instancia en un ASG?
Desregistra la instancia del ELB y por defecto, reduce el desired en un 1 (evita span de una nueva).
¿Qué API se usa para modificar la LC de un ASG?
update-auto-scaling-group
¿Qué API se usa para para añadir una métrica CW?
put-metric-data
¿Qué API se usa para crear una alerta?
put-metric-alarm
¿Qué API se usa para desactivar una alarma?
disable-alarm-actions
¿Qué API se usa para testear alarmas?
set-alarm-state
¿Cuánto tiempo tarda en modificarse el tiempo de retención de mensajes en SQS?
Hasta 15 minutos
¿Cómo indicas que deseas leer un mensaje de SQS usando long polling?
Fijando a 10 segundos el parámetro WaitTimeSeconds de ReceiveMessage o a 20 segundos el parámetro ReceiveMessageWaitTimeSeconds de SetQeueAttributes
¿Qué API se usa para utilizar un usuario de otra cuenta?
assume-role
¿Qué API se usa para utilizar MFA?
get-session-token
¿Dónde puede codedeploy desplegar?
En EC2 y en on-premise