You are on page 1of 14

Ekeeko

Infrastructure
Implementation
v1.0

Author: Daman Vir Singh Grewal


Creation Date: Wednesday, 8 April 2015
Last Revision Date: Wednesday, 8 April 2015
Prepared for: Ekeeko

CloudCover
A SERVICE OF ACTIVELEMENT SOFTWARE PVT. LTD.
501, Zero-One,
Mundhwa Rd,Koregaon Park Annexe
Mundhwa,
Pune, Maharashtra 411036
T +020 3250 6660

cloud
cover

Intro to AWS Services

EC2

RDS

S3

Cloudfront

Requirements

Considerations/Assumptions/Suggestions

Other Suggestions

Architecture Diagram

Explanation of Components

Pricing of Components

Cost Estimation
Linux with DynamoDB on RDS (LI) (with No UpFront Reservations)

Cost Estimation
Linux with DynamoDB on RDS (LI) (with 1-year Partial-Upfront Reservations)

9
9

11
11

Deployment & Consultancy

13

Support

14

AWS Implementation : Ekeeko

cloud
cover

Intro to AWS Services


EC2
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute
capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.
Amazon EC2s simple web service interface allows you to obtain and configure capacity with
minimal friction. It provides you with complete control of your computing resources and lets you run
on Amazons proven computing environment. Amazon EC2 reduces the time required to obtain
and boot new server instances to minutes, allowing you to quickly scale capacity, both up and
down, as your computing requirements change. Amazon EC2 changes the economics of
computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides
developers the tools to build failure resilient applications and isolate themselves from common
failure scenarios.

RDS
Amazon Relational Database Service (Amazon RDS) is a web service that makes it easy to set up,
operate, and scale a relational database in the cloud. It provides cost-efficient and resizable
capacity while managing time-consuming database management tasks, freeing you up to focus on
your applications and business.
Amazon RDS gives you online access to the capabilities of a MySQL, Oracle, Microsoft SQL
Server, PostgreSQL, or Amazon Aurora relational database management system. This means that
the code, applications, and tools you already use today with your existing databases can be used
with Amazon RDS. Amazon RDS automatically patches the database software and backs up your
database, storing the backups for a user-defined retention period and enabling point-in-time
recovery. You benefit from the flexibility of being able to scale the compute resources or storage
capacity associated with your Database Instance (DB Instance) via a single API call.
Database Instances using Amazon RDS's MySQL, Oracle, SQL Server, and PostgreSQL engines
can be provisioned with General Purpose (SSD) Storage, Provisioned IOPS (SSD) Storage, or
Magnetic Storage. Database Instances using the Amazon Aurora engine employ a fault-tolerant,
self-healing SSD-backed virtualized storage layer purpose-built for database workloads.

AWS Implementation : Ekeeko

cloud
cover

In addition, Amazon RDS makes it easy to use replication to enhance availability and reliability for
production workloads. Using the Multi-AZ deployment option you can run mission critical workloads
with high availability and built-in automated fail-over from your primary database to a
synchronously replicated secondary database in case of a failure. Using Read Replicas, Amazon
RDS for MySQL, PostgreSQL, and Amazon Aurora also enable you to scale out beyond the
capacity of a single database deployment for read-heavy database workloads. As with all Amazon
Web Services, there are no up-front investments required, and you pay only for the resources you
use.

S3
Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure,
durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web services
interface to store and retrieve any amount of data from anywhere on the web. With Amazon S3,
you pay only for the storage you actually use. There is no minimum fee and no setup cost.
Amazon S3 can be used alone or together with other AWS services such as Amazon Elastic
Compute Cloud (Amazon EC2), Amazon Elastic Block Store (Amazon EBS), and Amazon Glacier,
as well as third party storage repositories and gateways. Amazon S3 provides cost-effective object
storage for a wide variety of use cases including cloud applications, content distribution, backup
and archiving, disaster recovery, and big data analytics.

Cloudfront
Amazon CloudFront is a content delivery web service. It integrates with other Amazon Web
Services products to give developers and businesses an easy way to distribute content to end
users with low latency, high data transfer speeds, and no minimum usage commitments.
Amazon CloudFront can be used to deliver your entire website, including dynamic, static,
streaming, and interactive content using a global network of edge locations. Requests for your
content are automatically routed to the nearest edge location, so content is delivered with the best
possible performance. Amazon CloudFront is optimised to work with other Amazon Web Services,
like Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon
EC2), Amazon Elastic Load Balancing, and Amazon Route 53. Amazon CloudFront also works
seamlessly with any non-AWS origin server, which stores the original, definitive versions of your
files. Like other Amazon Web Services products, there are no long-term contracts or minimum
monthly usage commitments for using Amazon CloudFront you pay only for as much or as little
content as you actually deliver through the content delivery service.

