AWS Web ServicesAmazon Web Services Supporting Website |
Summary
The first release of the architecture of AWS web services that underlies the website.
Description
-
VPCAmazon service that allows you to control the virtual networking environment.
The VPCAmazon service that allows you to control the virtual networking environment. into which the resources were launched is described in Infrastructure 1: Custom VPCCreation of the VPC into which the resources to support the website and related data analysis will be launched.. This includes Subnets, Route Tables, NACLs and Security Groups and well as the Internet Gateway and S3Amazon's highly durable, highly available object storage. End Point.
-
RDSAmazon service for launching and managing relational databases. Database
First, a subnet group with name tag "tbd-db-subnet-group" was created that contained the three private subnets in the tbdVPCAmazon service that allows you to control the virtual networking environment. (tbdSubnet_Private_A, tbdSubnet_Private_B and tbdSubnet_Private_C).
A new RDSAmazon service for launching and managing relational databases. Aurora database was created using the MySQLRelational database used to hold website content and search data. 5.6-compatible edition. The serverless engine was selected to reduce cost.
Attribute Value Engine Aurora Edition MySQLRelational database used to hold website content and search data. 5.6-compatible Capacity Type Serverless Cluster Identifier tbd-db-cluster Capacity (Default) 2 - 64 ACU VPCAmazon service that allows you to control the virtual networking environment. tbdVPCAmazon service that allows you to control the virtual networking environment. Subnet Group tbd-db-subnet-group Security Group tbdSecurity_Database
After the EC2Amazon service that allows you to provision and configure your own servers. web server was launched, it was used to connect to the RDSAmazon service for launching and managing relational databases. instance and the "tbd" schema and "webuser" user were created. Later the tbd schema was initialized by loading an export from the development environment. The plan is to use PhinxA PHP library to automate the implementation of database changes. to migrate future changes.
-
EC2Amazon service that allows you to provision and configure your own servers. Webserver
A key pair was generated, saved to a safe location and used to launch an EC2Amazon service that allows you to provision and configure your own servers. instance with the below attributes. Once launched an Elastic IP Address was generated and associated with the instance.
(Eventually, this implementation will be revised to use autoscaling and a load balancer, still hammering out the user data scripts.)
Attribute Value Amazon Machine Image (AMI) Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type Instance Type t3.small Network tbdVPCAmazon service that allows you to control the virtual networking environment. Subnet tbdSubnet_Public_A Name tbd-webserver Security Group tbdSecurity_Webserver
I followed the instructions on "Tutorial: Install a LAMP Web Server with the Amazon Linux AMI" to install the LAMP stack, configure the web server to automatical start on system reboot, set up the users and file permissions and secure the local MySQLRelational database used to hold website content and search data. database.
The httpd.conf file was modified to change the DocumentRoot from "/var/www/html" to "var/www/html/public". In addition, the following environmental variables were created:
Variable Value APP_STAGE PRODUCTION RDSAmazon service for launching and managing relational databases._HOSTNAME tbd-db.cluster-{{aws-generated-sequence}}.us-east-1.rds.amazonaws.com RDSAmazon service for launching and managing relational databases._DB_NAME tbd RDSAmazon service for launching and managing relational databases._USERNAME webuser RDSAmazon service for launching and managing relational databases._PASSWORD webuser-password SHOW_ERRORS false SITE_ROOT /var/www/html
After this, the code and resources were copied to the server.
-
Route53Amazon service for purchasing domains and managing associated DNS entries.
The domain name trialbydata.com was bought at another domain provider and later transferred to Route53Amazon service for purchasing domains and managing associated DNS entries.. (It would have been much simpler if it had been bought using Route53Amazon service for purchasing domains and managing associated DNS entries. in the first place.) The DNS entries were created to route mail via SES to WorkMailAmazon managed email service that allows access via multiple client applications. as well as entries to route website requests to the EC2Amazon service that allows you to provision and configure your own servers. web server.
-
WorkMailAmazon managed email service that allows access via multiple client applications.
The WorkMailAmazon managed email service that allows access via multiple client applications. console is designed to walk you through the process so it is fairly straightforward. You only have to provide an organization name (in my case "trialbydata"). If you have purchased a domain name (e.g. "www.trialbydata.com") that you want to use for your email addresses then you need to associate this domain with your organization. The most difficult part was creating the DNS entries in Route53Amazon service for purchasing domains and managing associated DNS entries. but these entries are provided in the WorkMailAmazon managed email service that allows access via multiple client applications. console and can be copied and pasted.
-
S3Amazon's highly durable, highly available object storage. Bucket
The S3Amazon's highly durable, highly available object storage. bucket named "trialbydata" contains the scripts and resources used by the website. The plan is to use this bucket to automate the launching and initialization of the EC2Amazon service that allows you to provision and configure your own servers. servers via the user data scripts in order to take advantage of autoscaling. For now, the resources were manually copied to the server.