Диагностика медленного времени отклика для AWS балансировщиков нагрузки приложений - PullRequest
1 голос
/ 27 мая 2020

Я работаю над PO C для приложения, которое использует CloudFront, ALB и Fargate. Во время разработки приложения я заметил, что ALB иногда имеет медленное время отклика. Я наткнулся на следующую ветку на форуме AWS. Это от 8 лет go, но я подумал, что это может объяснить некоторые из наблюдаемых мной поведений:

https://forums.aws.amazon.com/thread.jspa?threadID=102879

Причина задержка связана с тем, что у вас есть настройка ELB для multi-az без каких-либо экземпляров приложений в других 2 зонах доступности. Без экземпляров в этих зонах доступности запросы будут иметь тенденцию к сбою, потому что ELb по-прежнему возвращает IP-адреса для этих зон доступности, даже если нет активных экземпляров приложений. Пожалуйста, отключите пока другие зоны доступности и продолжайте тесты.

У меня аналогичная установка. 2 зоны доступности и только одна задача Fargate в моей бэкэнд-службе Fargate API, на которую балансировщик нагрузки отправляет трафик c.

Вот что я запускаю dig против ALB DNSName (ALB DNSName и IP-адреса были изменены):

dig my-alb-123.us-east-1.elb.amazonaws.com

; <<>> DiG 9.11.3-1ubuntu1.12-Ubuntu <<>> my-alb-123.us-east-1.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52135
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;my-alb-123.us-east-1.elb.amazonaws.com. IN A

my-alb-123.us-east-1.elb.amazonaws.com. 60 IN A 51.4.143.123
my-alb-123.us-east-1.elb.amazonaws.com. 60 IN A 33.553.34.153

;; Query time: 3113 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue May 26
;; MSG SIZE  rcvd: 124

Запуская это снова, я получаю тот же результат, но с а Query time из 0msec. Пробежав эти десятки раз, я вижу, что большинство результатов возвращают 0msec, а некоторые - ~ 3000 мс c.

Должен ли я использовать одну зону доступности для промежуточной среды?

1 Ответ

1 голос
/ 27 мая 2020

Время запроса: 3113 мс c

Это слишком много. Я проверил свой ALB с 2 AZ, и время, которое я получаю, составляет около 60 мс c, также в us-east-1:

dig xxxxx.us-east-1.elb.amazonaws.com

; <<>> DiG 9.16.2 <<>> xxxxx.us-east-1.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56978
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xxxx.elb.amazonaws.com.    IN A

;; ANSWER SECTION:
xxxxx.us-east-1.elb.amazonaws.com.  60 IN A 52.0.195.xx
xxxxx.us-east-1.elb.amazonaws.com.  60 IN A 50.19.163.xx

;; Query time: 53 msec
;; SERVER: 10.1.1.1#53(10.1.1.1)
;; WHEN: Wed May 27 16:08:53 AWST 2020
;; MSG SIZE  rcvd: 123

Время, указанное в dig, связано с разрешением DNS ALB. И два показанных IP-адреса - это узлы ALB (по одному в каждой зоне доступности). Они не зависят от того, есть ли у вас инстансы Fargate или EC2.

Должен ли я использовать одну зону доступности для промежуточной среды?

Если ваша служба Fargate настроена только на одну зону доступности, любые запросы, которые будут приходить на узел ALB во второй зоне, все равно должны будут направляться в первую зону. Кажется, нет особой выгоды от наличия ALB в двух зонах доступности, но услуга Fargate ограничена только одной зоной доступности.

...