Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
accelerate-failover
Advanced tools
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square)](https://conventionalcommits.org) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)
Readme
accelerate-failover
is a CLI tool to view the health and traffic status of AWS Elastic Beanstalks and shift traffic
between regions in the event of a regional AWS outage. It finds all AWS Elastic Beanstalk applications that end in the
stage name provided to the command i.e. dev2, dev, or qa. It then finds any AWS Route 53 weighted alias records for the
Elastic Beanstalk environments that match our set identifiers, us-east-1 and us-west-2. If there are weighted records
for an environment for both identifiers in the same hosted zone, then the application will toggle traffic to the primary
or disaster recovery region.
Download the accelerate-failover binary executable from the Releases page in this repository.
Copy the binary to a file directory ~/bin/accelerate-failover
and add ~/bin/
to your PATH
if it is not on your
path already.
To build and package the application to a binary source clone this repository and run:
yarn:
yarn
yarn build
yarn package:macos // alternately package:linux for a linux binary
npm:
npm i
npm run build
npm run package:macos // alternately package:linux for a linux binary
This tool will use the default AWS account profile on your machine. Use ALKS to set your default profile credentials for the account you want to run this script against.
Running the command without any options or with the -h or --help flags, will print the tool help menu.
$ accelerate-failover
accelerate-failover <command>
Commands:
accelerate-failover failover <stage> fail over traffic applications in
the <stage> stage to the disaster
recovery region
accelerate-failover rollover <stage> rollover traffic applications in the
<stage> stage to the primary region
accelerate-failover status <stage> check the status of applications in
<region> the <region> region and <stage>
stage
Options:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
$ accelerate-failover status -h
accelerate-failover status <stage> <region>
check the status of applications in the <region> region and <stage> stage
Positionals:
region the AWS Region [string] [required] [choices: "us-east-1", "us-west-2"]
stage the application stage
[string] [required] [choices: "dev2", "dev", "qa", "uat", "production",
"production-blue", "production-green"]
Options:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
$ accelerate-failover status dev2 us-east-1
checking status of Elastic Beanstalk Applications in ca-mmdnp us-east-1 dev2...
finding dev2 Elastic Beanstalk applications in account...
found dr-shopper-platform-dev2 Elastic Beanstalk environment...
found dr-dealstarter-dev2 Elastic Beanstalk environment...
finding weighted resource alias records in hosted zones in account...
found 12 weighted records in ca-mmdnp.makemydeal.com. hosted zone...
found resource record sets for dr-shopper-platform-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
found resource record sets for dr-dealstarter-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
ca-mmdnp dev2 Elastic Beanstalk Environment Status us-east-1
┌───────────────────────────────┬───────────────┬───────────────────┬───────────────────┐
│ Elastic Beanstalk Environment │ Health Status │ us-east-1 Traffic │ us-west-2 Traffic │
├───────────────────────────────┼───────────────┼───────────────────┼───────────────────┤
│ dr-shopper-platform-dev2 │ Ok │ 100% │ 0% │
├───────────────────────────────┼───────────────┼───────────────────┼───────────────────┤
│ dr-dealstarter-dev2 │ Ok │ 100% │ 0% │
└───────────────────────────────┴───────────────┴───────────────────┴───────────────────┘
$ accelerate-failover failover -h
accelerate-failover failover <stage>
fail over traffic applications in the <stage> stage to the disaster recovery
region
Positionals:
stage [string] [required] [choices: "dev2", "dev", "qa", "uat", "production",
"production-blue", "production-green"]
Options:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
$ accelerate-failover failover dev2
performing failover for dev2 shifting traffic to us-west-2...
finding dev2 Elastic Beanstalk applications in account...
found dr-shopper-platform-dev2
found dr-dealstarter-dev2
finding weighted resource records in hosted zones in account...
found 12 weighted records in ca-mmdnp.makemydeal.com. hosted zone...
found resource record sets for dr-shopper-platform-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
found resource record sets for dr-dealstarter-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
dr-shopper-platform-dev2 changing weight of us-east-1 record set to 0...
dr-shopper-platform-dev2 changing weight of us-west-2 record set to 100...
dr-dealstarter-dev2 changing weight of us-east-1 record set to 0...
dr-dealstarter-dev2 changing weight of us-west-2 record set to 100...
updating 2 records for dev2...
updating DNS record for shopper-platform-dev2-dr.ca-mmdnp.makemydeal.com.:us-east-1 weight: 0
updating DNS record for dealstarter-dev2-dr.ca-mmdnp.makemydeal.com.:us-east-1 weight: 0
adding shopper-platform-dev2-dr.ca-mmdnp.makemydeal.com.:us-west-2 weight: 100 to batch...
adding dealstarter-dev2-dr.ca-mmdnp.makemydeal.com.:us-west-2 weight: 100 to batch...
Applying batch update of 4 records for hosted zone /hostedzone/Z3BTVQ65IVZHGF...
hosted zone /hostedzone/Z3BTVQ65IVZHGF updates complete...
change set changes successfully updated to Route 53...
SUCCESSFULLY ROUTED dev2 TRAFFIC TO us-west-2
finding dev2 Elastic Beanstalk applications in account...
found dr-shopper-platform-dev2 Elastic Beanstalk environment...
found dr-dealstarter-dev2 Elastic Beanstalk environment...
finding weighted resource alias records in hosted zones in account...
found 12 weighted records in ca-mmdnp.makemydeal.com. hosted zone...
found resource record sets for dr-shopper-platform-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
found resource record sets for dr-dealstarter-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
ca-mmdnp dev2 Elastic Beanstalk Status us-west-2:
┌──────────────────────────┬───────────────┬───────────────────┬───────────────────┐
│ Environment Name │ Health Status │ us-east-1 Traffic │ us-west-2 Traffic │
├──────────────────────────┼───────────────┼───────────────────┼───────────────────┤
│ dr-shopper-platform-dev2 │ Ok │ 0% │ 100% │
├──────────────────────────┼───────────────┼───────────────────┼───────────────────┤
│ dr-dealstarter-dev2 │ Ok │ 0% │ 100% │
└──────────────────────────┴───────────────┴───────────────────┴───────────────────┘
$ accelerate-failover rollover -h
accelerate-failover rollover <stage>
rollover traffic applications in the <stage> stage to the primary region
Positionals:
stage [string] [required] [choices: "dev2", "dev", "qa", "uat", "production",
"production-blue", "production-green"]
Options:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
$ accelerate-failover rollover dev2
performing rollover for dev2 shifting traffic to us-east-1...
finding dev2 Elastic Beanstalk applications in account...
found dr-shopper-platform-dev2
found dr-dealstarter-dev2
finding weighted resource records in hosted zones in account...
found 12 weighted records in ca-mmdnp.makemydeal.com. hosted zone...
found resource record sets for dr-shopper-platform-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
found resource record sets for dr-dealstarter-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
dr-shopper-platform-dev2 changing weight of us-east-1 record set to 100...
dr-shopper-platform-dev2 changing weight of us-west-2 record set to 0...
dr-dealstarter-dev2 changing weight of us-east-1 record set to 100...
dr-dealstarter-dev2 changing weight of us-west-2 record set to 0...
updating 2 records for dev2...
updating DNS record for shopper-platform-dev2-dr.ca-mmdnp.makemydeal.com.:us-east-1 weight: 100
updating DNS record for dealstarter-dev2-dr.ca-mmdnp.makemydeal.com.:us-east-1 weight: 100
adding shopper-platform-dev2-dr.ca-mmdnp.makemydeal.com.:us-west-2 weight: 0 to batch...
adding dealstarter-dev2-dr.ca-mmdnp.makemydeal.com.:us-west-2 weight: 0 to batch...
Applying batch update of 4 records for hosted zone /hostedzone/Z3BTVQ65IVZHGF...
hosted zone /hostedzone/Z3BTVQ65IVZHGF updates complete...
change set changes successfully updated to Route 53...
SUCCESSFULLY ROUTED dev2 TRAFFIC TO us-east-1!
finding dev2 Elastic Beanstalk applications in account...
found dr-shopper-platform-dev2 Elastic Beanstalk environment...
found dr-dealstarter-dev2 Elastic Beanstalk environment...
finding weighted resource alias records in hosted zones in account...
found 12 weighted records in ca-mmdnp.makemydeal.com. hosted zone...
found resource record sets for dr-shopper-platform-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
found resource record sets for dr-dealstarter-dev2 in ca-mmdnp.makemydeal.com. /hostedzone/Z3BTVQ65IVZHGF...
ca-mmdnp dev2 Elastic Beanstalk Status us-east-1
┌──────────────────────────┬───────────────┬───────────────────┬───────────────────┐
│ Environment Name │ Health Status │ us-east-1 Traffic │ us-west-2 Traffic │
├──────────────────────────┼───────────────┼───────────────────┼───────────────────┤
│ dr-shopper-platform-dev2 │ Ok │ 100% │ 0% │
├──────────────────────────┼───────────────┼───────────────────┼───────────────────┤
│ dr-dealstarter-dev2 │ Ok │ 100% │ 0% │
└──────────────────────────┴───────────────┴───────────────────┴───────────────────┘
You can override settings in Settings.ts by setting the environment variable in the environment you are running this tool in.
export MAX_ATTEMPTS=10; // this will set MAX_ATTEMPTS 10; overriding the default.
accelerate-faiover status dev2 us-east-1
Configurable values are:
export class Settings {
// the resource record set identifier(recordId) of the disaster recovery DNS records
public static DR_RECORD_SET_IDENTIFIER: string =
process.env.DISASTER_RECOVERY_RECORD_SET_IDENTIFIER || 'us-west-2';
/*
* The AWS clients will retry 7 times by default with an exponential backoff at 100, 200, 400, 800, 1600, 3200, and
* 6400 ms intervals, if the request fails after the summation of all of those attempts, roughly 13 seconds, the
* script will throw an error.
*/
public static MAX_ATTEMPTS: number = parseInt(
process.env.MAX_ATTEMPTS || '7',
);
// the resource record set identifier(recordId) of the primary DNS records
public static PRIMARY_RECORD_SET_IDENTIFIER: string =
process.env.PRIMARY_RECORD_SET_IDENTIFIER || 'us-east-1';
//...
public static PRIMARY_REGION = process.env.PRIMARY_REGION || 'us-east-1';
public static DR_REGION = process.env.DR_REGION || 'us-west-2';
//...
}
see CHANGELOG.md.
FAQs
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square)](https://conventionalcommits.org) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)
The npm package accelerate-failover receives a total of 0 weekly downloads. As such, accelerate-failover popularity was classified as not popular.
We found that accelerate-failover demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.