Imagine that you meet with a small startup company that is in the early stages of their operations. Currently their architecture uses a LAMP stack (with MySQL), Apache and PHP all running on one desktop PC within their small office.
Like many small startups they are confident that they will be the next big thing and expect significant, rapid, yet un-quantified growth in the next few months. With this in mind, they would like you to architect their system and develop it in AWS.
Design and implement a scalable, elastic, highly available and fault tolerant architecture that allows the startup to grow organically. The architecture should specifically address the requirements/concerns listed in the description above.
AWS architecture solution for a start-up company which provides web-based services and hopes for a substantial expansion in future. The suggested architecture provides solutions using AWS and intrinsically facilitates various enterprise capabilities. In this solution, the system is divided amongst Network Tier, Web Tier, APP Tier and Data layer.
As, there is a lot of risk associated with Startups and growth is not guaranteed, cost effective solutions are required. A re-sizeable solution should be provided to match the growth. Using AWS EC2, the servers can be added and removed as per the load on servers. AWS provides pay-as-you- go pricing model which keeps maintains the flexibility of investments.
If the enterprise is not scalable in terms of infrastructure to meet the unforeseen increase in the load at real time, web-based services suffer in terms of performance during peak loads. AutoScale provisioning of AWS EC2 instances helps in adding additional web servers when required for serving the increase in loads. The instances can be deallocated when the load returns to normal.
The business user’s data is crucial and should be protected from any unauthorized access, providing security becomes a necessity for any web service provider. With the help of AWS “Security Groups”, the access rules can be configured at each level of the system. In the provided architecture, at “Security Group: Web Servers” a rule that only https/http access to your web servers is defined which provides security in deployment. A similar abstraction can be used for the Database as well by using “Security Group: DB Access”.
Being a web service-based start-up, a company frequently required changed that need to be deployed in the system. The authorities may require changes at each level. The on-demand provisioning of various resources in AWS upgrades the turnaround time incurred in deploying and testing the changes at each stage such that a stable release of product is ensured in the production.
The proposed Architecture solution is shown in Fig 1. The solution is divided among various layers at which a specific task and responsibility is managed. Such a classification will help the company in managing the security, access rights, and ownership of the works assigned to the staff as they grow organizationally.
Fig. 1: AWS Architecture Solution for Start-UP
A virtual firewall is created by using a VPC security group. When an instance is launched, one or more security groups are associated with that instance. The rules can be added to every security group that allow traffic to or from its associated instances. Subnets are configured to route internet-bound traffic using the NAT Gateway so that resources in the Subnet can connect to the Internet. In the proposed solutions, two public subnets are created.
S3 Storage is used for saving cost as some data needed to be stored for the longer span of time. And Elastic Block Storage is used for other purposes.
The other Key Components based on administration skill sets can be classified as:
1. Network Layer:
a) It manages internal/ external network security and configurations:
AWS Route 53: DNS domain name resolution service implemented, which is connected to CloudFront endpoint through CNAME.
Multi-Availability Zones: The deployment of multiple availability zones while creating Amazon RDS has enhanced the availability and durability for Database (DB) instances, making them a best fit for production database workloads. When a Multi- AZ DB instance is provisioned, Amazon RDS automatically creates a primary DB instance and synchronously replicates the data to a standby instance in other Availability Zone (AZ).
Security Groups: These are managed by using IAM services such as IAM groups, IAM roles.
b) It handles the Responsibility of providing access to the web site round the globe and providing load balancer at every requisite level such as App server and Web serve
CloudFront: To realize the global content publishing network, user requests will be directed to the node with the lowest delay to provide the best performance of the delivered content. It is necessary to set CloudFront to set the access source as the ELB node of the application.
2. Web Server Tier:
a) Web Servers are managed using:
AWS EC2: Amazon EC2 auto scaling can be used to ensure the availability of EC2 queue and automatically expand and reduce the queue according to its needs, so as to maximize performance and reduce costs. At the same time, the instance type can use on-demand instances, the actual consumption of computing capacity to pay for expenses, rather than reserved instances.
AMI images: AMI of the instances are saved so that the new instances with similar configuration can be created when required.
b) Handles Responsibility for maintaining and configuring the web server instances for managing the web reques
App Server Tier:
a) The App Servers are managed using:
AWS EC2: Amazon EC2 provides a resizable compute capacity to handle the app loads.
BeanStalk: It is an easy-to-use service for deploying and scaling web applications and services developed with Apache and PhP
b) Handles the Responsibility for maintaining and configuring the App server instances for managing the application requests.
Auto scaling: It integrates with ELB to achieve the availability and scalability of application services. It attaches ELB to the existing auto scaling group to achieve load balancing. It can automatically register instances in the group and assign incoming requests to these instances. In terms of availability, if there is a service failure and downtime, auto scaling can quickly find the problem machine and start a new machine to continue service. In terms of scalability, auto scaling can be used to set the min / max / parameter to automatically expand the number of EC2 service instances. Each instance in the autoscaling group is in a different availability zone to prevent failure in the availability zone.
CloudFront, the edge sites can cache static data and speed up the web services allocated to end users.
4. Database Tier:
a) Managing Data and Database Servers using:
AWS RDS: A high availability database usually contains two database instances: a primary database and a standby database. When all requests are sent to the primary database, the RDS instance is responsible for responding to the server requests and completing the data read and write operations. Synchronous replication of data between primary and standby databases. If the primary database is unavailable due to hardware or network failure, RDS will automatically detect the failure, start the failover process, the standby database will become the primary database, and DNS will also be automatically updated to achieve rapid failover
IOPS Volumes: For a good performance, fast memory access is required. IOPS is used in proposed solution to ensure the fast access in handling OLTP workloads.
ElastiCache: It is a fully managed in-memory data store and cache service by Amazon Web Services. The service improves the performance of web applications by retrieving information from managed in-memory caches, instead of relying entirely on slower disk-based databases. The provided solution used ElasticCache Redis to improve the reliability of production deployment, relieve the pressure of front-end requests on database access, reduce latency, and it plays a role in disaster prevention and mitigation. The Redis replication group consists of one application readable and written primary node and two read-only replica nodes. When data is written to the primary node, it is also updated asynchronously on the read-only replica node. This can effectively prevent node failure and deploy a cluster service in each of the two zones, mainly to avoid zone failure.
AWS Aurora/MySQL: MySQL is used using AWS Aurora to combine the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.
b) Handles Responsibility for maintaining and configuring the backend database access, performance, security, backup and availability
The proposed architecture uses IAM to define different permissions of users, roles, and groups, and granting various permissions to different people for different resources. For example, for some users, full access to Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon S3), Amazon redshift, Amazon DynamoDB, and other AWS services is allowed. While for other users, the read-only access to some S3 buckets, or access to some EC2 instances, or access to the billing information without access to any other content is allowed only. In the provided architecture a single Key-Value pair is used for all the services.
Following were the two concerns:
a) They would like the developed application to be able to scale up on dema With uncertainty around when and how much the demand would be, they are concerned about buying too much infrastructure too soon or not enough infrastructure.
Solution: EC2 can distribute traffic to multiple back-end application instances through elastic load balancing, and automatically expand according to the traffic load. It can also reduce the pressure of database reading by using elastic cache to cache application data. By providing read and write access separately, the data query can be flexibly extended to deal with the database load of a large number of read operations.
b) They want to cater for disaster recovery to ensure high performance and throughput of their application
Solution: AWS adopt the Amazon EC2 instance recovery mechanism. If there is a problem with the instance, the replacement instance can be started quickly in a predictable way. Amazon RDS uses a highly available database composed of a primary database and a standby database. Usually, the standby instance is also stored in another availability zone. Amazon RDS will synchronously copy the data to the standby instance in another availability zone (AZ), and set the database snapshot at the same time. In addition, in case of hardware failure, Amazon RDS will automatically replace the computing instance used to support deployment. Amazon CloudWatch alerts can be used to monitor Amazon EC2 instances. If the instance is damaged due to an underlying hardware failure or problem that requires AWS participation to fix, the instance can be restored automatically. The system can monitor the server health by using CloudWatch to monitor the memory utilization, processor utilization, cache hit rate and other indicators of the whole system.
Remember, at the center of any academic work, lies clarity and evidence. Should you need further assistance, do look up to our Computer Science Assignment Help
5 Stars to their Experts for my Assignment Assistance.
There experts have good understanding and knowledge of university guidelines. So, its better if you take their Assistance rather than doing the assignments on your own.
What you will benefit from their service -
I saved my Time (which I utilized for my exam studies) & Money, and my grades were HD (better than my last assignments done by me)
What you will lose using this service -
Unfortunately, i had only 36 hours to complete my assignment when I realized that it's better to focus on exams and pass this to some experts, and then I came across this website.
Kudos Guys!Jacob "
Proofreading and Editing$9.00Per Page
Consultation with Expert$35.00Per Hour
Live Session 1-on-1$40.00Per 30 min.
Doing your Assignment with our resources is simple, take Expert assistance to ensure HD Grades. Here you Go....