Weitere ähnliche Inhalte Ähnlich wie SPG AWS infrastructure analysis (public example) (20) Kürzlich hochgeladen (20) SPG AWS infrastructure analysis (public example)2. Contents
Objectives 3
Current environment structure 4
Costs 4
Performance statistics 6
Production Server 6
Memory utilization 6
Disk Space Utilization 6
CPU Utilization 6
Staging Server 7
Memory utilization 7
Disk Space Utilization 7
CPU Utilization 7
Statistical Performance Analysis 8
Pricing options review 9
Amazon Web Services 9
Google Cloud Platform 14
DigitalOcean 18
Conclusion 22
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
2/27
3. Objectives
Our primary goal is to gather information on the performance of the current project
infrastructure. After analyzing the obtained indicators, if necessary, we will then offer options
for improving the current infrastructure.
The secondary goal is to propose a number of alternatives to reduce the infrastructure’s
monthly fees. In order to do this, we will analyze prices from other cloud providers which
offer similar environment configurations and suggest different options to reduce maintenance
costs.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
3/27
4. Current environment structure
At the moment, the project is deployed in the AWS Cloud environment and consists of two
EC2 (Production and Staging) VMs and a database, located in AWS RDS. The visual
structure is shown in Figure 1.
Figure 1.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
4/27
5. Costs
Current costs per month: $84.29.
For more detailed information on VMs, see Table 1.
AWS now (t2.medium + t2.medium + RDS)
# Node Role Instance Type Description Price
1 Production server EC2
t2.medium
(2 vCPU Mem: 4 GiB,
Vol: 8Gb)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$34,77
2 Staging server EC2
t2.medium
(2 vCPU Mem: 4 GiB
Vol: 8Gb)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$34,77
3 Relational Database
Service (RDS)
mysql
MySQL
db.t2.micro
(1 vCPU Mem: 1 GiB)
MySQL $14,75
Total price per month: $84,29
Table 1.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
5/27
6. Performance statistics
To collect statistics on the service’s performance, we used Amazon CloudWatch, a
monitoring service for AWS. We gathered statistics for 7 days in order to display the full
picture of the infrastructure’s operation.
Production Server
Memory utilization
As shown in Figure 2, memory is consumed by an average of 90-100%.
Figure 2.
Disk Space Utilization
The load on the disk subsystem is at approximately 60% (Figure 3).
Figure 3.
CPU Utilization
The CPU has a load of about 5-10% with very rare bursts of up to 80% (Figure 4).
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
6/27
7. Figure 4.
Staging Server
Memory utilization
The memory status on staging is similar to that of production. The load is at about 90-100%
(Figure 5).
Figure 5.
Disk Space Utilization
The load on the disk subsystem is at approximately 60% (Figure 6).
Figure 6.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
7/27
8. CPU Utilization
The CPU has a load of about 5-10% with short and sparse outbursts of up to 100% (Figure
7).
Figure 7.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
8/27
9. Statistical Performance Analysis
As the analysis showed, both CPU and HDD instances are sufficient. However, even during
periods of inactivity, the memory is constantly loaded at 90-100%. We believe that such
indicators of RAM usage are caused by the work of the Neo4j database. Based on an official
source, this database requires at least 2 GB of RAM, and it is recommended to have
between 16-32 GB of RAM. The above values are very extensive, but in our case, even the
minimum requirements are not being met, because in addition to the Neo4j database, both
the backend and frontend parts of the service are working on the same server.
Recommendation:
It is necessary to either transfer the database to a separate server or use VM with a larger
amount of memory.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
9/27
10. Pricing options review
Our main goal in this section is to discover whether or not we can save money by making
use of different services or configurations, and find the optimal configuration for the current
environment.
Below are the prices for different configurations using a number of reputable services:
Amazon Web Services, Google Cloud Platform, Digital Ocean.
Amazon Web Services
Variant 1: Increase the memory capacity to 8Gb for the Production server only, bringing the
price to $118.25 per month. More details are shown in Table 2.
We can further reduce the price by shutting down the Staging machine during weekends and
holidays, but this should not be a major improvement.
AWS var.#1 (t2.large + t2.medium + RDS)
# Node Role Instance Type Description Price
1 Production server EC2
t2.large
(2 vCPU Mem: 8 GiB) +
EBS Generiс SSD 8 GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4
$68,73
2 Staging server EC2
t2.medium
(2 vCPU Mem: 4 GiB) +
EBS Generiс SSD 8 GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4
$34,77
3 Relational Database
Service (RDS)
mysql
MySQL
db.t2.micro
(1 vCPU Mem: 1 GiB)
MySQL $14,75
Total price per month: $118,25
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
10/27
11.
Table 2.
Variant 2: Increase the memory capacity of both servers to 8Gb, bringing the price to
$152.21 per month (Table 3).
AWS var.#2 (t2.large + t2.large + RDS)
# Node Role Instance Type Description Price
1 Production server EC2
t2.large
(2 vCPU Mem: 8 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$68,73
2 Staging server EC2
t2.large
(2 vCPU Mem: 8 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$68,73
3 Relational Database
Service (RDS)
mysql
MySQL
db.t2.micro
(1 vCPU Mem: 1 GiB)
MySQL $14,75
Total price per month: $152,21
Table 3.
We also considered the option of transferring the database to a separate VM, which would
enable both savings and a greater load distribution in contrast to an increase in the amount
of memory. More details are provided in Tables 4, 5 and 6.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
11/27
12. Variant 3: A separate DB for the production server.
AWS var.#3 (t2.medium + t2.medium + t2.medium + RDS)
# Node Role Instance Type Description Price
1 Production server EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
$34,77
2 Production DB EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Neo4j $34,77
3 Staging server EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$34,77
4 Relational Database
Service (RDS)
mysql
MySQL
db.t2.micro
(1 vCPU Mem: 1 GiB)
MySQL $14,75
Total price per month: $119,06
Table 4.
AWS provides VM reservation capabilities (Amazon EC2 Reserved Instances). In Tables 4
and 5, we provided information regarding a VM purchase for 1 year without Upfront
Reserved instances.
More details on Amazon EC2 Reserved Instances can be found on their official website.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
12/27
13. Variant 4: There is also an option to purchase a 1-year contract without Upfront Reserved
instances for the current environment. This allows saving money but would require a
yearlong commitment.
AWS var.#4 (t2.medium + t2.medium + RDS)
# Node Role Instance Type Description Price
1 Production server EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$21,76
2 Staging server EC2
t2.medium
(2 vCPU Mem: 4GiB) +
EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$21,76
3 Relational Database
Service (RDS)
mysql
MySQL
db.t2.micro
(1 vCPU Mem: 1 GiB)
MySQL $14,75
Total price per month: $58,27
Table 5.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
13/27
14. Variant 5: An option to purchase a contract for 1 year without Upfront Reserved instances
for variant 3.
AWS var.#5 (t2.medium + t2.medium + t2.medium + RDS)
# Node Role Instance Type Description Price
1 Production server EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
$21,76
2 Production DB EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Neo4j: graph database
platform
$21,76
3 Staging server EC2
t2.medium
(2 vCPU Mem: 4 GiB)
+ EBS Generiс SSD 8
GiB
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$21,76
4 Relational Database
Service (RDS)
mysql
MySQL
db.t2.micro
(1 vCPU Mem: 1 GiB)
MySQL $14,75
Total price per month: $80,03
Table 6.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
14/27
15. Google Cloud Platform
Variant 1: A configuration which is similar to the current one on AWS.
GCP var.#1 (n1-standard-1 + n1-standard-1) + MySQL db-f1-micro):
# Node Role Instance Type Description Price
1 Production server n1-standard-1
(1 vCPU Mem: 3.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$24,27
2 Staging server n1-standard-1
(1 vCPU Mem: 3.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$24,27
3 Cloud SQL MySQL
db-f1-micro
(1 vCPU Mem: 0.6 GiB)
MySQL $9,37
Total price per month: $57,91
Table 7.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
15/27
16. Variant 2: Only upgrade the production VM.
GCP var.#2 (n1-standard-2 + n1-standard-1 + MySQL db-f1-micro):
# Node Role Instance Type Description Price
1 Production server n1-standard-2
(2 vCPU Mem: 7.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$48,86
2 Staging server n1-standard-1
(1 vCPU Mem: 3.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$24,27
3 Cloud SQL MySQL
db-f1-micro
(1 vCPU Mem: 0.6 GiB)
MySQL $9,37
Total price per month: $82,50
Table 8.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
16/27
17. Variant 3: Production and staging VMs with the same characteristics.
GCP var.#3 (n1-standard-2 + n1-standard-2) + MySQL db-f1-micro ):
# Node Role Instance Type Description Price
1 Production server n1-standard-2
(2 vCPU Mem: 7.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$48,86
2 Staging server n1-standard-2
(2 vCPU Mem: 7.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$48,86
3 Cloud SQL MySQL
db-f1-micro
(1 vCPU Mem: 0.6 GiB)
MySQL $9,37
Total price per month: $107,09
Table 9.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
17/27
18. Variant 4: A separate Neo4j DB server for production.
GCP var.#4 ( n1-standard-1 + n1-standard-1 + n1-standard-1) + MySQL db-f1-micro):
# Node Role Instance Type Description Price
1 Production server n1-standard-1
(1 vCPU Mem: 3.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
$24,27
2 Production DB n1-standard-1
(1 vCPU Mem: 3.5 GiB,
Vol: 8 GiB)
Neo4j: graph database
platform
$24,27
3 Staging server n1-standard-1
(1 vCPU Mem: 3.5 GiB,
Vol: 8 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$24,27
4 Cloud SQL MySQL
db-f1-micro
(1 vCPU Mem: 0.6 GiB)
MySQL $9,37
Total price per month: $82,18
Table 10.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
18/27
19. DigitalOcean
DigitalOcean allows users to save twice as much compared to other providers with the
same memory and CPU configuration, but with faster SSD drives. In the USA Datacenter
region, you can choose between New York and San Francisco.
Variant 1: Without changing the current configuration.
DO var.#1 (Droplet-20 + Droplet-20) + MySQL Droplet-5):
# Node Role Instance Type Description Price
1 Production server Droplet-20
(2 vCPU Mem: 4 GiB,
SSD 80 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$20,00
2 Staging server Droplet-20
(2 vCPU Mem: 4 GiB,
SSD 80 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$20,00
3 MySQL Droplet-5
(1 vCPU Mem: 1 GiB,
SSD 25 GiB)
MySQL $5,00
Total price per month: $45,00
Table 11.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
19/27
20. Variant 2: Only upgrade the production VM.
DO var.#2 (Droplet-40 + Droplet-20 + MySQL Droplet-5):
# Node Role Instance Type Description Price
1 Production server Droplet-40
(4 vCPU Mem: 8 GiB,
SSD 160 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$40,00
2 Staging server Droplet-20
(2 vCPU Mem: 4 GiB,
SSD 80 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$20,00
3 MySQL Droplet-5
(1 vCPU Mem: 1 GiB,
SSD 25 GiB)
MySQL $5,00
Total price per month: $65,00
Table 12.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended for
commercial use or modification by any third-parties without the prior written consent from Software Planet Group.
http://softwareplanetgroup.co.uk/
20/27
21. Variant 3: Production and staging VMs with the same characteristics.
DO var.#3 (Droplet-40 + Droplet-40) + MySQL Droplet-5):
# Node Role Instance Type Description Price
1 Production server Droplet-40
(4 vCPU. Mem 8 GiB,
SSD 160 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$40,00
2 Staging server Droplet-40
(4 vCPU Mem: 8 GiB,
SSD 160 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$40,00
3 MySQL Droplet-5
(1 vCPU Mem: 1 GiB,
SSD 25 GiB)
MySQL $5,00
Total price per month: $85,00
Table 13.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended for
commercial use or modification by any third-parties without the prior written consent from Software Planet Group.
http://softwareplanetgroup.co.uk/
21/27
22. Variant 4: A separate DB for production.
DO var.#4 (Droplet-20 + Droplet-20 + Droplet-20) + MySQL Droplet-5):
# Node Role Instance Type Description Price
1 Production server Droplet-20
(2 vCPU Mem: 4 GiB,
SSD 80 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
$20,00
2 Production DB Droplet-20
(2 vCPU Mem: 4 GiB,
SSD 80 GiB)
Neo4j: graph database
platform
$20,00
3 Staging server Droplet-20
(2 vCPU Mem: 4 GiB,
SSD 80 GiB)
Nginx proxy
Java backend
Python spider
Java payment system service
Neo4j: graph database
platform
$20,00
4 MySQL Droplet-5
(1 vCPU Mem: 1 GiB,
SSD 25 GiB)
MySQL $5,00
Total price per month: $65,00
Table 14.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended for
commercial use or modification by any third-parties without the prior written consent from Software Planet Group.
http://softwareplanetgroup.co.uk/
22/27
23. Conclusion
The resulting comparison of monthly costs appears as follows:
In our view, depending on one’s priorities, these results may be examined in one of two diverging ways:
● The best options based on savings
● The best options based on a balance between costs and productivity
AWS GCP DO
Current Setup $84.29 $57.91 $45.00
Enhanced Prod $118.25 $82.50 $65.00
Enhanced Setup $152.21
$107.0
9 $85.00
Separate Prod DB $119.06 $82.18 $65.00
Current + 1 Year commitment $58.27 N/A N/A
Current + DB + 1 Year commitment $80.03 N/A N/A
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended for
commercial use or modification by any third-parties without the prior written consent from Software Planet Group.
http://softwareplanetgroup.co.uk/
23/27
24. In the "Savings" category, we selected the following options:
Digital Ocean
Variant 1. Migrate to DO without changing the current structure.
Pros Cons
Only $45/month. The service must be migrated from
AWS.
Enough space on disks to create
backup copies of the service.
High memory consumption remains a
problem.
The service will be unavailable during
migration.
Amazon Web Service
Variant 4. Purchase a 1-year contract without Upfront Reserved instances.
Pros Cons
Only $58,27/month. A fixed amount must be paid for a year
without an option to terminate the
contract.
Minimal impact on infrastructure. High memory consumption remains a
problem
No need to migrate the service from
AWS.
VM configuration may not be altered
during the contract.
Limited backup options due to HDD
capacity restrictions
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
24/27
25. In the "Balance" category, we selected the following options:
Digital Ocean
Variant 2. Migrate to DO and upgrade the production server.
Pros Cons
Only $65/month. The service must be migrated from
AWS.
Enough space on disks to create
backup copies of the service.
The service will be unavailable during
migration.
Increased responsiveness and speed
of service.
The staging and production servers
will have their own individual
configurations.
Digital Ocean
Variant 4. Migrate to DO with a separate DB for the production server.
Pros Cons
Only $65/month. The service must be migrated from
AWS.
Enough space on disks to create
backup copies of the service.
Requires a developer to transfer the
database to a separate VM.
Increased responsiveness and speed
of service.
The service will be unavailable during
migration.
The possibility of reducing or
increasing productivity, depending on
the future situation.
The staging and production servers
will have their own individual
configurations.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
25/27
26. Amazon Web Service
Variant 5. Purchase a 1-year contract without Upfront Reserved instances and
a separate DB for the production server.
Pros Cons
Only $80.03/month. A fixed amount must be paid for a year
without an option to terminate the
contract.
Increased responsiveness and speed
of service.
VM configuration may not be altered
during the contract.
Minimal impact on infrastructure. Requires a developer to transfer the
database to a separate VM.
No need to migrate the service from
AWS.
Limited backup options due to HDD
capacity restrictions
The staging and production servers
will have their own individual
configurations.
Amazon Web Service
Variant 2. Increase the memory capacity of both servers to 8Gb.
Pros Cons
No need to involve a developer to
transfer the database to a separate
VM.
Higher price. $152,21/month.
Increased responsiveness and speed
of service.
Limited backup options due to HDD
capacity restrictions
Minimal impact on infrastructure. VM configuration may not be altered
after upgrade.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
26/27
27. No need to migrate the service from
AWS.
Public © 2019 Software Planet Group
This document is read-only, as it is provided exclusively for informational purposes. It is not intended
for commercial use or modification by any third-parties without the prior written consent from
Software Planet Group.
http://softwareplanetgroup.co.uk/
27/27