Ohlone College initiated Infiniti’s services to plan and develop their cloud architecture environment, in an effort to migrate their primary Drupal website and their on-premise environment to the cloud. Ohlone desired to be fully operational in the cloud, and needed assistance in developing their cloud environment
Infiniti’s DevOps team created three Elastic Beanstalk environments for Ohlone college: Production, Staging, and Development. Infiniti’s DevOps team has chosen the AWS Elastic Beanstalk service to lower the administrative burden on the Ohlone staff. Elastic Beanstalk is self-managed platform-as-a-service architecture that implements the application release process into AWS architecture. It is a leading edge example of using automation tools to follow DevOps best practices and will ensure that Ohlone’s webservers are highly available and secure and are automatically with the latest application code following Continuous Integration/Continuous deployment (CI/CD) techniques.
The database for each environment is stored in Amazon RDS. RDS is another managed service from AWS, this will ensure the databases are updated and maintained while sustaining a secure connection to the webservers. Daily backups of the databases also allow for point-in-time restore if needed. RDS eliminates the need for Ohlone to perform many database administration tasks (e.g. implementing patches).
Drupal code is maintained in an Amazon Codecommit repository. Each Elastic Beanstalk environment is connected to the corresponding branch (Master, Staging, and Dev) in Amazon Codecommit via Amazon Codepipeline. When changes are pushed to a specific branch, Amazon Codepipeline will identify the change and update the Elastic Beanstalk environment.
The public and private file system (sites/default/files and sites/default/files/files-private) for each environment is stored in Amazon EFS. A mount script, located in the .ebextensions folder of the Codecommit repository, will automatically attach a filesystem with all images and documents for the public and private files. The script will also link the local filesystem /files to sites/default. In the event of autoscaling, failure or termination to the instance, a new webserver will automatically boot with EFS attached and linked to the files folder and serve the web images. Images will be saved in the same EFS for each environment, however, they will not appear in Drupal until there is a database import from the environment that has the changes desired. For example, if changes are made in Dev and images are uploaded, they will be saved onto the EFS. In order to see those changes and uploaded images in Staging, a database export of Dev and a database import into Staging is required (refer to Section 7).
An SSL certificate was provisioned with Amazon’s Certificate Manager and implemented on each environments ELB to create a secure connection. Each Elastic Beanstalk configuration has a secure listener and HTTPS rewrites were pushed to the webservers via .htaccess in the Codecommit repository.
Lastly, DNS is managed by Amazon Route 53. Each environment has an alias record that points the top level domain or subdomain.
In an effort to implement AWS for Ohlone Infiniti developed a plan to make Ohlone fully operational in AWS. Infiniti constructed a cloud architecture strategy that documented recommendations architectural buildout in AWS and the strategy to migrate applications and websites after the AWS infrastructure has been developed and deployed. Infiniti implemented an application deployment for this sophisticated Drupal application. Drupal code is maintained in an Amazon Codecommit repository. Each Elastic Beanstalk environment is connected to the corresponding branch (Master, Staging, and Dev) in Amazon Codecommit via Amazon Codepipeline. When changes are pushed to a specific branch, Amazon Codepipeline will identify the change and update the Elastic Beanstalk environment
Outcomes of Project
Infiniti delivered and AWS solution that included a sophisticated multi-AZ, multiple account, multiple VPC architecture including auto-scaling, load balancers. Infiniti delivered a fully automated Continuous Integration & Continuous Delivery pipeline for multiple applications within AWS using AWS native services.
This AWS environment and the AWS pipeline allowed Ohlone to go from having slow, manual application deployments to Zero downtime deployments. Ohlone’s website also became much more robust and scalable once it was deployed in to AWS, going from having no scaling to having auto scaling.
AWS Services used as part of solution:
- Active Directory
- Cloud Watch
- Elastic Beanstalk
Partner products & services utilized: