Files
directus/docs/getting-started/installation/aws.md
2021-10-29 12:32:02 -04:00

68 lines
2.7 KiB
Markdown

# AWS
While there are many different ways to run Directus on AWS, from single EC2 instances to a full ELB load-balanced
configuration, we like the following combination of services:
- Elastic Beanstalk (EB)
- Elastic Load-Balancer (ELB)
- Elastic Compute Cloud (EC2)
- CodeDeploy
- Simple Storage Service (S3)
- Relational Database Service (RDS) (Aurora)
- CloudFront
- Route 53
## Elastic Beanstalk
Will run Directus in an autoscaling environment with a load balancer. Makes sure the instances stay alive, and will
replace individual instances in case of unexpected crashes.
We recommend setting up a repo in GitHub (or another Git provider) and configuring it using
[our manual installation flow](/getting-started/installation/manual). This allows you to later hook up the repo to your
Elastic Beanstalk instance through CodeDeploy.
See
[Deploying Node.js applications to Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html)
for more information.
Directus' configuration is all set through environment variables. For a full overview of all available environment
variables, see [Environment Variables](/configuration/config-options)
## CodeDeploy
Allows you to automatically deploy updates to your Directus instance or extensions to Elastic Beanstalk.
See
[Automatically Deploy from GitHub Using AWS CodeDeploy](https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy/)
for more information.
## Simple Storage Service (S3)
Ideal place to store files uploaded to Directus. Your bucket doesn't have to be publicly accessible to the web; Directus
will stream files from and to the bucket in its /asset endpoint.
See [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) for more information.
## Relational Database Service (RDS) (Aurora)
While you can technically use any of the SQL based databases offered in AWS, we like to use Aurora. It's auto-scaling
and use-based costs have worked out pretty well for us in the past.
## CloudFront
While it's not a technical requirement, it's not a bad idea to configure a CloudFront instance in front of your EB
environment. This protects you from DDoS attacks and allows you to cache repeated calls to assets in its CDN.
See
[Using Elastic Beanstalk with Amazon CloudFront](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudfront.html)
for more information.
## Route 53
The last piece of this puzzle is to assign a domain name to your CloudFront instance. You can use Route 53 for this
purpose.
See
[Routing traffic to an Amazon CloudFront web distribution by using your domain name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)
for more information.