AWS Elastic Beanstalk: Difference between revisions
| Line 2: | Line 2: | ||
=== Web application configuration files === | === Web application configuration files === | ||
==== AWS eb cli configuration === | |||
Configuration is stored in `[project_root]/.elasticbeanstalk/config.yml`. | Configuration is stored in `[project_root]/.elasticbeanstalk/config.yml`. | ||
| Line 10: | Line 12: | ||
By default, `eb deploy` will upload all files in the git repo. | By default, `eb deploy` will upload all files in the git repo. | ||
==== Server configuration ==== | |||
`.config` files in `.ebextensions/` contain server configuration directives. Files are processed in alphabetical order. <ref>[https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html Advanced environment customization with configuration files (.ebextensions)] - AWS documentation</ref> | |||
==== Uploading a distribution outside of git ==== | ==== Uploading a distribution outside of git ==== | ||
Revision as of 14:58, 6 June 2020
Configuration
Web application configuration files
= AWS eb cli configuration
Configuration is stored in [project_root]/.elasticbeanstalk/config.yml.
This file should not be included in git repo.
The Elastic Beanstalk (EBS) application and environment names are specified in this yaml file. This is determines these properties for the AWS eb cli.
By default, eb deploy will upload all files in the git repo.
Server configuration
.config files in .ebextensions/ contain server configuration directives. Files are processed in alphabetical order. [1]
Uploading a distribution outside of git
To upload another installation, e.g. wiki files, specify a zip archive to upload to the server in .elasticbeanstalk/config.yml:
deploy:
artifact: name_of_archive.zip
eb deploy will look in the project root for the zip file.
If it is necessary to upload .ebextensions config files, these files must be added to the root of the zipped distribution.
Security rules
AWS Console > EC2 > instances > instance linked to EBS environment > details > click on security group > inbound rules tab
Open up the SSH port (22) to specific public IP of the local development LAN. e.g. XX.XX.XX.XX/32 where XX.XX.XX.XX is the IPv4 public address.
Open up the HTTPS port (443) to all IP addresses, e.g. 0.0.0.0/0 and ::/0
.ebextensions config file. See Open the HTTPS port for Let's Encrypt certificates.Web app environment variables
Any variables needed by the app can be stored here. E.g. LETSENCRYPT_DOMAIN for the purposes of installing a security certificate, or RDS connection properties.
- AWS Management Console > Elastic Beanstalk > web app environment > Configuration > Software Group > Edit
- Scroll down to Environment Properties at the bottom
- Enter key/value pairs as needed
These key/value pairs can be created in an .ebextensions config file, but should be created manually if they contain sensitive information.
Upgrading the platform of an Elastic Beanstalk instance
- AWS Management Console > Compute > Elastic Beanstalk
- Click on an EB instance
- Under Platform on the left click the Change button.
- Select the new platform from the dropdown and click Save
Troubleshooting
403 HTTP error
Receiving a 403 error when attempting to load the hosted site indicates that something unintended was uploaded to the root of the web directory.
SSH to the server to confirm the content of that directory, e.g. /var/www/html/.
- ↑ Advanced environment customization with configuration files (.ebextensions) - AWS documentation