AWS Implementation : Ekeeko

cloud
cover

Requirements
1. Based on Details provided by customer, corresponding prices needs to be shared.
2. Application Platform : YII Framework PHP
Database Required : MySQL
Current DB Sizing : 5 GB [Expected to increase by 3 GB per month]
3. Disaster Recovery - Not Required for 1st Year.

Considerations/Assumptions/Suggestions
Instance Sizing
Based on requirements the following Table Summarises the instance sizing for deploying
Customers Application and DB :

Service

Number of
Instances

Instance Type

AWS
Configuration

OS/DB

EC2

2 m3.large

2 vCPU, 7.5 GB
RAM

Linux

RDS

1 db.m3.medium

1 vCPU, 3.7 GB
RAM

MySQL

Note:
In the document, the cost estimation for No-upfront Reserved and 1 year- partial Upfront reserved
is mentioned . No-upfront reserved gives you a total saving of 30% and 1-year Partial upfront
reversed gives a total saving of 31%

Component Integration
For a Loosely Coupled Architecture, which gives fine grained control over the components and is
extremely beneficial in a High Availability Scenario, the integration between components will be
done through public or private endpoints and not the general localhost based setups. Other
components in play will also be integrated in the same manner.

AWS Implementation : Ekeeko

cloud
cover

Traffic Expectations
According to User Concurrency defined by Customer, AutoScaling is suggested to be
implemented. AutoScaling will help us to Scale Up the Infrastructure Automatically when the load
increases and Scale it down when the load decreases. This assumes the Application will be
equipped to handle sessions Out of the Box and the application components are fairly static in
nature.

Other Suggestions
Performance Enhancement
To achieve best performance out of the Infrastructure, it is recommended to deploy the
components in the suggested manner i.e. as per the Architecture Diagram that follows the end of
this section. AutoScaling has already been suggested for Managing the Load.

Cost Savings
As per requirements, the application is running on a YII Framework PHP with MySQL as the
Database. Using a Linux Stack with MySQL components can be set as a Roadmap and a
comparative Cost Estimate will be shared within this document.

AWS Implementation : Ekeeko

cloud
cover

Architecture Diagram

Explanation of Components
EC2 - Elastic Compute Cloud
This is the compute capacity i.e. Servers which will host the application. The Architecture Diagram
above suggests hosting the application data devoid of the DB in EC2 to ensure a loosely coupled
setup. Autoscaling will be setup on the instances to ensure availability at times of High Traffic.

ELB - Elastic Load Balancer


This will serve as Single Endpoint proxy for all the requests that land on the domain or component
to forward the requests to the appropriate destination, in this case, our EC2 Servers.

AWS Implementation : Ekeeko

cloud
cover

RDS - Relational Database Service


RDS will host the DB and will be accessible through an endpoint which can be shared with the
application and the DBAs as per requirement. We will create a Master Slave Model to ensure High
Availability.

Dynamo DB
This is a Fully Managed NoSQL Database service which can uses Key Pair values. This can
essentially be used as an Out of the Box Session Management Store for your Application.

S3 and Cloudfront
It is really efficient and cheap to store any and all Static Data and Backup Files on Amazons
Object Based Storage called Simple Storage Service (S3) and we can use Cloudfront for Content
Delivery and as a Cache Front to manage availability as well.

Route 53
Route 53 is AWS own DNS Management Service which employs High Availability DNS Services at
its backend to ensure availability on a Domain Level. It also helps us have a fine grained control
over AWS Components.

Security Groups
Security Groups help us control access to ports for the various components/instances/servers that
we deploy on AWS. We can open specific ports to IP addresses and Subnet Ranges of our choice.

VPC - Virtual Private Cloud


AWS VPC serves as an Isolated Cloud Environment within the same. We can create Private and
Public Subnets to ensure that only relevant components are exposed to the outside world and all
other components stay within the Customers control.

Pricing of Components
The next section specifies the recommended Cost Estimation for the Infrastructure currently
suggested. This considers a No-Upfront reserved as well as 1-year Partial upfront Estimation.

AWS Implementation : Ekeeko

cloud
cover

Cost Estimation
Linux with DynamoDB on RDS (LI) (with No UpFront Reservations)
Cost estimation for AWS Infrastructure (Monthly)
Amazon EC2 Service (Singapore)

US$

243.14

US$

0.24

US$

568.22

US$

0.90

US$

0.00

US$

1.20

US$

2.28

TOTAL (USD)

US$

325.98

TOTAL (INR)

Compute

US$

198.56

EBS Volumes

US$

24.00

Elastic Load Balancer

US$

20.50

Data Processed by ELB

US$

0.08

Storage

US$

0.15

Put/List Requests

US$

0.05

Other Requests

US$

0.04

