Launch

New GroupStack

robustack.com

Configure New GroupStack

(1) Click "GroupStacks" in main menu. 

(2) Select resource pool to launch a groupstack at.

A resource pool is one-to-one match concept for a region of an AWS account.

(3) Click "Configure New GroupStack". 

(3) Select a groupstack image you want to create a groupstack from and click "Use This Image". 

(4) Enter groupstack name and choose existing VPC or EC2 Classic. And click "Confirm". 

(5) New groupstack configuration has been created based on groupstack image.

And the status is 'In Configuration'. 

(6) Tweak the configurations for each members and click "Save Configuration" to make it 'Ready to Launch'.

Tweak Instance Member Configuration

(1) Click "Instances" tab and select a instance to tweak its configuration. 

(2) Click "Modify Instance" button.

Almost all fields are pre-filled based on groupstack image.

Enter 'Instance Name'.

Resource name in robustack is one of important factors. Instances with same name cannot exist in a resource pool.

Though you can modify the name while it is being configured, you cannot modify the name once it is launched. 

Select 'Data Center'.

'Data Center' in robustack is similar representation of 'Availabilty Zone' in Amazon EC2. It is required as robustack deals serveral AWS accounts with one screen but 'Availability Zone' mappings by AWS accounts in EC2 are not the same.

Choose 'Instance Type'.

Choose existing 'Key Pair'.

At least one key pair created or merged at "Key Pairs" management view.

Choose 'Machine Image'.

The AMI ID (ami-xxxx) shown in the selection box is not the image ready to go but is the official base image on which designated softwares are to be installed.

Choose 'Root Volume Type'.

Check if you want to launch this instance as spot.

Select Security Groups.

You may not be able to unselect pre-configured security group here. If you want to choose different existing security group, go to "Security Groups" tab and use "Combine with In-Use Security Group".

Enter root volume size you need.

Enlarging root volume size may not be possible depending on the base machine image, if it was built such. 

(3) Click "Confirm" to end it. And continue to tweak the next instance configuration.

Tweak Instance

Startup Features

You are able to assign additional launch features here. Usually 'Post Bash Script' will be filled in with the default content. And for others, apply them as needed.

(1) Click "Instances" tab and select a instance to tweak its startup features. 

(2) Click one of buttons which are for modifying startup features.

User Data Setting

'User Data Setting' window will be shown like this if there is no default user data in the groupstack image.

The data inputed here will be utilized as the same way as EC2 uses it.

You can use robustack variables inside the content.
The variables will be converted to the value at the point of the user-data is being applied to the instance, namely, when it is being launched. 

rs:{myVar.currentSum}::rs:{myVar.latestSum}

User Data Setting

The data you saved here will be reset once the instance launch completed.

rs:{myVar.currentSum}::rs:{myVar.latestSum}

User Data Setting

(3) Insert "User Data" content as needed. And click "Confirm".

Post Bash Script Setting

Post Bash Script Setting

Post Bash Script is usually utilized as a function of software installation or

setting up configuration parameters.

You can tweak the default contents to suit your requirements combining 'robustack variables' with it.

Post Bash Script Setting

Post Bash Script will be executed after  all filesystems bound are mounted inside the steps of startup workflows,

 Launch GroupStack, Start GroupStack,

Reboot GroupStack, Launch SingleStack,

Start SingleStack, Reboot SingleStack

Post Bash Script Setting

(3) Modify "Bash Script" content as needed. And click "Confirm".

Set Elastic IP Auto Associate

Select among Elastic IPs created before. It will result in unset if you select 'Blank'.

Set Elastic IP Auto Associate

(3) Modify "Bash Script" content as needed. And click "Confirm".

You can either check 'Associate on Startup' if you want the elastic IP to be associated to the instance at every its startups. Or you can associate the Elastic IP thru Sequence/Schedule/Trigger job actions.

Set Elastic IP Auto Associate

The Elastic IP will be associated when the status of the instance turn to 'running' during its startup processes if you set 'Associate on Startup'.

Be sure that the process will continue even if the EIP already associated to other instance, regardless of it is that of VPC's or EC2 Classic's. 

Set Elastic IP Auto Associate

(3) Click "Confirm".

Elastic IP will NOT be associated here. Instead, it will be associated at the next startup of the instance.

Set Elastic IP Auto Associate

(4) Then check 'Elastic IP' column of "Instances" tab, moving ruler to the right.

Set Auto Register to

Elastic Load Balancer

Select an exsting Elastic LB.

It will result in unset if you select 'Blank'.

Set Auto Register to

Elastic Load Balancer

The instance will be registered to Elastic LB at the end of its startup processes - after the applications bound started.

Set Auto Register to

Elastic Load Balancer

(3) Click "Confirm".

The instance will NOT be registered to Elastic LB here. Instead, it will be at the next startup.

Set Auto Register to

Elastic Load Balancer

(4) Then check 'Elastic LB' column of "Instances" tab, moving ruler to the right.

Tweak Security Group  Member Configuration

(1) Click "Security Groups" tab. And check the predefined groups and rules. 

Security Groups Defined

Security Rules Defined

Security groups bound to any instance members become security group members.

Security rules being displayed here are 'in-bound' security rules whether they are for EC2 Classics or VPCs.

Out-bound rules for VPC are out-scope of robustack and robustack assumes all out-bound permissions are opened. Your appropriate care will be required if you are using VPC out-bound rules restrictively. 

You can see member rules here, such as HTTPS, HTTP, SSH.

Firewall for robustack service (rule type)

Security rules those membership starts with 'rule-rbsvc' are mandatory and you must not delete nor modify. 

Firewall for robustack service (group type)

Sometimes the firewall for robustack service are defined as a security group which membership is 'rbsvc-sgrp', depends on the AWS regions or VPC environments. 

(2) Select a security group you'd like to modify

You can change the security group name.

You can combine the current security group and rules being configured with an existing security group in use.

You can also add security rule as needed.

(3) Select a security rule you'd like to modify

You can set the rule as 'Blocked'.

Rule in 'Blocked' status don't actually exist but will keep its configuration at the groupstack. So that you can easily apply the security rule by 'Unblock' it.  

You can set rule name for better reference.

Member rules can only be named. Non-membership rule (membership 'none') cannot hold its name. 

You can delete the rule configuration.  

You can set variable type source if the source is 'IP address' type.

It will be useful if you set 'Update Perm Source' job action of a Trigger which will fire on every start of an instance.

Tweak Volume  Member Configuration

(1) Click "Volumes" tab and select a volume to tweak its configuration. 

(2) Click "Modify Volume" button.

All fields are pre-filled based on the groupstack image.

Enter 'New Volume Name'.

Resource name in robustack is one of important factors. Volumes with same name cannot exist in a resource pool.

Though you can modify the name while it is being configured, you cannot modify the name once it is launched. 

Select 'Source' snapshot.

You can select any snapshot in the resource pool, or a new volume.

If you are simply tweaking a member volume configuration generated from a groupstack image, you should leave it as default.

Enter 'Volume Size' and

select 'Device Name'.

The default size assigned will almost be minimal. Increase the value to suit your requirements.

Select 'Volume Type' and

input 'IOPS Value' if you selected PIOPS volume.

You can choose Magnetic, SSD, PIOPS Volume.

(3) Click "Confirm" to end it. And continue to tweak the next volume configuration.

Tweak Filesystem Member Configuration

(1) Click "Filesystems" tab and select a filesystem to tweak its configuration. 

(2) Click "Modify Filesystem" button.

Almost all fields are pre-filled based on the groupstack image.

Enter 'Filesystem Name'.

Resource name in robustack is one of important factors. In case of filesystem name, the same cannot exist in a groupstack.

Though you can modify the name while it is being configured, you cannot modify the name once it is launched. 

Select 'Volume Type'.

Only 'EBS' type is available at the moment.

Select 'Volume' on which the filesystem will be launch.

Select 'Filesystem Type'.

Filesystem type ext4, ext3, xfs, btrfs will be available depends on the instance image type. The value will become rs:{sysVar.fsType}.

Unfortunately you will not be able to assign a filesystem type which is not supported from the instance machine image. 

Enter 'Owner User' and 'Owner Group'. And enable check box if these entities are  need to be created.

The value will become rs:{sysVar.fsOwner} and rs:{sysVar.fsGroup}.

Enter 'Mount Point', 'Mount Option'

and 'Access Mode'. 

The value will become rs:{sysVar.mountPoint}, rs:{sysVar.mountOption}, rs:{sysVar.mountPointMode}

Enable 'Create Filesystem' check box if you'd like to create new filesystem. This will destroy current content of the volume.

Enable 'Freeze When Snapshot Volume' check box if you'd like to freeze the filesystem whenever its volume snapshot begins. The filesystem will be unfreezed just after the snapshot initiated.

Enter 'Make Filesystem Command' to use.

The value will become rs:{sysCmd.mkfs}.

Enter 'Filesystem Mount Command' to use.

The value will become rs:{sysCmd.mount}.

Enter 'Filesystem Unmount Command' to use.

The value will become rs:{sysCmd.umount}.

Enter 'Filesystem Check Command' to use.

The value will become rs:{sysCmd.fsck}.

Enter 'Grow Filesystem Command' to use.

The value will become rs:{sysCmd.grfs}.

Tweak Application Member Configuration

(1) Click "Applications" tab and select a application to tweak its configuration. 

(2) Click "Set to Manual Startup".

You can set the application not to start automatically when there is a groupstack startup. 

(2) Click "Modify Application" button.

Almost all fields are pre-filled based on the groupstack image.

Enter 'Application Name'.

Resource name in robustack is one of the vital factors. In case of application name, the same cannot exist in a groupstack.

Though you can modify the name while it is being configured, you cannot modify the name once it is launched. 

Enter 'Application Start Order'.

The 'Start Order' here is the groupstack-wide order. All applications in a groupstack will be started according to those ascending start orders and will be stopped with those descending start orders.  

You can set same number for a number of applications. But be aware that they will run not in parallel but will run in serial. And nobody knows which one will run earlier.

You can set configuration variable for this application and apply it to the path whenever the application starts. 

You can register an application to several versions with different configuration files and use them as needed.

You can tweak 'Application Start' cmd here.  

The cmd result can be waited for its timeout seconds before moving to the next application start. 

The value will become rs:{sysCmd.start}.

You can tweak 'Application Stop' cmd here.  

The cmd result can be waited for its timeout seconds before moving to the next application stop. 

The value will become rs:{sysCmd.stop}.

You can tweak 'Application Status' cmd here.  You should set the cmd result returns '0' when the application is running and returns '1' when the application is stopped. 

The value will become rs:{sysCmd.status}.

You can set 'Application Dependencies' here.  Status of the dependency applications will be checked until the status are fulfilled for the check duration. Once the dependency is met, the application will be started or stopped.

Launch GroupStack

(1) Click "GroupStacks" in main menu. 

(2) Select groupstack to launch

 at groupstack table view.

(3) Open console log view.

"Log Admin" -> "Show Console Log" 

(4) Click "Launch GroupStack" button. 

(5) Launch GroupStack workflow

1. Requests spot instances - waits until active.

2. Launch on-demand instances.

3. Waits until all instances are running.

(5) Launch GroupStack workflow

4. Creates and attaches volumes to instances.

5. Associates Elastic IPs to'EIP auto-associate' instances. And waits until those public DNS names resolved.

(5) Launch GroupStack workflow

6. Installs Java and robustack agents.

7. Updates /etc/hosts entries for all instances.

<Private IP address> <instance name>

... 

(5) Launch GroupStack workflow

8. Makes and mounts all filesystems.

9. Runs user-definable 'Post Bash Scripts - usually they are installation scripts'

on each instances.

(5) Launch GroupStack workflow

10. Starts applications according to those groupstack-wide 'Start Orders' and 'Start App Dependencies'. 

(5) Launch GroupStack workflow

11. Register 'ELB auto-register' instances to Elastic Load Balancers.

(6) Launch GroupStack completed.

Check if groupstack status is now "GroupStack Running" 

GroupStack launch has been done. GroupStack status will be

"GroupStack Running" now.

If groupstack launch was not finished for some reason, such as Spot bidding price was low, you can retry launching groupstack with "GroupStack Member Launch" button.

Managing GroupStack - Launch

By robustack.com

Managing GroupStack - Launch

Managing GroupStack - Launch. Robustack is an Amazon EC2 Orchestration Platform. This slides shows how to configure and launch a groupstack (an unit for group of AWS EC2 instances, volumes, security groups and filesystems, applications) and explains what will be going on under the hood.

  • 870