Назад | Перейти на главную страницу

Каков ваш опыт работы с производительностью AWS NAT Gateway?

В декабре 2015 года Amazon запустил свой сервис VPC NAT Gateway. который по сути является управляемой альтернативой созданию собственного (и выглядит очень хорошо по сравнению с инстансами NAT).

Я как раз собирался развернуть свои собственные экземпляры NAT и решил использовать шлюз NAT вместо этого, чтобы избавить меня от хлопот по настройке и обслуживанию моей собственной службы NAT.

Сервис работает, как рекламируется, и я был счастлив, пока не заметил странное поведение.

Я использую экземпляры EC2 за шлюзом NAT для тестирования группы веб-сайтов, выполняя до 4 параллельных тестов Firefox + selenium на каждый экземпляр EC2. Я заметил, что тесты, которые раньше выполнялись нормально в другом месте, терпели неудачу в этой среде.

Итак, я создал 2 экземпляра t2.large, один с общедоступным эластичным IP-адресом и прямым доступом в Интернет; другой - с частным IP, за шлюзом NAT.

Вот результаты бега тест apache против некоторых сайтов:

EIP

ab -kn 1000 -c 20 https://www.pinterest.com/
(...)
Time taken for tests:   17.331 seconds

ab -kn 1000 -c 20 http://speedtest.ftp.otenet.gr/files/test100k.db
(...)
Time taken for tests:   9.610 seconds

ab -kn 1000 -c 20 http://www.bbc.com/
(...)
Time taken for tests:   5.890 seconds

NAT

ab -kn 1000 -c 20 https://www.pinterest.com/
(...)
Time taken for tests:   25.980 seconds

ab -kn 1000 -c 20 http://speedtest.ftp.otenet.gr/files/test100k.db
(...)
Time taken for tests:   14.920 seconds

ab -kn 1000 -c 20 http://www.bbc.com/
(...)
Time taken for tests:   6.552 seconds

Сервер за шлюзом NAT во многих случаях уступает по производительности сервису с прямым подключением на значительный процент.

AWS заявляет, что сервис «поддерживает пакеты до 10 Гбит / с», что больше, чем то, что могут сделать отдельные экземпляры, которые я использовал.

Я заметил, что если я отключу keep-alive (т.е. -k) производительность становится похожей:

ab -n 1000 -c 20 https://www.pinterest.com/
EIP:   18.316 seconds
NAT:   17.763 seconds

Что это за колдовство? В чем дело? Актуальны ли мои тесты?

Какой у вас был опыт?

Моя настройка шлюза Nat свежая и ничего особенного. Вот мой результат для команды

siege -c 100 https://www.pinterest.com -v

со шлюзом Nat:

Transactions:              15012 hits
Availability:             100.00 %
Elapsed time:             140.40 secs
Data transferred:         335.43 MB
Response time:              0.43 secs
Transaction rate:         106.92 trans/sec
Throughput:             2.39 MB/sec
Concurrency:               46.39
Successful transactions:       15012
Failed transactions:               0
Longest transaction:            5.90
Shortest transaction:           0.29

без Nat Gateway

Transactions:              11519 hits
Availability:             100.00 %
Elapsed time:             107.02 secs
Data transferred:         257.20 MB
Response time:              0.43 secs
Transaction rate:         107.63 trans/sec
Throughput:             2.40 MB/sec
Concurrency:               46.33
Successful transactions:       11519
Failed transactions:               0
Longest transaction:            4.02
Shortest transaction:           0.28

Почти тоже самое.