Amazon S3 Service (Singapore)

AWS RDS ( Singapore)


DB Instances

US$

64.42

Reserved DB instance (one-time fee)

US$

490.00

Storage

US$

13.80

Data Out

US$

0.85

Requests

US$

0.05

US$

0.00

Amazon CloudFront Service

AWS Dynamo DB (Singapore)


DataSet + Reads/Writes
AWS Route 53 (Singapore)
Hosted Zones and DNS Queries

US$

1.20

US$

2.28

Amazon Data Transfer


Data Out

20,210.76

AWS Simple Calculator Link: Ekeeko - AWS - 1 Year No Upfront (LI)

AWS Implementation : Ekeeko

cloud
cover

1 Year No-Upfront
Monthly Cost

US$

325.98

Amazon RDS Reservations (Singapore)

US$

490.00

TOTAL(USD)

US$

815.98

TOTAL (INR)

Effective Monthly Cost (USD)

US$

Effective Monthly Cost (INR)

AWS Implementation : Ekeeko

50,590.76

366.81
22,742.43

10

cloud
cover

Cost Estimation
Linux with DynamoDB on RDS (LI) (with 1-year Partial-Upfront Reservations)
Cost estimation for AWS Infrastructure (Monthly)
Amazon EC2 Service (Singapore)

US$

1,117.10

US$

0.24

US$

568.22

US$

0.90

US$

0.00

US$

1.20

US$

2.28

TOTAL (USD)

US$

217.94

TOTAL (INR)

Compute

US$

90.52

EBS Volumes

US$

24.00

Reserved instance (one-time fee)

US$

982.00

Elastic Load Balancer

US$

20.50

Data Processed by ELB

US$

0.08

Amazon S3 Service (Singapore)


Storage

US$

0.15

Put/List Requests

US$

0.05

Other Requests

US$

0.04

AWS RDS ( Singapore)


DB Instances

US$

64.42

Reserved DB instance (one-time fee)

US$

490.00

Storage

US$

13.80

Amazon CloudFront Service


Data Out

US$

0.85

Requests

US$

0.05

AWS Dynamo DB (Singapore)


DataSet + Reads/Writes

US$

0.00

AWS Route 53 (Singapore)


Hosted Zones and DNS Queries

US$

1.20

Amazon Data Transfer


Data Out

US$

2.28

13,512.28

AWS Simple Calculator Link: Ekeeko - AWS - 1 Year Partial Upfront

AWS Implementation : Ekeeko

11

cloud
cover

1 Year Partial Reservation Cost


Monthly Cost

US$

217.94

Amazon RDS Reservations (Singapore)

US$

490.00

Reserved EC2 instance (one-time fee)

US$

982.00

TOTAL(USD)

US$

1,689.94

TOTAL (INR)

Effective Monthly Cost (USD)

US$

Effective Monthly Cost (INR)

AWS Implementation : Ekeeko

104,776.28

340.61
21,117.61

12

cloud
cover

Deployment &
Consultancy
Based on the requirements provided we have created the following table for your reference. Our
standard consulting billing rate is INR 15,000 per man day.
POC Consulting Cost
Setup and Configuration

Man Days

Per Man Day Cost

Instance and DB Setup

15,000.00

15,000.00

Data Copy and Integration

15,000.00

15,000.00

Man Days

Per Man Day Cost

30,000.00

45,000.00

75,000.00

Post POC Consulting Cost


Setup and Configuration

Setup of Remaining Components1

15,000.00

15,000.00

Coordination and Integration

15,000.00

30,000.00

TOTAL

Please note that this is an estimation on the basis of information provided. Actual effort will be
mentioned in the scope of work (SOW) post confirmation.
Any consulting required post roll-out, not covered in the standard support contract will also be
billed at the same consulting billing rate.

AWS Implementation : Ekeeko

13

cloud
cover

Support
CloudCover offers a completely managed infrastructure solution. We effectively become your IT
administration and operations arm and take care of everything associated with your companys
cloud presence.
We manage all servers, services, networking, security, upgrades and maintenance transparently.
CloudCover will build additional tools (and provide you with a perpetual license for the same) to
manage and maintain your unique infrastructure.
Our team of software engineers and cloud specialists will tweak your network, optimise your
servers and recommend new architectural improvements to better leverage the cloud.
Based on layers of Support i.e. Infrastructure and OS Administration and Monitoring, we offer a 24
x 7 x 365 Managed Services Proposition priced at 35% of your AWS Bill or INR 35,000 per
month whichever is higher.
A separate Managed Services Proposal and Contract will be sent once the project has been
confirmed.
We also provide ticket based support. Tickets come in a bundle of 35 tickets for INR 50,0000.
Each ticket consists of 1 Man-Hour.

AWS Implementation : Ekeeko

14