Disclaimer: This article is only intended as an architecture solution for migrate a LAMP Stack Website to cloud for a small start-up company, and ready to response with a significant user access growth in the near future.
The target audience for this document spans multiple roles within the organization, including web server-related technical architects, project managers, and technical decision makers, etc.
The requirement analysis and categorization:
According to most of customer’s concern and as well as the requirement, we can category them as different type and analysis the AWS’s serviceability to meet those requirements as below:
|Customer’s concern and requirements
|Scaling to meet the demand, but with uncertainty around when and how much this demand will be they are very concerned about buying too much infrastructure too soon or not enough too late.
|Their lack of provision for Disaster Recovery.
|Their ability to configure their database and data access layer for high performance and throughput.
|Making the user experience in the browser very low latency even though a large portion of their user base will be from far away.
|Effective distribution of load.
|A self-healing infrastructure that recovers from failed service instances.
|Security of data at rest and in transit.
|Securing access to the environment as the delivery team expands.
|An archival strategy for inactive objects greater than 6 months.
|Ability to easily manage and replicate multiple environments based on their blueprint architecture.
Why use AWS Web Hosting?
Amazon Web Services offers cloud web hosting solutions that provide businesses, non-profits, and start-up companies with low-cost ways to deliver their websites and web applications. Whether you’re looking for a marketing, rich-media, or ecommerce website, AWS offers a wide-range of website hosting options, AWS will help to select the right solution for the growth in near future.
Why use AWS for Enterprise Web Server?
Enterprise websites include very popular marketing and media sites, as well as social, travel, and other application-heavy websites. For example, Lamborghini, Coursera, and Nordstrom use AWS to host their websites. Enterprise websites need to dynamically scale resources and be highly available to support the most demanding and highly trafficked websites.
Enterprise websites use multiple AWS services and often span multiple data centers (called Availability Zones). Enterprise websites built on AWS provide high levels of availability, scalability, and performance, but require higher amounts of management and administration than static or simple websites.
Use Amazon Elastic Cloud Computing (Amazon EC2) to provide:
The provision for Disaster Recovery Failure Design: your website can use multiple web servers across at least two data centers.
The Scalability to meet the demand: your Website can scale using load balancing, auto scaling, or external databases as business need.
High performance experience: AWS EC2 can provide your Websites sustained high CPU utilization.
Maximum control and flexibility for your web server configuration and management.
AWS Cloud Architecture for a start-up company’s Web Server
The High-Level 3-layer components according to Web Service Architecture:
- User Access Layer Manages external/internal network configurations and security via AWS Route 53, ELB, Multi−Availability Zones, Elastic IPs, Security Groups, etc. Ensuring access to the web site from around the world and load balancing them at every required level say at Web server and App server.
- Web Service Layer for configuring and maintaining web server instances to handle the web requests. with Elastic Load Balancing for performance of load and Auto Scaling Up/Down by create/stop another instance as business need, and also support Multi-Region Disaster Recovery.
- Database Layer by Manages/Configuration Database Servers and Data via AWS RDS, by Disaster Recovery by Multi-Region Deploy DB and keep database synchronous between regions.
AWS Failure Design for a start-up company’s Web Server
As the importance for user’s failure concern, the further Failure Design for the start-up company’s Web Server considering below AWS features:
- Elastic IP address (EIP) is associated with your account rather than instance. Even in the event of stop/start of the instance of the instance failure and you move to new instance you can still have the same public IP address. Elastic IP can mask the failure of an instance or software by rapidly remapping the address to another instance.
- Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS. You can use Amazon CloudWatch to collect and track metrics, collect and monitor log files, set alarms, and automatically react to changes in your AWS resources.
- Amazon Web Services offers a complete set of cloud storage services for archiving. You can choose Amazon Glacier for affordable, non-time sensitive cloud storage, or Amazon Simple Storage Service (S3) for faster storage, depending on your needs. With AWS Storage Gateway and our solution provider ecosystem, you can build a comprehensive, storage solution.
AWS Security Design for a start-up company’s Web Server
Build a “secure environment” that fits your requirements and implementation for a start-up company’s Web Server:
- AWS Identity and Access Management (IAM) enables you to manage access to AWS services and resources securely. Using IAM, you can create and manage AWS users and groups, and use permissions to allow and deny their access to AWS resources. IAM is a feature of your AWS account offered at no additional charge. You will be charged only for use of other AWS services by your users.
- AWS Multi-Factor Authentication (MFA) is the practice or requiring two or more forms of authentication to protect AWS resources. It is an added security feature available through Amazon Identity and Access Management (IAM) that strengthens username and password credentials.
- AWS security groups (SGs) are associated with EC2 instances and provide security at the protocol and port access level. Each security group – working much the same way as a firewall – contains a set of rules that filter data transit traffic coming into and out of an EC2 instance.
AWS Performance Design for the start-up company’s Web Server
AWS enables you to increase the speed of research and reduce time-to-results by running High Performance Computing in the cloud and scaling to larger numbers of parallel tasks than would be practical in most on-premises environments:
- AWS Vertical Scaling, for the initial user phase, a single EC2 instance would be sufficient, e.g. t2.micro/t2.nano. The one instance would run the entire web server. The original architecture is fine until your traffic ramps up. Here you can scale vertically by increasing the capacity of your EC2 instance to address the growing demands of the application when the users grow up. Vertical scaling means that you scale by adding more power (CPU, RAM) to an existing machine. AWS provides instances up to 488 GB of RAM or 128 virtual cores.
- AWS Cluster Compute Instances for Amazon EC2 is a new instance type specifically designed for high-performance computing (HPC) applications and other demanding network-bound applications. Customers with complex computational workloads such as tightly coupled parallel processes, or with applications sensitive to network performance, can now achieve the same high compute and network performance provided by custom-built infrastructure while benefiting from the elasticity, flexibility and cost advantages of Amazon EC2.
- Amazon ElastiCache offers fully managed Redis and Memcached. Seamlessly deploy, operate, and scale popular open source compatible in-memory data stores. Build data-intensive apps or improve the performance of your existing service by retrieving data from high throughput and low latency in-memory data stores.
- Amazon CloudFront is a global content delivery network (CDN) service that accelerates delivery of your websites with better user experience, APIs, video content or other web assets. It integrates with other Amazon Web Services products to give developers and businesses an easy way to accelerate content to end users with no minimum usage commitments.
Conclusion: With all of the above AWS features and capabilities the proposed architecture takes the start−up company to the cloud with a cost effective, highly scalable, easy to use, high availability and fault−tolerant infrastructure.