Как настроить ElasticBeanstalk для хранения журналов доступа для классического ELB

Я использую Terraform для предоставления приложения ElasticBeanstalk. Экземпляры EC2 помещаются в группу автоматического масштабирования и доступны через (классический) Elastic Load Balancer.

Теперь мне нужно хранить журналы доступа к этому балансировщику нагрузки в S3. Я вижу, что это можно сделать вручную из веб-консоли (EC2/Load Balancers/Description/Attributes/Access logs). Также Terraform позволяет настраивать журналы доступа для aws_elb (если он создан не ElasticBeanstalk). Однако ElasticBeanstalk не позволяет настраивать журналы доступа для классического балансировщика нагрузки (см. документы) только для балансировщика нагрузки приложений.

Итак, вопрос: как настроить ElasticBeanstalk для хранения журналов доступа для классического балансировщика нагрузки?

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




Ответы (1)


Вы можете сделать это, создав каталог .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», вы правы: Beanstalk добавляет фрагменты из этого каталога в свой базовый шаблон.

Для получения дополнительной информации о .ebextensions: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

person guest    schedule 11.12.2017