How to configure nginx for Joomla
The Google Compute Engine service lets you create and run virtual machine instances on GCP. Just like any other cloud provider, Google lets you deploy and manage virtual machine instances in a true Infrastructure as a Service (IaaS) fashion. Google Compute Engine also supports a variety of operating systems including Windows Server 2008 R2, 2012 R2 and 2016, Red Hat, Ubuntu, SUSE, CentOS, CoreOS, and Debian. You can even import a disk image from your on-premises environment. Each instance is part of a project and contains a small persistent root disk and more storage can be added depending on your requirements. A virtual private cloud (VPC) network can also be attached to an instance with an assigned IP address. We will discuss storage and networking requirements more later in this chapter.
GCP offers predefined machine types that fit the needs of different applications. You can also define your own custom machine type as well. Predefined machine types are classified into three different classes: standard machine type, high memory machine type, and high CPU machine type.
Standard machine types of machines are most suitable for day-to-day applications that are not memory or CPU intensive. Standard machine types allocate 3.75 GB of RAM per virtual CPU. On an n1 series machine, a virtual CPU is implemented as a single hardware hyper-thread on a variety of Intel CPUs ranging from Sandy Bridge to Skylake:
Machine name |
Virtual CPUs |
Memory (GB) |
Max number of persistent disks (PD) |
Max total PD size (TB) |
n1-standard-1 |
1 |
3.75 |
16 (32 in Beta) |
64 |
n1-standard-2 |
2 |
7.50 |
16 (64 in Beta) |
64 |
n1-standard-4 |
4 |
15 |
16 (64 in Beta) |
64 |
n1-standard-8 |
8 |
30 |
16 (128 in Beta) |
64 |
n1-standard-16 |
16 |
60 |
16 (128 in Beta) |
64 |
n1-standard-32 |
32 |
120 |
16 (128 in Beta) |
64 |
n1-standard-64 |
64 |
240 |
16 (128 in Beta) |
64 |
n1-standard-96 |
96 |
360 |
16 (128 in Beta) |
64 |
For applications requiring more memory than CPU, high memory machine types are ideal. These virtual machines have double the amount of RAM (6.50 GB) per CPU than that of standard machine types:
Machine name |
Virtual CPUs |
Memory (GB) |
Max number of persistent disks (PD) |
Max total PD size |
n1-highmem-2 |
2 |
13 |
16 (64 in Beta) |
64 |
n1-highmem-4 |
4 |
26 |
16 (64 in Beta) |
64 |
n1-highmem-8 |
8 |
52 |
16 (128 in Beta) |
64 |
n1-highmem-16 |
16 |
104 |
16 (128 in Beta) |
64 |
n1-highmem-32 |
32 |
208 |
16 (128 in Beta) |
64 |
n1-highmem-64 |
64 |
416 |
16 (128 in Beta) |
64 |
n1-highmem-96 |
96 |
624 |
16 (128 in Beta) |
64 |
High CPU machine types are for applications requiring high CPU over memory. These machine types have 0.9 GB of RAM per virtual CPU:
Machine name |
Virtual CPUs |
Memory (GB) |
Max number of persistent disks (PD) |
Max total PD size (TB) |
n1-highcpu-2 |
2 |
1.80 |
16 (64 in Beta) |
64 |
n1-highcpu-4 |
4 |
3.60 |
16 (64 in Beta) |
64 |
n1-highcpu-8 |
8 |
7.20 |
16 (128 in Beta) |
64 |
n1-highcpu-16 |
16 |
14.4 |
16 (128 in Beta) |
64 |
n1-highcpu-32 |
32 |
28.8 |
16 (128 in Beta) |
64 |
n1-highcpu-64 |
64 |
57.6 |
16 (128 in Beta) |
64 |
n1-highcpu-96 |
96 |
86.4 |
16 (128 in Beta) |
64 |
f1-micro bursting machine types
f1-micro bursting machine types allow instances to use additional physical CPU for short periods of time. If your instance requires more CPU than originally allocated, it can take advantage of the additional physical CPU instance. Burst instances are temporary and are only possible periodically:
Machine name |
Virtual CPUs |
Memory (GB) |
Max number of persistent disks (PD) |
Max total PD size (TB) |
f1-micro |
0.2 |
0.60 |
4 (16 in Beta) |
3 |
g1-small |
0.5 |
1.70 |
4 (16 in Beta) |
3 |
Mega-memory machine types
Mega-memory machine types are for those applications that require higher memory to virtual CPU ratios. This is different from the high memory machine type where higher memory is offered without high virtual CPUs. Mega-memory machine types offer 15 GB of RAM per virtual CPU. Not all regions offer mega-memory machine types:
Machine name |
Virtual CPUs |
Memory (GB) |
Max number of persistent disks (PD) |
Max total PD size (TB) |
n1-megamem-96 |
96 |
1433.6 |
16 (128 in Beta) |
64 |
n1-ultramem-40
|
40 |
961 |
16 (128 in Beta) |
64 |
n1-ultramem-80 |
80 |
1922 |
16 (128 in Beta) |
64 |
n1-ultramem-160 |
160 |
3844 |
16 (128 in Beta) |
64 |
Images
A compute engine allows you to deploy operating systems using either public images or custom images. Public images are maintained by Google, third-party vendors, and open source communities. All projects have access to these images to create instances. Custom images can be created in your project and are available only to your project. You can even import a custom image from your data center into GCP at no cost other than the image storage charge.
All public images are 64-bit versions of the operating systems. Only some of the public images are supported by the compute engine team:
Operating system |
Supported by |
Image family |
Image project |
Notes |
CentOS |
Compute engine |
centos-7 centos-6 |
centos-cloud |
|
Container-optimized OS from Google |
Compute engine |
cos-stable |
cos-cloud |
|
CoreOS |
CoreOS support |
coreos-stable |
coreos-cloud |
|
Debian |
Compute engine |
debian-9 |
debian-cloud |
|
Red Hat Enterprise Linux (RHEL) |
Compute engine |
rhel-7 |
rhel-cloud |
Premium image additional cost |
SUSE Enterprise Linux Server (SLES) |
Compute engine |
sles-12 |
suse-cloud |
Premium image additional cost |
SLES for SAP |
Compute engine |
sles-12-sp2-sap |
suse-sap-cloud |
Premium image additional cost |
Ubuntu |
Compute engine |
ubuntu-1604-lts |
ubuntu-os-cloud |
|
Windows server |
Compute engine |
windows-1709-core |
windows-cloud |
Premium image additional cost |
SQL server on Windows server |
Compute engine |
SQL Server image families |
windows-sql-cloud |
Premium image |