Как проверить, что приложение в EC2 использует конечную точку VPC для связи с Dynamodb?

У меня есть приложение Java, которое развернуто в EC2 и взаимодействует с Dynamodb. Я включил конечную точку VPC (конечную точку шлюза) для Dynamodb. Но я не заметил улучшения производительности с этим изменением. Теоретически я должен видеть меньшую задержку через конечную точку VPC по сравнению с публичным доступом. Также на основе tcpdump я вижу, что наше приложение все еще использует общедоступный IP-адрес Dynamodb для связи.

Здесь 52.119.232.38это общедоступный IP-адрес Dynamodb. Как я могу убедиться, что наше приложение в EC2 использует конечную точку VPC для связи с Dynamodb?

  • Конечные точки EC2 и VPC позволяют использовать один и тот же VPC.

3 ответа

Вы можете использовать AWS Cloudtrail, чтобы убедиться в этом. Если вы подключаетесь к DynamoDB только из приложения, размещенного в сети AWS, которая имеет связанную конечную точку шлюза VPC, тогда вы должны видеть только частные IP-адреса в поле «Исходный IP-адрес» в журналах Cloudtrail. Если вы видите другие общедоступные IP-адреса, это означает, что доступ к DyanmoDB осуществляется через Интернет.

  • Перейдите в AWS Cloudtrail и отфильтруйте EventSource dynamodb.amazonaws.com
  • Если вы не видите какое-либо событие cloudtrail, убедитесь, что вы выбрали период времени, когда вы ожидаете, что приложение получило доступ к DynamoDB или вручную ssh в экземпляр EC2, и запустите некоторые команды cli aws dynamodb list-tables а затем подождите 10-15 минут, пока не появится это новое событие.
  • Щелкните значок настроек, чтобы отобразить события
  • В Source IP address для события должно быть из диапазона CIDR вашего VPC (и в этом случае частный IP-адрес экземпляра EC2)
  • Вы можете нажать на название события и просмотреть необработанное событие, которое будет иметь ключ vpcEndpointId со значением, таким же, как идентификатор конечной точки VPC

Если исходный IP-адрес не является частным IP-адресом экземпляра EC2, убедитесь, что соответствующие таблицы маршрутов обновлены записью конечной точки шлюза, следуя To add or remove route tables used by a gateway endpointраздел ссылки здесь

Dynamodb и s3 используют конечную точку шлюза. Поскольку это конечная точка шлюза, nslookup всегда дает IP-адрес из диапазона CIDR списка префиксов, который находится в вашей таблице маршрутов.

поскольку AWS знает IP-адреса S3, они говорят, что просто добавьте эту запись в свою таблицу маршрутов, и любой трафик, предназначенный для их блоков CIDR, связанных с S3/dynamo, будет перенаправлен на конечную точку VPC. Нет обновлений для DNS, таких как конечная точка интерфейса. Всякий раз, когда ваш SDK вызывает S3 API, он выполняет поиск s3.us-east-1.amazonaws.com и всегда получает ответ с IP-адресом, который связан со списком префиксов, что заставляет маршрутизатор VPC маршрутизировать трафик соответствующим образом.

для s3/dynamo всегда лучше подтверждать из событий cloudtrail (исходный IP-адрес)

Вы можете просто выполнить nslookup для конечной точки для Dynamodb, и он должен вернуть частный IP-адрес из экземпляра внутри vpc.

Другие вопросы по тегам