Last active
May 18, 2019 21:34
-
-
Save obonyojimmy/340b810c1e40599ee9afef9f1efb080f to your computer and use it in GitHub Desktop.
elastic beanstalk cloudformation template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Outputs: {} | |
| AWSTemplateFormatVersion: 2010-09-09 | |
| Parameters: | |
| InstanceTypeFamily: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: WebServer EC2 instance type family | |
| Default: t1 | |
| LogPublicationControl: | |
| ConstraintDescription: must be Boolean. | |
| NoEcho: 'true' | |
| Type: String | |
| Description: If true customer service logs will be published to S3. | |
| AllowedValues: | |
| - 'true' | |
| - 'false' | |
| Default: 'false' | |
| InstancePort: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: Listen Port | |
| Default: '80' | |
| XRayEnabled: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: Enables AWS X-Ray for your environment. | |
| Default: 'false' | |
| AWSEBEnvironmentId: | |
| NoEcho: 'true' | |
| Type: String | |
| HooksPkgUrl: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: URL to hooks package | |
| Default: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/hooks.tar.gz | |
| AWSEBEnvironmentName: | |
| NoEcho: 'true' | |
| Type: String | |
| AWSEBReferrerId: | |
| Default: '' | |
| NoEcho: 'true' | |
| Type: String | |
| AppSource: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: Application Source | |
| Default: >- | |
| http://s3.amazonaws.com/elasticbeanstalk-samples-us-east-1/nodejs-sample-v2.zip | |
| ProxyServer: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: >- | |
| Specifies which proxy server to be used for client connections. Static | |
| file mappings and gzip compression will not take effect if the proxy | |
| server is set to "none". | |
| AllowedValues: | |
| - apache | |
| - nginx | |
| - none | |
| Default: nginx | |
| NodeVersion: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: Version of Node.js. | |
| AllowedValues: | |
| - 4.8.7 | |
| - 4.9.1 | |
| - 5.12.0 | |
| - 6.14.3 | |
| - 6.14.4 | |
| - 7.10.1 | |
| - 8.11.4 | |
| - 8.12.0 | |
| - 10.13.0 | |
| Default: 10.13.0 | |
| NodeStaticFiles: | |
| NoEcho: 'true' | |
| Type: CommaDelimitedList | |
| Description: The directory to serve as static content. | |
| Default: '' | |
| EnvironmentVariables: | |
| NoEcho: 'true' | |
| Type: CommaDelimitedList | |
| Description: Program environment variables. | |
| Default: '' | |
| AWSEBAgentId: | |
| Default: '' | |
| NoEcho: 'true' | |
| Type: String | |
| NodeEnableGzip: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: Specifies if gzip compression is enabled. | |
| AllowedValues: | |
| - 'true' | |
| - 'false' | |
| Default: 'true' | |
| InstanceType: | |
| ConstraintDescription: must be a valid EC2 instance type. | |
| NoEcho: 'true' | |
| Type: String | |
| Description: WebServer EC2 instance type | |
| AllowedValues: | |
| - t2.micro | |
| - t2.small | |
| - t2.medium | |
| - t2.large | |
| - t2.xlarge | |
| - t2.2xlarge | |
| - m3.medium | |
| - m3.large | |
| - m3.xlarge | |
| - m3.2xlarge | |
| - c3.large | |
| - c3.xlarge | |
| - c3.2xlarge | |
| - c3.4xlarge | |
| - c3.8xlarge | |
| - t1.micro | |
| - t2.nano | |
| - m1.small | |
| - m1.medium | |
| - m1.large | |
| - m1.xlarge | |
| - c1.medium | |
| - c1.xlarge | |
| - c4.large | |
| - c4.xlarge | |
| - c4.2xlarge | |
| - c4.4xlarge | |
| - c4.8xlarge | |
| - c5.large | |
| - c5.xlarge | |
| - c5.2xlarge | |
| - c5.4xlarge | |
| - c5.9xlarge | |
| - c5.18xlarge | |
| - m2.xlarge | |
| - m2.2xlarge | |
| - m2.4xlarge | |
| - r4.large | |
| - r4.xlarge | |
| - r4.2xlarge | |
| - r4.4xlarge | |
| - r4.8xlarge | |
| - r4.16xlarge | |
| - m4.large | |
| - m4.xlarge | |
| - m4.2xlarge | |
| - m4.4xlarge | |
| - m4.10xlarge | |
| - m4.16xlarge | |
| - cc1.4xlarge | |
| - cc2.8xlarge | |
| - hi1.4xlarge | |
| - hs1.8xlarge | |
| - cr1.8xlarge | |
| - g2.2xlarge | |
| - g2.8xlarge | |
| - p2.xlarge | |
| - p2.8xlarge | |
| - p2.16xlarge | |
| - p3.2xlarge | |
| - p3.8xlarge | |
| - p3.16xlarge | |
| - i2.xlarge | |
| - i2.2xlarge | |
| - i2.4xlarge | |
| - i2.8xlarge | |
| - i3.large | |
| - i3.xlarge | |
| - i3.2xlarge | |
| - i3.4xlarge | |
| - i3.8xlarge | |
| - i3.16xlarge | |
| - r3.large | |
| - r3.xlarge | |
| - r3.2xlarge | |
| - r3.4xlarge | |
| - r3.8xlarge | |
| - d2.xlarge | |
| - d2.2xlarge | |
| - d2.4xlarge | |
| - d2.8xlarge | |
| - x1.16xlarge | |
| - x1.32xlarge | |
| - x1e.xlarge | |
| - x1e.2xlarge | |
| - x1e.4xlarge | |
| - x1e.8xlarge | |
| - x1e.16xlarge | |
| - x1e.32xlarge | |
| - f1.2xlarge | |
| - f1.4xlarge | |
| - f1.16xlarge | |
| - g3.4xlarge | |
| - g3.8xlarge | |
| - g3.16xlarge | |
| - h1.2xlarge | |
| - h1.4xlarge | |
| - h1.8xlarge | |
| - h1.16xlarge | |
| - m5.large | |
| - m5.xlarge | |
| - m5.2xlarge | |
| - m5.4xlarge | |
| - m5.12xlarge | |
| - m5.24xlarge | |
| - c5d.large | |
| - c5d.xlarge | |
| - c5d.2xlarge | |
| - c5d.4xlarge | |
| - c5d.9xlarge | |
| - c5d.18xlarge | |
| - m5d.large | |
| - m5d.xlarge | |
| - m5d.2xlarge | |
| - m5d.4xlarge | |
| - m5d.12xlarge | |
| - m5d.24xlarge | |
| - z1d.large | |
| - z1d.xlarge | |
| - z1d.2xlarge | |
| - z1d.3xlarge | |
| - z1d.6xlarge | |
| - z1d.12xlarge | |
| - r5.large | |
| - r5.xlarge | |
| - r5.2xlarge | |
| - r5.4xlarge | |
| - r5.12xlarge | |
| - r5.24xlarge | |
| - r5d.large | |
| - r5d.xlarge | |
| - r5d.2xlarge | |
| - r5d.4xlarge | |
| - r5d.12xlarge | |
| - r5d.24xlarge | |
| - t3.nano | |
| - t3.micro | |
| - t3.small | |
| - t3.medium | |
| - t3.large | |
| - t3.xlarge | |
| - t3.2xlarge | |
| - g3s.xlarge | |
| - m5a.large | |
| - m5a.xlarge | |
| - m5a.2xlarge | |
| - m5a.4xlarge | |
| - m5a.12xlarge | |
| - m5a.24xlarge | |
| - r5a.large | |
| - r5a.xlarge | |
| - r5a.2xlarge | |
| - r5a.4xlarge | |
| - r5a.12xlarge | |
| - r5a.24xlarge | |
| Default: t1.micro | |
| AWSEBEnvironmentBucket: | |
| NoEcho: 'true' | |
| Type: String | |
| ServerPort: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: Server Port | |
| Default: '8080' | |
| NodeCommand: | |
| NoEcho: 'true' | |
| Type: String | |
| Description: >- | |
| Command to start the Node.js application. If an empty string is specified, | |
| app.js is used, then server.js, then "npm start" in that order. | |
| Default: '' | |
| Resources: | |
| AWSEBAutoScalingLaunchConfiguration: | |
| Type: 'AWS::AutoScaling::LaunchConfiguration' | |
| Properties: | |
| SecurityGroups: | |
| - !Ref AWSEBSecurityGroup | |
| UserData: !Base64 | |
| 'Fn::Join': | |
| - '' | |
| - - >- | |
| Content-Type: multipart/mixed; | |
| boundary="===============5189065377222898407==" | |
| - |+ | |
| - 'MIME-Version: 1.0' | |
| - |+ | |
| - '' | |
| - |+ | |
| - '--===============5189065377222898407==' | |
| - |+ | |
| - 'Content-Type: text/cloud-config; charset="us-ascii"' | |
| - |+ | |
| - 'MIME-Version: 1.0' | |
| - |+ | |
| - 'Content-Transfer-Encoding: 7bit' | |
| - |+ | |
| - 'Content-Disposition: attachment; filename="cloud-config.txt"' | |
| - |+ | |
| - '' | |
| - |+ | |
| - '#cloud-config' | |
| - |+ | |
| - 'repo_upgrade: none' | |
| - |+ | |
| - 'repo_releasever: ' | |
| - !FindInMap | |
| - ContainerMeta | |
| - AMIMeta | |
| - RepoReleaseVersion | |
| - |+ | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - CloudConfigOptions | |
| - |+ | |
| - '' | |
| - |+ | |
| - '--===============5189065377222898407==' | |
| - |+ | |
| - 'Content-Type: text/x-shellscript; charset="us-ascii"' | |
| - |+ | |
| - 'MIME-Version: 1.0' | |
| - |+ | |
| - 'Content-Transfer-Encoding: 7bit' | |
| - |+ | |
| - 'Content-Disposition: attachment; filename="user-data.txt"' | |
| - |+ | |
| - '#!/bin/bash' | |
| - |+ | |
| - >- | |
| exec > >(tee -a /var/log/eb-cfn-init.log|logger -t [eb-cfn-init] | |
| -s 2>/dev/console) 2>&1 | |
| - |+ | |
| - 'echo [`date -u +"%Y-%m-%dT%H:%M:%SZ"`] Started EB User Data' | |
| - |+ | |
| - set -x | |
| - |+ | |
| - |+ | |
| - 'function sleep_delay ' | |
| - |+ | |
| - '{' | |
| - |+ | |
| - ' if (( $SLEEP_TIME < $SLEEP_TIME_MAX )); then ' | |
| - |+ | |
| - ' echo Sleeping $SLEEP_TIME' | |
| - |+ | |
| - ' sleep $SLEEP_TIME ' | |
| - |+ | |
| - ' SLEEP_TIME=$(($SLEEP_TIME * 2)) ' | |
| - |+ | |
| - ' else ' | |
| - |+ | |
| - ' echo Sleeping $SLEEP_TIME_MAX ' | |
| - |+ | |
| - ' sleep $SLEEP_TIME_MAX ' | |
| - |+ | |
| - ' fi' | |
| - |+ | |
| - '}' | |
| - |+ | |
| - '# Executing bootstrap script' | |
| - |+ | |
| - SLEEP_TIME=10 | |
| - |+ | |
| - SLEEP_TIME_MAX=3600 | |
| - |+ | |
| - 'while true; do ' | |
| - |+ | |
| - ' curl ' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - UserDataScript | |
| - ' > /tmp/ebbootstrap.sh ' | |
| - |+ | |
| - ' RESULT=$?' | |
| - |+ | |
| - ' if [[ "$RESULT" -ne 0 ]]; then ' | |
| - |+ | |
| - ' sleep_delay ' | |
| - |+ | |
| - ' else' | |
| - |+ | |
| - ' /bin/bash /tmp/ebbootstrap.sh ' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - rpms | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - tarballs | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - ebgems | |
| - '''' | |
| - ' ''' | |
| - !Ref AWSEBInstanceLaunchWaitHandle | |
| - '''' | |
| - ' ''' | |
| - !Ref 'AWS::StackId' | |
| - '''' | |
| - ' ''' | |
| - !Ref 'AWS::Region' | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - guid | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - AWSEBHealthdGroupId | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - AWSEBHealthdEndpoint | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - ProxyServer | |
| - '''' | |
| - ' ''' | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - HealthdProxyLogLocation | |
| - '''' | |
| - ' && ' | |
| - |+ | |
| - ' exit 0 ' | |
| - |+ | |
| - ' fi ' | |
| - |+ | |
| - done | |
| - |+ | |
| - '--===============5189065377222898407==-- ' | |
| ImageId: !FindInMap | |
| - AWSEBAWSRegionArch2AMI | |
| - !Ref 'AWS::Region' | |
| - !FindInMap | |
| - AWSEBAWSInstanceTypeFamily2Arch | |
| - !Ref InstanceTypeFamily | |
| - Arch | |
| IamInstanceProfile: aws-elasticbeanstalk-ec2-role | |
| InstanceType: !Ref InstanceType | |
| AssociatePublicIpAddress: 'true' | |
| InstanceMonitoring: false | |
| AWSEBV2LoadBalancer: | |
| Properties: | |
| SecurityGroups: | |
| - !Ref AWSEBLoadBalancerSecurityGroup | |
| Subnets: | |
| - subnet-0bffb35e8032cf36e | |
| - subnet-065983558e844b027 | |
| Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' | |
| AWSEBV2LoadBalancerListener: | |
| Properties: | |
| LoadBalancerArn: !Ref AWSEBV2LoadBalancer | |
| DefaultActions: | |
| - TargetGroupArn: !Ref AWSEBV2LoadBalancerTargetGroup | |
| Type: forward | |
| Port: 80 | |
| Protocol: HTTP | |
| Type: 'AWS::ElasticLoadBalancingV2::Listener' | |
| AWSEBLoadBalancerSecurityGroup: | |
| Properties: | |
| GroupDescription: Load Balancer Security Group | |
| VpcId: vpc-0eac56a5a6b1c0f58 | |
| SecurityGroupIngress: | |
| - CidrIp: 0.0.0.0/0 | |
| FromPort: '80' | |
| ToPort: '80' | |
| IpProtocol: tcp | |
| SecurityGroupEgress: | |
| - CidrIp: 0.0.0.0/0 | |
| FromPort: '80' | |
| ToPort: '80' | |
| IpProtocol: tcp | |
| Type: 'AWS::EC2::SecurityGroup' | |
| AWSEBUpdateWaitConditionHandlevUHTuB: | |
| Type: 'AWS::CloudFormation::WaitConditionHandle' | |
| AWSEBSecurityGroup: | |
| Properties: | |
| GroupDescription: VPC Security Group | |
| VpcId: vpc-0eac56a5a6b1c0f58 | |
| SecurityGroupIngress: | |
| - FromPort: '80' | |
| ToPort: '80' | |
| IpProtocol: tcp | |
| SourceSecurityGroupId: !Ref AWSEBLoadBalancerSecurityGroup | |
| Type: 'AWS::EC2::SecurityGroup' | |
| AWSEBAutoScalingScaleDownPolicy: | |
| Properties: | |
| ScalingAdjustment: '-1' | |
| AutoScalingGroupName: !Ref AWSEBAutoScalingGroup | |
| AdjustmentType: ChangeInCapacity | |
| Type: 'AWS::AutoScaling::ScalingPolicy' | |
| AWSEBInstanceLaunchWaitHandle: | |
| Type: 'AWS::CloudFormation::WaitConditionHandle' | |
| AWSEBAutoScalingGroup: | |
| Metadata: | |
| ForcingMetadataUpdate: Changing something in the metadata will force re-compuation | |
| 'AWS::CloudFormation::Init': | |
| Infra-WriteTailLogsConf: | |
| files: | |
| /opt/elasticbeanstalk/tasks/taillogs.d/eb-activity.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/eb-commandprocessor.log | |
| - /var/log/eb-activity.log | |
| - '' | |
| /opt/elasticbeanstalk/tasks/taillogs.d/eb-version-deployment.conf: | |
| content: !Join | |
| - |+ | |
| - - /var/log/eb-version-deployment.log | |
| - '' | |
| Infra-WriteBundleLogsConf: | |
| files: | |
| /opt/elasticbeanstalk/tasks/bundlelogs.d/eb-system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/eb-cfn-init* | |
| - /var/log/eb-tools* | |
| - /var/log/eb-publish-logs* | |
| - /var/log/eb-commandprocessor* | |
| - /var/log/eb-activity* | |
| - '' | |
| /opt/elasticbeanstalk/tasks/bundlelogs.d/cfn-system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/cfn-hup* | |
| - /var/log/cfn-init* | |
| - /var/log/cfn-wire* | |
| - '' | |
| /opt/elasticbeanstalk/tasks/bundlelogs.d/eb-version-deployment.conf: | |
| content: !Join | |
| - |+ | |
| - - /var/log/eb-version-deployment.log | |
| - '' | |
| /opt/elasticbeanstalk/tasks/bundlelogs.d/cloud-init-system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/cloud-init* | |
| - '' | |
| /opt/elasticbeanstalk/tasks/bundlelogs.d/system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/cron | |
| - /var/log/messages | |
| - /var/log/yum.log | |
| - '' | |
| InfoTask-TailLogs: | |
| commands: | |
| taillogs: | |
| command: !Join | |
| - '' | |
| - - >- | |
| tailLogs.py --concatenate --conf-path | |
| '/opt/elasticbeanstalk/tasks/taillogs.d/*' | |
| --location-prefix | |
| - !FindInMap | |
| - EnvironmentInfoTasks | |
| - tail | |
| - LocationPrefix | |
| Infra-WriteLeaderTestScript: | |
| files: | |
| /opt/elasticbeanstalk/bin/leader-test.sh: | |
| mode: '000755' | |
| content: !Join | |
| - '' | |
| - - '#!/bin/bash' | |
| - |+ | |
| - 'if [[ "$EB_IS_COMMAND_LEADER" == "true" ]]; then ' | |
| - |+ | |
| - ' exit 0 ' | |
| - |+ | |
| - 'else ' | |
| - |+ | |
| - ' exit 1 ' | |
| - |+ | |
| - 'fi ' | |
| - |+ | |
| InfoTask-BundleLogs: | |
| commands: | |
| bundlelogs: | |
| command: !Join | |
| - '' | |
| - - >- | |
| bundleLogs.py --conf-path | |
| '/opt/elasticbeanstalk/tasks/bundlelogs.d/*' | |
| --location-prefix | |
| - !FindInMap | |
| - EnvironmentInfoTasks | |
| - bundle | |
| - LocationPrefix | |
| AWSEBBaseConfig: | |
| files: | |
| /etc/cfn/cfn-hup.conf: | |
| mode: '000400' | |
| owner: root | |
| content: !Join | |
| - '' | |
| - - '[main]' | |
| - |+ | |
| - stack= | |
| - !Ref 'AWS::StackId' | |
| - |+ | |
| - region= | |
| - !Ref 'AWS::Region' | |
| - |+ | |
| - | | |
| verbose=true | |
| - | | |
| multi-threaded=false | |
| group: root | |
| /etc/elasticbeanstalk/.aws-eb-stack.properties: | |
| mode: '000440' | |
| owner: root | |
| content: !Join | |
| - '' | |
| - - environment_id= | |
| - !Ref AWSEBEnvironmentId | |
| - |+ | |
| - environment_bucket= | |
| - !Ref AWSEBEnvironmentBucket | |
| - |+ | |
| - stack_name= | |
| - !Ref 'AWS::StackId' | |
| - |+ | |
| - resource= | |
| - AWSEBAutoScalingGroup | |
| - |+ | |
| - region= | |
| - !Ref 'AWS::Region' | |
| - |+ | |
| group: root | |
| /etc/init/cfn-hup.conf: | |
| mode: '000400' | |
| owner: root | |
| content: !Join | |
| - |+ | |
| - - 'stop on runlevel [016]' | |
| - respawn | |
| - script | |
| - ' /opt/aws/bin/cfn-hup' | |
| - end script | |
| group: root | |
| /etc/cfn/hooks.d/aws-eb-command-handler.conf: | |
| content: !Join | |
| - '' | |
| - - '[aws-eb-command-handler]' | |
| - |+ | |
| - triggers=on.command | |
| - |+ | |
| - path=ElasticBeanstalkCommand- | |
| - AWSEBAutoScalingGroup | |
| - |+ | |
| - action=/opt/elasticbeanstalk/bin/command-processor | |
| - |+ | |
| commands: | |
| clearbackupfiles: | |
| command: rm -f /etc/cfn/hooks.d/*.bak | |
| Hook-PreAppDeploy: | |
| commands: | |
| hooks: | |
| command: echo place holder | |
| InfoTask-SystemTailLogs: | |
| commands: | |
| systemtaillogs: | |
| command: !Join | |
| - '' | |
| - - >- | |
| tailLogs.py --conf-path | |
| '/opt/elasticbeanstalk/tasks/systemtaillogs.d/*' | |
| --location-prefix | |
| - !FindInMap | |
| - EnvironmentInfoTasks | |
| - systemtail | |
| - LocationPrefix | |
| AWSEBMessageOfTheDay: | |
| files: | |
| /tmp/10eb-banner: | |
| mode: '000755' | |
| owner: root | |
| content: !Join | |
| - '' | |
| - - cat << EOF | |
| - |+ | |
| - ' _____ _ _ _ ____ _ _ _' | |
| - |+ | |
| - >- | |
| | ____| | __ _ ___| |_(_) ___| __ ) ___ __ _ _ __ ___| |_ | |
| __ _| | | __ | |
| - |+ | |
| - >- | |
| | _| | |/ _\` / __| __| |/ __| _ \ / _ \/ _\` | '_ \/ __| | |
| __/ _\` | | |/ / | |
| - |+ | |
| - >- | |
| | |___| | (_| \__ \ |_| | (__| |_) | __/ (_| | | | \__ \ || | |
| (_| | | < | |
| - |+ | |
| - >- | |
| |_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| | |
| |_|___/\__\__,_|_|_|\_\\ | |
| - |+ | |
| - ' Amazon Linux AMI' | |
| - |+ | |
| - |+ | |
| - >- | |
| This EC2 instance is managed by AWS Elastic Beanstalk. | |
| Changes made via SSH | |
| - |+ | |
| - >- | |
| WILL BE LOST if the instance is replaced by auto-scaling. | |
| For more information | |
| - |+ | |
| - >- | |
| on customizing your Elastic Beanstalk environment, see our | |
| documentation here: | |
| - |+ | |
| - >- | |
| http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html | |
| - |+ | |
| - EOF | |
| - |+ | |
| group: root | |
| commands: | |
| 01clearoriginal: | |
| command: rm -f /etc/update-motd.d/* | |
| 02createbanner: | |
| command: mv /tmp/10eb-banner /etc/update-motd.d/10eb-banner | |
| 03updatebanner: | |
| command: /usr/sbin/update-motd | |
| Infra-WriteSystemTailLogsConf: | |
| files: | |
| /opt/elasticbeanstalk/tasks/systemtaillogs.d/eb-system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/eb-cfn-init.log | |
| - /var/log/eb-tools.log | |
| - /var/log/eb-publish-logs.log | |
| - /var/log/eb-commandprocessor.log | |
| - /var/log/eb-activity.log | |
| - '' | |
| /opt/elasticbeanstalk/tasks/systemtaillogs.d/eb-version-deployment.conf: | |
| content: !Join | |
| - |+ | |
| - - /var/log/eb-version-deployment.log | |
| - '' | |
| /opt/elasticbeanstalk/tasks/systemtaillogs.d/cfn-system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/cfn-hup.log | |
| - /var/log/cfn-init.log | |
| - '' | |
| /opt/elasticbeanstalk/tasks/systemtaillogs.d/system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/cron | |
| - /var/log/messages | |
| - /var/log/yum.log | |
| - '' | |
| /opt/elasticbeanstalk/tasks/systemtaillogs.d/cloud-init-system.conf: | |
| mode: '000644' | |
| content: !Join | |
| - |+ | |
| - - /var/log/cloud-init.log | |
| - '' | |
| Infra-PatchInstance: | |
| files: | |
| /opt/elasticbeanstalk/bin/patch_instance: | |
| mode: '000750' | |
| owner: root | |
| source: !Select | |
| - 0 | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - ebpatchscripturl | |
| group: root | |
| commands: | |
| 01executepatch: | |
| command: /opt/elasticbeanstalk/bin/patch_instance | |
| prebuild_0_bioapp: | |
| files: | |
| /tmp/rds-combined-ca-bundle.pem: | |
| mode: '000644' | |
| owner: nodejs | |
| source: >- | |
| https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem | |
| group: users | |
| Infra-InstallContainerHooksPkg: | |
| commands: | |
| 01download_container_hooks: | |
| command: !Join | |
| - '' | |
| - - curl -sS --retry 3 ' | |
| - !Ref HooksPkgUrl | |
| - ''' -o /tmp/hooks.tar.gz' | |
| 03cleanup: | |
| command: rm -f /tmp/hooks.tar.gz | |
| 00mkdir: | |
| command: mkdir -p /opt/elasticbeanstalk | |
| 02install_container_hooks: | |
| command: >- | |
| tar zxf /tmp/hooks.tar.gz --no-same-owner --no-same-permission | |
| -C /opt/elasticbeanstalk | |
| prebuild_2_bioapp: | |
| files: | |
| /opt/elasticbeanstalk/hooks/appdeploy/pre/49_npm_install.sh: | |
| mode: '000755' | |
| owner: root | |
| content: > | |
| #!/usr/bin/env bash | |
| # | |
| # Only install modules, don't rebuild like Elastic Beanstalk | |
| does by default: | |
| # | |
| https://gist.github.com/wearhere/de51bb799f5099cec0ed28b9d0eb3663. | |
| # New modules will be built when they are installed, and cached | |
| modules don't | |
| # need to be rebuilt. When the Node version changes, the | |
| configdeploy script | |
| # will rebuild. | |
| # | |
| # Note that this *overwrites* Elastic Beanstalk's default | |
| 50npm.sh script. | |
| . /opt/elasticbeanstalk/env.vars | |
| #make sure node binaries can be found globally | |
| ln -sf | |
| /opt/elasticbeanstalk/node-install/node-v$EB_NODE_VERSION-linux-$ARCH/bin/node | |
| /usr/bin/node | |
| ln -sf | |
| /opt/elasticbeanstalk/node-install/node-v$EB_NODE_VERSION-linux-$ARCH/bin/npm | |
| /usr/bin/npm | |
| ln -sf | |
| /opt/elasticbeanstalk/node-install/node-v$EB_NODE_VERSION-linux-$ARCH/bin/node-gyp | |
| /usr/bin/node-gyp | |
| cd "${EB_APP_STAGING_DIR}/programs/server"; | |
| #sudo -u ec2-user -H npm install | |
| npm install --unsafe-perm | |
| if [ -d /tmp/.npm ]; then | |
| chown -R nodejs:nodejs /tmp/.npm | |
| fi | |
| group: users | |
| /opt/elasticbeanstalk/env.vars: | |
| mode: '000775' | |
| owner: root | |
| content: > | |
| # enable extra logs | |
| set -xe | |
| # Defines variables for use by the other scripts below. | |
| EB_NODE_VERSION=$(/opt/elasticbeanstalk/bin/get-config | |
| optionsettings -n aws:elasticbeanstalk:container:nodejs -o | |
| NodeVersion) | |
| # Exported to make sure Node binaries can be found by npm when | |
| we run it. | |
| # And this lets us invoke npm more simply too. | |
| export | |
| PATH=/opt/elasticbeanstalk/node-install/node-v$EB_NODE_VERSION-linux-x64/bin:$PATH | |
| # For parity with EB | |
| https://gist.github.com/wearhere/de51bb799f5099cec0ed28b9d0eb3663#file-ebnode-py-L147 | |
| # and because some npm packages require HOME. This will also get | |
| npm to | |
| # read its configuration from the proper directory. | |
| export HOME=$(/opt/elasticbeanstalk/bin/get-config container -k | |
| app_user_home) | |
| EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config | |
| container -k app_staging_dir) | |
| EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config | |
| container -k app_deploy_dir) | |
| # specify architecture | |
| case $(arch) in | |
| 'i686') export ARCH=x86;; | |
| 'x86_64') export ARCH=x64;; | |
| esac | |
| # Export the user's environment variables for use with npm, both | |
| because | |
| # EB does it | |
| https://gist.github.com/wearhere/de51bb799f5099cec0ed28b9d0eb3663#file-ebnode-py-L150 | |
| # as well as because we might need NPM_TOKEN. | |
| # | |
| # I wish this was a heredoc but I can't get the syntax right in | |
| YAML, | |
| # EB gives an error "warning: here-document delimited by | |
| end-of-file (wanted `EOS`)" | |
| #/opt/elasticbeanstalk/bin/get-config --output YAML | |
| environment|perl -ne "/^\w/ or next; s/: /=/; print qq|\$_|" > | |
| /var/tmp/envvars | |
| #source /var/tmp/envvars | |
| group: users | |
| packages: | |
| yum: | |
| gcc: [] | |
| gcc-c++: [] | |
| make: [] | |
| prebuild_1_bioapp: | |
| files: | |
| /opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh: | |
| owner: root | |
| mode: '000755' | |
| content: | | |
| #!/bin/bash -xe | |
| rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf | |
| service nginx stop | |
| service nginx start | |
| group: root | |
| /etc/nginx/conf.d/proxy.conf: | |
| owner: root | |
| mode: '000644' | |
| content: > | |
| # Elastic Beanstalk Managed | |
| # Elastic Beanstalk managed configuration file | |
| # Some configuration of nginx can be by placing files in | |
| /etc/nginx/conf.d | |
| # using Configuration Files. | |
| # | |
| http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html | |
| proxy_buffer_size 128k; | |
| proxy_buffers 4 256k; | |
| proxy_busy_buffers_size 256k; | |
| upstream nodejs { | |
| server 127.0.0.1:8081; | |
| keepalive 256; | |
| } | |
| server { | |
| listen 8080; | |
| if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { | |
| set $year $1; | |
| set $month $2; | |
| set $day $3; | |
| set $hour $4; | |
| } | |
| access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd; | |
| access_log /var/log/nginx/access.log main; | |
| location ~* \.(eot|ttf|woff)$ { | |
| root /var/app/current/programs/web.browser/app; | |
| access_log off; | |
| add_header Access-Control-Allow-Origin *; | |
| add_header Vary Origin; | |
| add_header Pragma public; | |
| add_header Cache-Control "public"; | |
| expires max; | |
| } | |
| location / { | |
| proxy_pass http://nodejs; | |
| proxy_http_version 1.1; | |
| proxy_set_header Upgrade $http_upgrade; | |
| proxy_set_header Connection "upgrade"; | |
| proxy_set_header Host $host; | |
| proxy_set_header X-Real-IP $remote_addr; | |
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
| } | |
| gzip on; | |
| gzip_comp_level 4; | |
| gzip_types text/html text/plain text/css application/json | |
| application/x-javascript text/xml application/xml | |
| application/xml+rss text/javascript; | |
| } | |
| group: root | |
| Infra-WritePublishLogsCron: | |
| files: | |
| /etc/cron.d/publishlogs: | |
| mode: '000644' | |
| content: !Join | |
| - '' | |
| - - SHELL=/bin/bash | |
| - |+ | |
| - 'PATH=/sbin:/bin:/usr/sbin:/usr/bin' | |
| - |+ | |
| - MAILTO="" | |
| - |+ | |
| - HOME=/ | |
| - |+ | |
| - '10,30,50 * * * * root ' | |
| - >- | |
| publishLogs.py --de-dupe --conf-path | |
| '/opt/elasticbeanstalk/tasks/publishlogs.d/*' | |
| --location-prefix | |
| - !FindInMap | |
| - EnvironmentInfoTasks | |
| - publish | |
| - LocationPrefix | |
| - ' --num-concurrent 2' | |
| - |+ | |
| - '05,25,45 * * * * root ' | |
| - clearStaleLogPublishingRecords.py | |
| - |+ | |
| Infra-WriteApplication1: | |
| commands: | |
| 01mkdir: | |
| command: >- | |
| rm -rf /opt/elasticbeanstalk/deploy/appsource/; mkdir -p | |
| /opt/elasticbeanstalk/deploy/appsource/ | |
| postbuild_0_bioapp: | |
| commands: | |
| file_transfer_2: | |
| defaults: !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - DefaultsScript | |
| command: mv /tmp/rds-combined-ca-bundle.pem certificates/. | |
| file_transfer_1: | |
| defaults: !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - DefaultsScript | |
| command: mkdir -p certificates | |
| postbuild_1_bioapp: | |
| commands: | |
| removeconfig: | |
| defaults: !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - DefaultsScript | |
| command: >- | |
| rm -f | |
| /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf | |
| /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf | |
| configSets: | |
| Infra-WriteTailLogsConf: | |
| - Infra-WriteTailLogsConf | |
| Infra-WriteBundleLogsConf: | |
| - Infra-WriteBundleLogsConf | |
| InfoTask-TailLogs: | |
| - InfoTask-TailLogs | |
| InfoTask-BundleLogs: | |
| - InfoTask-BundleLogs | |
| _OnInstanceReboot: | |
| - AWSEBBaseConfig | |
| _AppInstall: | |
| - prebuild_0_bioapp | |
| - prebuild_1_bioapp | |
| - prebuild_2_bioapp | |
| - Hook-PreAppDeploy | |
| - postbuild_0_bioapp | |
| - postbuild_1_bioapp | |
| Infra-EmbeddedPreBuild: | |
| - prebuild_0_bioapp | |
| - prebuild_1_bioapp | |
| - prebuild_2_bioapp | |
| Hook-PreAppDeploy: | |
| - Hook-PreAppDeploy | |
| InfoTask-SystemTailLogs: | |
| - InfoTask-SystemTailLogs | |
| Infra-WriteSystemTailLogsConf: | |
| - Infra-WriteSystemTailLogsConf | |
| _OnInstanceBoot: | |
| - AWSEBBaseConfig | |
| - AWSEBMessageOfTheDay | |
| - AWSEBULimitConfig | |
| - Infra-InstallContainerHooksPkg | |
| - Infra-WriteLeaderTestScript | |
| - Infra-WriteTailLogsConf | |
| - Infra-WriteSystemTailLogsConf | |
| - Infra-WriteBundleLogsConf | |
| - Infra-WritePublishLogsConf | |
| - Infra-WritePublishLogsCron | |
| Infra-EmbeddedPostBuild: | |
| - postbuild_0_bioapp | |
| - postbuild_1_bioapp | |
| Infra-WritePublishLogsCron: | |
| - Infra-WritePublishLogsCron | |
| Infra-WriteApplication1: | |
| - Infra-WriteApplication1 | |
| Infra-WriteApplication2: | |
| - Infra-WriteApplication2 | |
| Infra-WritePublishLogsConf: | |
| - Infra-WritePublishLogsConf | |
| _Infra-PatchInstance: | |
| - Infra-PatchInstance | |
| Infra-WriteApplication2: | |
| files: | |
| /opt/elasticbeanstalk/bin/download_source_bundle: | |
| owner: root | |
| mode: '000750' | |
| source: !Select | |
| - 0 | |
| - !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - downloadSourceBundleScriptLocation | |
| group: root | |
| commands: | |
| 01downloadVersion: | |
| command: /opt/elasticbeanstalk/bin/download_source_bundle | |
| 02deleteVersionDownloadScriptFile: | |
| command: rm /opt/elasticbeanstalk/bin/download_source_bundle | |
| Infra-WritePublishLogsConf: | |
| files: {} | |
| AWSEBULimitConfig: | |
| files: | |
| /etc/elasticbeanstalk/set-ulimit.sh: | |
| mode: '000755' | |
| owner: root | |
| content: !Join | |
| - '' | |
| - - '#!/bin/bash -xe' | |
| - |+ | |
| - '' | |
| - |+ | |
| - '# System imposed global limit' | |
| - |+ | |
| - FILES_MAX=$(cat /proc/sys/fs/file-max) | |
| - |+ | |
| - '' | |
| - |+ | |
| - 'if [[ ! $FILES_MAX =~ ^[0-9]+$ ]]; then' | |
| - |+ | |
| - ' echo WARNING: Unable to determine file max for this system' | |
| - |+ | |
| - ' exit 0' | |
| - |+ | |
| - fi | |
| - |+ | |
| - '' | |
| - |+ | |
| - '# Per user limit' | |
| - |+ | |
| - let "USER_LIMIT=$FILES_MAX/3" | |
| - |+ | |
| - '' | |
| - |+ | |
| - 'if [ $USER_LIMIT -lt 4096 ]; then' | |
| - |+ | |
| - ' USER_LIMIT=4096' | |
| - |+ | |
| - fi | |
| - |+ | |
| - '' | |
| - |+ | |
| - 'if [ $USER_LIMIT -gt 200000 ]; then' | |
| - |+ | |
| - ' USER_LIMIT=200000' | |
| - |+ | |
| - fi | |
| - |+ | |
| - '' | |
| - |+ | |
| - ulimit -n $USER_LIMIT | |
| - |+ | |
| group: root | |
| commands: | |
| 00removebackup: | |
| command: rm -f /etc/elasticbeanstalk/set-ulimit.sh.bak* | |
| 'AWS::ElasticBeanstalk::Ext': | |
| _AppSourceUrlFileContent: | |
| url: !Ref AppSource | |
| _TriggersConfig: | |
| configDeploy: | |
| _Command: CMD-ConfigDeploy | |
| _WatchGroups: | |
| - _TriggerConfigDeployment | |
| applicationDeploy: | |
| _Command: CMD-AppDeploy | |
| _WatchGroups: | |
| - _TriggerAppDeployment | |
| _ParameterTriggers: | |
| _TriggerConfigDeployment: | |
| - EnvironmentVariables | |
| - InstancePort | |
| - LogPublicationControl | |
| - InstancePort | |
| - ServerPort | |
| - NodeVersion | |
| - ProxyServer | |
| - NodeStaticFiles | |
| - EnvironmentVariables | |
| - NodeCommand | |
| - NodeEnableGzip | |
| - XRayEnabled | |
| _TriggerAppDeployment: | |
| - AppSource | |
| _ContainerConfigFileContent: | |
| container: | |
| config_staging_dir: /tmp/deployment/config | |
| nodejs_log_dir: /var/log/nodejs | |
| log_group_name_prefix: /aws/elasticbeanstalk | |
| app_base_dir: /var/app | |
| app_user_home: /tmp | |
| app_deploy_dir: /var/app/current | |
| eb_bundles_url: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/ | |
| app_user: nodejs | |
| nodejs_download_url: !FindInMap | |
| - AWSEBOptions | |
| - options | |
| - NodeDownloadUrl | |
| nodejs_proxy_port: '8081' | |
| server_port: !Ref ServerPort | |
| app_staging_dir: /tmp/deployment/application | |
| nodejs_standalone_port: '8080' | |
| instance_port: !Ref InstancePort | |
| default_log_list: | |
| - /var/log/nodejs/nodejs.log | |
| - /var/log/nginx/error.log | |
| - /var/log/nginx/access.log | |
| - /var/log/httpd/error_log | |
| - /var/log/httpd/access_log | |
| xray_enabled: !Ref XRayEnabled | |
| nodejs_install_dir: /opt/elasticbeanstalk/node-install | |
| xray_rpm_location: !Join | |
| - '' | |
| - - 'https://aws-xray.' | |
| - !Ref 'AWS::Region' | |
| - .s3.amazonaws.com/daemon/ | |
| - !FindInMap | |
| - XRay | |
| - Configuration | |
| - Version | |
| - /linux/aws-xray-daemon.rpm | |
| source_bundle: /opt/elasticbeanstalk/deploy/appsource/source_bundle | |
| common_log_list: | |
| - /var/log/eb-activity.log | |
| environment_name: !Ref AWSEBEnvironmentName | |
| optionsettings: | |
| 'aws:elasticbeanstalk:container:nodejs': | |
| NodeVersion: !Ref NodeVersion | |
| GzipCompression: !Ref NodeEnableGzip | |
| NodeCommand: !Ref NodeCommand | |
| ProxyServer: !Ref ProxyServer | |
| 'aws:elasticbeanstalk:application:environment': | |
| - PORT=8081 | |
| - NPM_USE_PRODUCTION=false | |
| 'aws:elasticbeanstalk:hostmanager': | |
| LogPublicationControl: !Ref LogPublicationControl | |
| 'aws:elasticbeanstalk:container:nodejs:staticfiles': | |
| NodeStaticFiles: !Ref NodeStaticFiles | |
| system: | |
| LogPublicationControl: !Ref LogPublicationControl | |
| AWSEBAgentId: !Ref AWSEBAgentId | |
| AWSEBReferrerId: !Ref AWSEBReferrerId | |
| commands: | |
| CMD-TailLogs: | |
| persistent_configuration: true | |
| stages: | |
| - name: TailLogs | |
| actions: | |
| - name: TailLogs | |
| type: sh | |
| value: >- | |
| tailLogs.py --concatenate --conf-path | |
| '/opt/elasticbeanstalk/tasks/taillogs.d/*' | |
| --location-prefix 'resources/environments/logs/tail/' | |
| CMD-PreInit: | |
| refresh_manifest: true | |
| stages: | |
| - name: PreInitStage0 | |
| actions: | |
| - name: DownloadSourceBundle | |
| type: infra | |
| value: /opt/elasticbeanstalk/bin/download-source-bundle | |
| - name: PreInitHook | |
| type: hook | |
| value: preinit | |
| CMD-Startup: | |
| stages: | |
| - name: StartupStage0 | |
| actions: | |
| - name: HealthdLogRotation | |
| type: infra | |
| value: infra-healthd_log_rotation.rb | |
| - name: HealthdHTTPDLogging | |
| type: infra | |
| value: infra-healthd_httpd_logging.rb | |
| - name: HealthdNginxLogging | |
| type: infra | |
| value: infra-healthd_nginx_logging.rb | |
| - name: EbExtensionPreBuild | |
| type: infra | |
| value: infra-embedded_prebuild.rb | |
| - name: AppDeployPreHook | |
| type: hook | |
| value: appdeploy/pre | |
| - name: EbExtensionPostBuild | |
| type: infra | |
| value: infra-embedded_postbuild.rb | |
| - name: InfraCleanEbExtension | |
| type: infra | |
| value: infra-clean_ebextensions_dir.rb | |
| - name: StartupStage1 | |
| actions: | |
| - name: AppDeployEnactHook | |
| type: hook | |
| value: appdeploy/enact | |
| - name: AppDeployPostHook | |
| type: hook | |
| value: appdeploy/post | |
| - name: PostInitHook | |
| type: hook | |
| value: postinit | |
| CMD-PublishLogs: | |
| persistent_configuration: true | |
| stages: | |
| - name: PublishLogs | |
| actions: | |
| - name: PublishLogs | |
| type: sh | |
| value: >- | |
| publishLogs.py --de-dupe --conf-path | |
| '/opt/elasticbeanstalk/tasks/publishlogs.d/*' | |
| --location-prefix 'resources/environments/logs/publish/' | |
| --num-concurrent 2 | |
| CMD-ImmutableDeploymentFlip: | |
| persistent_configuration: true | |
| stages: | |
| - name: ImmutableDeploymentFlip | |
| actions: | |
| - name: FlipCommandRegistration | |
| type: infra | |
| value: infra-reregister-cfn-hup.rb | |
| CMD-AppDeploy: | |
| refresh_manifest: true | |
| stages: | |
| - name: AppDeployStage0 | |
| actions: | |
| - name: DownloadSourceBundle | |
| type: infra | |
| value: /opt/elasticbeanstalk/bin/download-source-bundle | |
| - name: EbExtensionPreBuild | |
| type: infra | |
| value: infra-embedded_prebuild.rb | |
| - name: AppDeployPreHook | |
| type: hook | |
| value: appdeploy/pre | |
| - name: EbExtensionPostBuild | |
| type: infra | |
| value: infra-embedded_postbuild.rb | |
| - name: InfraCleanEbextension | |
| type: infra | |
| value: infra-clean_ebextensions_dir.rb | |
| - name: AppDeployStage1 | |
| actions: | |
| - name: AppDeployEnactHook | |
| type: hook | |
| value: appdeploy/enact | |
| - name: AppDeployPostHook | |
| type: hook | |
| value: appdeploy/post | |
| CMD-BundleLogs: | |
| persistent_configuration: true | |
| stages: | |
| - name: BundleLogs | |
| actions: | |
| - name: BundleLogs | |
| type: sh | |
| value: >- | |
| bundleLogs.py --conf-path | |
| '/opt/elasticbeanstalk/tasks/bundlelogs.d/*' | |
| --location-prefix 'resources/environments/logs/bundle/' | |
| CMD-SelfStartup: | |
| stages: | |
| - name: StartupStage0 | |
| actions: | |
| - name: HealthdLogRotation | |
| type: infra | |
| value: infra-healthd_log_rotation.rb | |
| - name: HealthdHTTPDLogging | |
| type: infra | |
| value: infra-healthd_httpd_logging.rb | |
| - name: HealthdNginxLogging | |
| type: infra | |
| value: infra-healthd_nginx_logging.rb | |
| - name: EbExtensionPreBuild | |
| type: infra | |
| value: infra-embedded_prebuild.rb | |
| - name: AppDeployPreHook | |
| type: hook | |
| value: appdeploy/pre | |
| - name: EbExtensionPostBuild | |
| type: infra | |
| value: infra-embedded_postbuild.rb | |
| - name: InfraCleanEbextension | |
| type: infra | |
| value: infra-clean_ebextensions_dir.rb | |
| - name: StartupStage1 | |
| actions: | |
| - name: AppDeployEnactHook | |
| type: hook | |
| value: appdeploy/enact | |
| - name: AppDeployPostHook | |
| type: hook | |
| value: appdeploy/post | |
| - name: PostInitHook | |
| type: hook | |
| value: postinit | |
| CMD-SystemTailLogs: | |
| persistent_configuration: true | |
| stages: | |
| - name: SystemTailLogs | |
| actions: | |
| - name: SystemTailLogs | |
| type: sh | |
| value: >- | |
| tailLogs.py --concatenate --conf-path | |
| '/opt/elasticbeanstalk/tasks/systemtaillogs.d/*' | |
| --location-prefix | |
| 'resources/environments/logs/systemtail/' | |
| CMD-RestartAppServer: | |
| stages: | |
| - name: RestartAppServerStage0 | |
| actions: | |
| - name: RestartAppServerPreHook | |
| type: hook | |
| value: restartappserver/pre | |
| - name: RestartAppServerStage1 | |
| actions: | |
| - name: RestartAppServerEnactHook | |
| type: hook | |
| value: restartappserver/enact | |
| - name: RestartAppServerPostHook | |
| type: hook | |
| value: restartappserver/post | |
| CMD-ConfigDeploy: | |
| refresh_manifest: true | |
| stages: | |
| - name: ConfigDeployStage0 | |
| actions: | |
| - name: ConfigDeployPreHook | |
| type: hook | |
| value: configdeploy/pre | |
| - name: ConfigDeployStage1 | |
| actions: | |
| - name: ConfigDeployEnactHook | |
| type: hook | |
| value: configdeploy/enact | |
| - name: ConfigDeployPostHook | |
| type: hook | |
| value: configdeploy/post | |
| _LaunchS3URL: >- | |
| https://elasticbeanstalk-us-east-1.s3.amazonaws.com/environments/b8750c73-0c30-4478-827c-d23f9cdadc1b/launch_control?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190516T230556Z&X-Amz-SignedHeaders=host&X-Amz-Expires=43199&X-Amz-Credential=AKIAJOBAZGDDMSAZSDSQ%2F20190516%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=4f16eb3d9322ab345b01490beb54c20c41d7d93825557054dec3d39b1d888e53 | |
| _EBExtensionFilePaths: | |
| prebuild_0_bioapp: .ebextensions/mongo-pem.config | |
| prebuild_2_bioapp: .ebextensions/npm-install.config | |
| prebuild_1_bioapp: .ebextensions/nginx-proxy.config | |
| postbuild_0_bioapp: .ebextensions/mongo-pem.config | |
| postbuild_1_bioapp: .ebextensions/nginx-proxy.config | |
| _API: | |
| _Commands: | |
| CMD-TailLogs: | |
| _Stages: | |
| 01_enact: | |
| - InfoTask-TailLogs | |
| CMD-Startup: | |
| _RunStaged: 'true' | |
| _Stages: | |
| 01_pre: [] | |
| 02_enact: [] | |
| CMD-AppDeploy: | |
| _RunStaged: 'true' | |
| _Stages: | |
| 01_pre: [] | |
| 02_enact: [] | |
| CMD-BundleLogs: | |
| _Stages: | |
| 01_enact: | |
| - InfoTask-BundleLogs | |
| CMD-SystemTailLogs: | |
| _Stages: | |
| 01_enact: | |
| - InfoTask-SystemTailLogs | |
| CMD-PatchInstance: | |
| _Stages: | |
| 01_enact: | |
| - _Infra-PatchInstance | |
| CMD-RestartAppServer: | |
| _RunStaged: 'false' | |
| _Stages: | |
| 01_enact: [] | |
| 02_enact: [] | |
| CMD-ConfigDeploy: | |
| _RunStaged: 'true' | |
| _Stages: | |
| 01_pre: [] | |
| 02_enact: [] | |
| AvailabilityZoneCount: Any | |
| InstanceSignalURL: !Ref AWSEBInstanceLaunchWaitHandle | |
| _EnvironmentInfoTaskMapping: EnvironmentInfoTasks | |
| Type: 'AWS::AutoScaling::AutoScalingGroup' | |
| DependsOn: AWSEBBeanstalkMetadata | |
| Properties: | |
| MinSize: '1' | |
| LaunchConfigurationName: !Ref AWSEBAutoScalingLaunchConfiguration | |
| TargetGroupARNs: | |
| - !Ref AWSEBV2LoadBalancerTargetGroup | |
| AvailabilityZones: | |
| - us-east-1a | |
| - us-east-1b | |
| Cooldown: '360' | |
| VPCZoneIdentifier: | |
| - subnet-0bffb35e8032cf36e | |
| - subnet-065983558e844b027 | |
| MaxSize: '3' | |
| Tags: | |
| - Value: !Ref AWSEBEnvironmentName | |
| Key: 'elasticbeanstalk:environment-name' | |
| PropagateAtLaunch: true | |
| - Value: !Ref AWSEBEnvironmentName | |
| Key: Name | |
| PropagateAtLaunch: true | |
| - Value: !Ref AWSEBEnvironmentId | |
| Key: 'elasticbeanstalk:environment-id' | |
| PropagateAtLaunch: true | |
| AWSEBUpdateWaitConditionvUHTuB: | |
| Type: 'AWS::CloudFormation::WaitCondition' | |
| DependsOn: | |
| - AWSEBAutoScalingLaunchConfiguration | |
| - AWSEBV2LoadBalancer | |
| - AWSEBV2LoadBalancerListener | |
| - AWSEBLoadBalancerSecurityGroup | |
| - AWSEBSecurityGroup | |
| - AWSEBAutoScalingScaleDownPolicy | |
| - AWSEBInstanceLaunchWaitHandle | |
| - AWSEBAutoScalingGroup | |
| - AWSEBInstanceLaunchWaitCondition | |
| - AWSEBAutoScalingScaleUpPolicy | |
| - AWSEBCloudwatchAlarmHigh | |
| - AWSEBBeanstalkMetadata | |
| - AWSEBV2LoadBalancerTargetGroup | |
| - AWSEBCloudwatchAlarmLow | |
| Properties: | |
| Timeout: '43200' | |
| Count: '1' | |
| Handle: !Ref AWSEBUpdateWaitConditionHandlevUHTuB | |
| AWSEBInstanceLaunchWaitCondition: | |
| Type: 'AWS::CloudFormation::WaitCondition' | |
| DependsOn: AWSEBAutoScalingGroup | |
| Properties: | |
| Timeout: '900' | |
| Count: '1' | |
| Handle: !Ref AWSEBInstanceLaunchWaitHandle | |
| AWSEBAutoScalingScaleUpPolicy: | |
| Properties: | |
| ScalingAdjustment: '1' | |
| AutoScalingGroupName: !Ref AWSEBAutoScalingGroup | |
| AdjustmentType: ChangeInCapacity | |
| Type: 'AWS::AutoScaling::ScalingPolicy' | |
| AWSEBCloudwatchAlarmHigh: | |
| Properties: | |
| AlarmActions: | |
| - !Ref AWSEBAutoScalingScaleUpPolicy | |
| MetricName: NetworkOut | |
| ComparisonOperator: GreaterThanThreshold | |
| Statistic: Average | |
| AlarmDescription: ElasticBeanstalk Default Scale Up alarm | |
| Period: '300' | |
| Dimensions: | |
| - Value: !Ref AWSEBAutoScalingGroup | |
| Name: AutoScalingGroupName | |
| EvaluationPeriods: '1' | |
| Namespace: AWS/EC2 | |
| Threshold: '6000000' | |
| Type: 'AWS::CloudWatch::Alarm' | |
| AWSEBBeanstalkMetadata: | |
| Metadata: | |
| 'AWS::ElasticBeanstalk::Ext': | |
| Parameters: | |
| InstanceTypeFamily: !Ref InstanceTypeFamily | |
| LogPublicationControl: !Ref LogPublicationControl | |
| InstancePort: !Ref InstancePort | |
| XRayEnabled: !Ref XRayEnabled | |
| AWSEBEnvironmentId: !Ref AWSEBEnvironmentId | |
| HooksPkgUrl: !Ref HooksPkgUrl | |
| AWSEBEnvironmentName: !Ref AWSEBEnvironmentName | |
| AWSEBReferrerId: !Ref AWSEBReferrerId | |
| AppSource: !Ref AppSource | |
| ProxyServer: !Ref ProxyServer | |
| NodeVersion: !Ref NodeVersion | |
| NodeStaticFiles: !Ref NodeStaticFiles | |
| EnvironmentVariables: !Ref EnvironmentVariables | |
| AWSEBAgentId: !Ref AWSEBAgentId | |
| NodeEnableGzip: !Ref NodeEnableGzip | |
| InstanceType: !Ref InstanceType | |
| AWSEBEnvironmentBucket: !Ref AWSEBEnvironmentBucket | |
| ServerPort: !Ref ServerPort | |
| NodeCommand: !Ref NodeCommand | |
| 'AWS::ElasticBeanstalk::Metadata': | |
| EnvironmentId: e-dwjetygtjd | |
| RequestId: 24301ec7-782f-11e9-81f6-41719be37ff0 | |
| Version: 24301ec7-782f-11e9-81f6-41719be37ff0 | |
| EnvironmentName: Bioapp-ua | |
| DateUpdated: '2019-05-16T23:05:47' | |
| DateCreated: '2018-12-05T19:58:52' | |
| DeploymentVersion: 2 | |
| DateLastModified: '2019-05-16T23:05:56' | |
| Name: e-dwjetygtjd | |
| Type: 'AWS::CloudFormation::WaitConditionHandle' | |
| AWSEBV2LoadBalancerTargetGroup: | |
| Properties: | |
| HealthCheckIntervalSeconds: 15 | |
| VpcId: vpc-0eac56a5a6b1c0f58 | |
| HealthyThresholdCount: 3 | |
| HealthCheckPath: / | |
| Port: 80 | |
| TargetGroupAttributes: | |
| - Value: '20' | |
| Key: deregistration_delay.timeout_seconds | |
| Protocol: HTTP | |
| UnhealthyThresholdCount: 5 | |
| HealthCheckTimeoutSeconds: 5 | |
| Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' | |
| AWSEBCloudwatchAlarmLow: | |
| Properties: | |
| AlarmActions: | |
| - !Ref AWSEBAutoScalingScaleDownPolicy | |
| MetricName: NetworkOut | |
| ComparisonOperator: LessThanThreshold | |
| Statistic: Average | |
| AlarmDescription: ElasticBeanstalk Default Scale Down alarm | |
| Period: '300' | |
| Dimensions: | |
| - Value: !Ref AWSEBAutoScalingGroup | |
| Name: AutoScalingGroupName | |
| EvaluationPeriods: '1' | |
| Namespace: AWS/EC2 | |
| Threshold: '2000000' | |
| Type: 'AWS::CloudWatch::Alarm' | |
| Description: 'AWS Elastic Beanstalk environment (Name: ''Bioapp-ua'' Id: ''e-dwjetygtjd'')' | |
| Mappings: | |
| AWSEBAWSRegionArch2AMIBase: | |
| ap-south-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0912f71e06545ad88 | |
| eu-west-3: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0ebc281c20e89ba4b | |
| eu-north-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: '' | |
| DEVO: | |
| pv: '' | |
| graphics: ami-0a584ac55a7631c0c | |
| gpu: ami-8482c6ec | |
| hvm: ami-0ff8a91507f77f867 | |
| eu-west-2: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-f976839e | |
| eu-west-1: | |
| pv: '' | |
| graphics: ami-0a7c483d527806435 | |
| gpu: ami-21ce4256 | |
| hvm: ami-047bb4163c506cd98 | |
| ap-northeast-3: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0d98120a9fb693f07 | |
| ap-northeast-2: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0a10b2721688ce9d2 | |
| ap-northeast-1: | |
| pv: '' | |
| graphics: ami-053cdd503598e4a9d | |
| gpu: '' | |
| hvm: ami-06cd52961ce9f0d85 | |
| us-gov-east-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-ec56b29d | |
| sa-east-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-07b14488da8ea02a0 | |
| ca-central-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0b18956f | |
| cn-north-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0a4eaf6c4454eda75 | |
| us-gov-west-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-906cf0f1 | |
| ap-southeast-1: | |
| pv: '' | |
| graphics: ami-0be9df32ae9f92309 | |
| gpu: '' | |
| hvm: ami-08569b978cc4dfa10 | |
| ap-southeast-2: | |
| pv: '' | |
| graphics: ami-0a9ce9fecc3d1daf8 | |
| gpu: '' | |
| hvm: ami-09b42976632b27e9b | |
| eu-central-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0233214e13e500f77 | |
| us-east-1: | |
| pv: '' | |
| graphics: ami-0a584ac55a7631c0c | |
| gpu: ami-8482c6ec | |
| hvm: ami-0ff8a91507f77f867 | |
| us-east-2: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0b59bfac6be064b78 | |
| us-west-1: | |
| pv: '' | |
| graphics: ami-066ee5fd4a9ef77f1 | |
| gpu: '' | |
| hvm: ami-0bdb828fd58c52235 | |
| cn-northwest-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-6b6a7d09 | |
| us-west-2: | |
| pv: '' | |
| graphics: ami-0e09505bc235aa82d | |
| gpu: '' | |
| hvm: ami-a0cfeed8 | |
| AWSEBOptions: | |
| options: | |
| OptionDefinitionOverrideEnabled: true | |
| AWSEBHealthdGroupId: 33a7e17b-c1d3-4bc7-8170-cac8f49b75a2 | |
| NodeDownloadUrl: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/64/ | |
| HaltStartupCommandsOnFailure: 'true' | |
| SystemType: enhanced | |
| UserDataScript: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/UserDataScript.sh | |
| LaunchType: Migration | |
| ebgems: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/beanstalk-core-2.12.gem | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/beanstalk-core-healthd-1.1.gem | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/executor-1.2.gem | |
| tarballs: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/awseb-ruby-2.2.4-x86_64-20160503_1008.tar.gz | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/basehooks.tar.gz | |
| rpms: >- | |
| https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_node_js_4.0.1.201425.0/lib/aws-elasticbeanstalk-tools-1.20-1.noarch.rpm | |
| FastVersionDeployment: 'true' | |
| ServiceRole: aws-elasticbeanstalk-service-role | |
| HealthdProxyLogLocation: '' | |
| CommandBasedLeaderElection: 'true' | |
| CloudConfigOptions: |- | |
| cloud_final_modules: | |
| - [scripts-user, always] | |
| DefaultsScript: /opt/elasticbeanstalk/containerfiles/containerdefaults.py | |
| LeaderTestScript: /opt/elasticbeanstalk/bin/leader-test.sh | |
| downloadSourceBundleScriptLocation: | |
| - >- | |
| https://s3.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/eb_patching_resources/download_source_bundle.py | |
| DefaultSSHPort: '22' | |
| ProxyServer: nginx | |
| AWSEBHealthdEndpoint: '' | |
| EmbeddedConfigsetsEnabled: 'true' | |
| EBSNSTopicArn: '' | |
| guid: a5f42443f5d1 | |
| nodeploymentOnStartup: 'true' | |
| ebpatchscripturl: | |
| - >- | |
| https://s3.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/eb_patching_resources/patch_instance.py | |
| AWSEBAWSRegionArch2AMI: | |
| ap-south-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0912f71e06545ad88 | |
| eu-west-3: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0ebc281c20e89ba4b | |
| DEVO: | |
| pv: '' | |
| graphics: ami-0a584ac55a7631c0c | |
| gpu: ami-8482c6ec | |
| hvm: ami-0ff8a91507f77f867 | |
| eu-west-2: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-f976839e | |
| eu-west-1: | |
| pv: '' | |
| graphics: ami-0a7c483d527806435 | |
| gpu: ami-21ce4256 | |
| hvm: ami-047bb4163c506cd98 | |
| ap-northeast-3: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0d98120a9fb693f07 | |
| ap-northeast-2: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0a10b2721688ce9d2 | |
| ap-northeast-1: | |
| pv: '' | |
| graphics: ami-053cdd503598e4a9d | |
| gpu: '' | |
| hvm: ami-06cd52961ce9f0d85 | |
| us-gov-east-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-ec56b29d | |
| sa-east-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-07b14488da8ea02a0 | |
| ca-central-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0b18956f | |
| cn-north-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0a4eaf6c4454eda75 | |
| us-gov-west-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-906cf0f1 | |
| ap-southeast-1: | |
| pv: '' | |
| graphics: ami-0be9df32ae9f92309 | |
| gpu: '' | |
| hvm: ami-08569b978cc4dfa10 | |
| ap-southeast-2: | |
| pv: '' | |
| graphics: ami-0a9ce9fecc3d1daf8 | |
| gpu: '' | |
| hvm: ami-09b42976632b27e9b | |
| eu-central-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0233214e13e500f77 | |
| us-east-1: | |
| pv: '' | |
| graphics: ami-0a584ac55a7631c0c | |
| gpu: ami-8482c6ec | |
| hvm: ami-0b71c336a7091cfac | |
| us-east-2: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-0b59bfac6be064b78 | |
| us-west-1: | |
| pv: '' | |
| graphics: ami-066ee5fd4a9ef77f1 | |
| gpu: '' | |
| hvm: ami-0bdb828fd58c52235 | |
| cn-northwest-1: | |
| pv: '' | |
| graphics: '' | |
| gpu: '' | |
| hvm: ami-6b6a7d09 | |
| us-west-2: | |
| pv: '' | |
| graphics: ami-0e09505bc235aa82d | |
| gpu: '' | |
| hvm: ami-a0cfeed8 | |
| AWSEBAWSInstanceTypeFamily2Arch: | |
| r5d: | |
| Arch: hvm | |
| r3: | |
| Arch: hvm | |
| r4: | |
| Arch: hvm | |
| p2: | |
| Arch: hvm | |
| p3: | |
| Arch: hvm | |
| r5: | |
| Arch: hvm | |
| g3s: | |
| Arch: hvm | |
| hs1: | |
| Arch: hvm | |
| h1: | |
| Arch: hvm | |
| f1: | |
| Arch: hvm | |
| cg1: | |
| Arch: hvm | |
| z1d: | |
| Arch: hvm | |
| x1e: | |
| Arch: hvm | |
| d2: | |
| Arch: hvm | |
| cc1: | |
| Arch: hvm | |
| hi1: | |
| Arch: hvm | |
| cc2: | |
| Arch: hvm | |
| cr1: | |
| Arch: hvm | |
| m1: | |
| Arch: hvm | |
| m2: | |
| Arch: hvm | |
| m3: | |
| Arch: hvm | |
| m4: | |
| Arch: hvm | |
| m5: | |
| Arch: hvm | |
| i2: | |
| Arch: hvm | |
| i3: | |
| Arch: hvm | |
| g2: | |
| Arch: graphics | |
| g3: | |
| Arch: hvm | |
| c1: | |
| Arch: hvm | |
| c3: | |
| Arch: hvm | |
| c4: | |
| Arch: hvm | |
| c5: | |
| Arch: hvm | |
| c5d: | |
| Arch: hvm | |
| m5a: | |
| Arch: hvm | |
| x1: | |
| Arch: hvm | |
| t1: | |
| Arch: hvm | |
| m5d: | |
| Arch: hvm | |
| t2: | |
| Arch: hvm | |
| t3: | |
| Arch: hvm | |
| r5a: | |
| Arch: hvm | |
| EnvironmentInfoTasks: | |
| systemtail: | |
| LocationPrefix: resources/environments/logs/systemtail/ | |
| AutoClean: 'true' | |
| CommandName: CMD-SystemTailLogs | |
| tail: | |
| LocationPrefix: resources/environments/logs/tail/ | |
| AutoClean: 'true' | |
| CommandName: CMD-TailLogs | |
| publish: | |
| LocationPrefix: resources/environments/logs/publish/ | |
| bundle: | |
| LocationPrefix: resources/environments/logs/bundle/ | |
| AutoClean: 'true' | |
| CommandName: CMD-BundleLogs | |
| XRay: | |
| Configuration: | |
| Version: v1.0 | |
| ContainerMeta: | |
| AMIMeta: | |
| RepoReleaseVersion: '2018.03' | |
| AMIVersion: 2018.03.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment