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