Command awsns creates/updates A/CNAME records for given DNS zone in AWS
Route 53 for all running non-spot ec2 instances based on their "Name" tag.
It can be run manually with -zone flag set to hosted zone ID and -suffix set
to suffix to construct domain names from. Domain names constructed by
concatenating value of the "Name" instance tag with suffix value set by
-suffix flag.
I.e., if ec2 instance tag "Name" is set to "jenkins" and the program is
called with -suffix=".foo.example.com", then the constructed name would be
jenkins.foo.example.com. Zone ID must match either example.com or
foo.example.com zone in Route 53 console.
The program may remove existing A/CNAME records matching given suffix if no
corresponding non-spot ec2 instances found running.
If ec2 instance has public DNS name, the program creates CNAME record
pointing to such name; otherwise, it creates A record pointing to the public
IP address.
The program may also be run as AWS Lambda invoked by CloudWatch event
created as "EC2 Instance State-change Notification" for "running" state. It
then looks up suffix and zone id in SUFFIX and ZONE environment variables.
Lambda needs permissions to describe EC2 instances and list/update Route 53
records; required permissions can be satisfied by using the following AWS
managed policies: AmazonEC2ReadOnlyAccess, AmazonRoute53FullAccess,
AWSLambdaBasicExecutionRole.
Command awsns creates/updates A/CNAME records for given DNS zone in AWS
Route 53 for all running non-spot ec2 instances based on their "Name" tag.
It can be run manually with -zone flag set to hosted zone ID and -suffix set
to suffix to construct domain names from. Domain names constructed by
concatenating value of the "Name" instance tag with suffix value set by
-suffix flag.
I.e., if ec2 instance tag "Name" is set to "jenkins" and the program is
called with -suffix=".foo.example.com", then the constructed name would be
jenkins.foo.example.com. Zone ID must match either example.com or
foo.example.com zone in Route 53 console.
The program may remove existing A/CNAME records matching given suffix if no
corresponding non-spot ec2 instances found running.
If ec2 instance has public DNS name, the program creates CNAME record
pointing to such name; otherwise, it creates A record pointing to the public
IP address.
The program may also be run as AWS Lambda invoked by CloudWatch event
created as "EC2 Instance State-change Notification" for "running" state. It
then looks up suffix and zone id in SUFFIX and ZONE environment variables.
Lambda needs permissions to describe EC2 instances and list/update Route 53
records; required permissions can be satisfied by using the following AWS
managed policies: AmazonEC2ReadOnlyAccess, AmazonRoute53FullAccess,
AWSLambdaBasicExecutionRole.