A traditional zone in Vespa Cloud is tied to a single availability zone (AZ). Deploying to such a single-AZ zone results in the application running in that AZ.
Vespa Cloud also has zones like prod.aws-us-east-1 that support multiple availability zones,
aka multi-AZ zones.
To deploy to a multi-AZ zone, you must specify a list of availability zones, using the
<availability-zone> elements in the <region>
element, see deployment.xml.
|
Single-AZ zone |
Multi-AZ zone |
It is an error to deploy to a multi-AZ zone and not specifying at least one AZ. If you specify exactly one AZ, it is identical to deploying to a traditional zone tied to that AZ.
Specifying more than one AZ means your application instance will spread evenly across those AZ. This means the number of nodes in each cluster must be a multiple of the number of AZs. For content clusters, the number of groups must also be a multiple of the number of AZs.
For example, let's say an application instance has been configured in deployment.xml with 2 availability zones
use1-az1 and use1-az2, and a content cluster in services.xml specifies
4 groups and a total of 12 nodes.
Each group contains 3 nodes. This means 2 groups will be placed in use1-az1,
and 2 groups will be placed in use1-az2.
|
Single-AZ zone |
Multi-AZ zone |
Deploying a single application instance to multiple availability zones, instead of deploying multiple application instances to each of those availability zones, has several benefits:
redundancy=1,
is prone to data loss. Instead, one application instance can be deployed to those two AZs.