我正在使用Terraform提供ElasticBeanstalk应用程序。EC2实例被放置到自动缩放组中,并通过(经典的)弹性负载均衡器访问。
现在,我需要在S3中存储对负载均衡器的访问日志。我认为可以通过web控制台(EC2/Load Balancers/Description/Attribute/Access日志)手动完成操作。此外,Terraform允许为aws_elb配置访问日志(如果它不是由ElasticBeanstalk创建的)。但是,ElasticBeanstalk不允许仅为应用程序负载均衡器配置经典负载均衡器(见文档)的访问日志。
因此,问题是:如何配置ElasticBeanstalk来存储经典负载均衡器的访问日志
我意识到我可以改变平衡器的类型,但我想避免这种情况。
发布于 2017-12-11 18:50:16
您可以通过在您的部署包根目录中创建一个.ebextensions目录,并在那里保存一个配置文件来做到这一点。下面是我们使用的文件,它将ELB配置为每5分钟保存一次日志:
Resources:
AWSEBLoadBalancer:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
AccessLoggingPolicy:
EmitInterval: 5
Enabled: true
S3BucketName: "example-elb-logs"
S3BucketPrefix: { "Fn::Sub" : "example/${AWSEBEnvironmentName}" }如果您认为“这看起来非常像一个CloudFormation模板”,那么您是正确的:Bean秸秆将这个目录中的片段添加到它的基本模板中。
有关.ebextensions:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html的更多信息
https://stackoverflow.com/questions/47759138
复制相似问题