Lambda: CloudFront, Performance Flashcards

1
Q

Как можно выполнять бизнес логику, препроцессинг запросов до попадания на сервер? Какие 2 варианта?

A

Есть возможность реализовать код в рамках Lambda функции.
И прикрепить его к Edge Location’у (к CloudFront Distribution’у).
- CloudFront Function
- Lambda@Edge

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

Есть клиент, CloudFront Distribution и …
Запрос при этом делится на …

A

Origin
Viewer request, Origin request

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

Сравни CloudFront Functions и Lambda@Edge по:
- Доступные языки программирования
- Какую часть запроса можно менять

A

CloudFront Functions
- Легковесные функции на plain Javascript
- Нативная фича CloudFront’а (управляем всем кодом в CloudFront)
- Viewer request, Viewer response (Клиент - EdgeLocation)

Lambda@Edge
- Функции на NodeJS или Python, SDK и библиотеки
- Viewer request, Viewer response, Origin request, Origin response

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

Сравни CloudFront Functions и Lambda@Edge по:
- performance, время, одновременные запуски

A

CloudFront Functions
- Доли миллисекунд для запуска
- Миллионы запросов в секунду (масштабирование)
- Максимальное время выполнения < 1 ms

Lambda@Edge
- Тысячи запросов в секунду (масштабирование)
- Максимальное время выполнения 5-10 sec

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

Сравни CloudFront Functions и Lambda@Edge по:
- Доступ к телу запроса
- Доступ к EFS

A

CloudFront Functions
- Нет доступа к телу запроса
- Нет доступа к EFS

Lambda@Edge
- Есть доступ к телу запроса
- Есть доступ к EFS

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

Что такое CDN?

A

CDN (content delivery network) - сеть сообщающихся серверов, которая ускоряет загрузку тяжеловесного веб-сайта.

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

Ключевые слова для CloudFront Functions

A

hight performance, high scale,
only user request / user response,
fast execution, primitive processing,
plain JS

Примитивная работа с Cache Key, HTTP Headers, URL, JWT токеном.
Но супер-быстро, супер-производительно, супер-масштабируемо.

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

Ключевые слова для Lambda@Edge

A

Более основательная, полноценная работа с использованием внешних библиотек, доступом к AWS сервисам, EFS.
Но менее производительно, дольше выполняется.

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

Основные UseCases для CloudFront Functions

A
  • Создание CDN для снижение latency
  • Оптимизация ключа кэша (Edge Location Cache Key)
  • Изменения HTTP Header’ов (добавить, убрать в запрос, в ответ)
  • Изменения URL (перенаправление)
  • Проверка authorization прав (валидация JWT токена)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какие возможности есть у Lambda@Edge, которых НЕТ у CloudFront Functions?

A
  • Можно настраивать CPU, Memory
  • Можно подключить SDK и 3-rd party библиотеки
  • Можно взаимодействовать с другими AWS сервисами по сети
  • Есть доступ к телу запроса и EFS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какие минусы есть у Lambda@Edge, которых НЕТ у CloudFront Functions?

A
  • Дольше время выполнения (5-10 секунд, а НЕ доля миллисекунды)
  • Менее производительно, тысячи запросов в секунду
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

В чём суть идеи Lambda Execution Context?

A

Execution Context - это временный runtime environment,
в котором можно инициализировать зависимости для Лямбда функции,
которые она будет повторно использовать при последующих вызовах.

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

Что можно сделать в Execution Context? Например?

A
  • Создать объект соединения с БД
  • Создать HTTP клиент, SDK клиент
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как хранить в контексте тяжёлый файл? Каков лимит на его размер?

A

/tmp папка - это часть execution context’а
10 ГБ максимум
multiple invocation = reuse

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

/tmp
Временное или постоянное хранилище? Как зашифровать файл?

A

ephemeral временный (если нужен постоянный - S3, EFS)
KMS Data Keys

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