ec2
Last updated
Was this helpful?
Last updated
Was this helpful?
Deployments into bare metal AWS EC2 instances can take advantage of to perform service announcement and service discovery. gm-control
uses the AWS SDKs to parse out this information and populate the mesh.
Instances must be tagged with both the service name and the port that should be exposed to the mesh. The form of this tag will default to gm:cluster:<service-name>:<port>
. There are many ways to tag instances, but an example with the AWS CLI is shown below.
If multiple services are exposed on a single EC2 instance, then multiple tags can be used:
NOTE The default tag can be changed by the CLI flag
--cluster-tag-namespace
or environment variableGM_CONTROL_AWS_CLUSTER_TAG_NAMESPACE
when runninggm-control
. This changes thegm:cluster
prefix, but the : section must remain in the same form.
gm-control
does require access to AWS credentials to run and perform service discovery against the deployed EC2 clusters. The server will need access to:
GM_CONTROL_AWS_AWS_ACCESS_KEY_ID
GM_CONTROL_AWS_AWS_SECRET_ACCESS_KEY
GM_CONTROL_AWS_AWS_REGION
To enable ec2 discovery, the following two environment variables almost must be set:
GM_CONTROL_CMD=aws
GM_CONTROL_AWS_VPC_ID={instance(s)-vpc-id}
If not provided directly, gm-control
will fall back to the keys available on it's running instance. See gm-control aws --help
or the page for details and more information.