У меня есть сценарий для развертывания бессерверного проекта. В настоящее время я использую serverless-vpc-plugin для настройки AZ, но при использовании флага useNatGateway он создает EIP для каждой зоны.
Мне нужно заставить весь исходящий трафик использовать один EIP (я обращаюсь к стороннему провайдеру, у которого есть ограничение IP, и мне нужно зарегистрировать свой IP там).
Не знаю, как изменить мою настройку для использования одного EIP ...
service: test
plugins:
- serverless-vpc-plugin
custom:
vpcConfig:
cidrBlock: 10.0.0.0/16
useNatGateway: true
provider:
name: aws
runtime: nodejs8.10
stage: prod
timeout: 30
vpc:
securityGroupIds:
- Ref: LambdaExecutionSecurityGroup
iamRoleStatements:
- Effect: Allow
Action:
- ec2:*
Resource: '*'
environment:
DATABASE_USERNAME: ${self:service}
DATABASE_PASSWORD: ${self:service}
DATABASE_NAME: ${self:service}
DATABASE_HOST:
'Fn::GetAtt': [RDSCluster, Endpoint.Address]
DATABASE_PORT:
'Fn::GetAtt': [RDSCluster, Endpoint.Port]
functions:
app:
handler: handler.app
events:
- http:
path: /
method: ANY
- http:
path: /{proxy+}
method: ANY
resources:
Resources:
RDSSecurityGroup:
DependsOn: VPC
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: SecurityGroup for RDS
VpcId:
Ref: VPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 3306
ToPort: 3306
SourceSecurityGroupId:
Ref: LambdaExecutionSecurityGroup
RDSCluster:
Type: AWS::RDS::DBCluster
Properties:
Engine: aurora
EngineMode: serverless
MasterUsername: ${self:service}
MasterUserPassword: ${self:service}
DatabaseName: ${self:service}
ScalingConfiguration:
AutoPause: false
BackupRetentionPeriod: 30
PreferredBackupWindow: 01:00-02:00
PreferredMaintenanceWindow: mon:03:00-mon:04:00
DBSubnetGroupName:
Ref: RDSSubnetGroup
VpcSecurityGroupIds:
- 'Fn::GetAtt': RDSSecurityGroup.GroupId





Этот комментарий не отвечает напрямую на ваш вопрос, но я оставлю его здесь на случай, если кто-то еще столкнется с той же проблемой. У каждого шлюза NAT должен быть один EIP. Вы можете создать один шлюз NAT в любой зоне доступности и связать данные всех ваших подсетей с этим шлюзом NAT. С бессерверной структурой, я полагаю, вам нужно будет настроить ее вручную (без использования ярлыка useNatGateway)