FactorFifty - AWS EC2 Module Documentation
Introduction
The AWS EC2 module in FactorFifty allows you to configure and deploy EC2 instances on AWS through an intuitive, user-friendly interface.
This guide walks you through the steps to configure, deploy, and manage EC2 instances within FactorFifty.
1. Getting Started
Once you log into FactorFifty, you will land on the Projects Dashboard. From here, you can manage your projects and environments.
1.1 Navigate to the EC2 Module
- Choose a Project to work on.
- Select the Environments tab to create a new environment or manage an existing one.
- Go to the Diagram tab to start designing your infrastructure.
2. Designing Your Infrastructure
In the Diagram tab, you can visually represent your infrastructure by adding modules.
Add the EC2 Module
- Click Edit diagram.
- Drag and drop the AWS EC2 Instance module into your diagram canvas.
Once you drop the EC2 module, the configuration panel will open for further customization.
Configuring Your EC2 Instance
The EC2 Configuration Panel allows you to configure various properties for the EC2 instance, including its identifier, operating system, AMI ID, and instance type.
Key Configuration Fields
1. Factor Fifty Identifier
- Description: A unique identifier for the EC2 instance, which will match the name in your diagram.
- Example:
ec2-instance-al2023
2. AMI ID
- Description: Choose whether to use a default Amazon Machine Image (AMI) or provide your own custom AMI.
- Type: Dropdown menu that dynamically fetches available AMIs based on the operating system chosen.
- Example:
ami-0e063707e9b2b63437
3. Operating System
- Description: Select the operating system for your EC2 instance.
- Options:
al2023,ubuntu,rhel,windows
4. Instance Type
- Description: Select the type of EC2 instance (e.g.,
t3.medium). - Type: Dropdown menu fetching instance types based on your region.
5. Public Key Name
- Description: If you choose to use an existing key pair, provide the name of the public key.
- Example:
my-aws-key
Example Configuration
Hereβs an example of what the configuration might look like for an EC2 instance:
- Factor Fifty Identifier:
ec2-instance-al2023 - AMI ID:
ami-0e063707e9b2b63437 - Operating System:
al2023 - Instance Type:
t3.medium - Public Key Name:
my-aws-key
Once configured, click Update to apply the settings.
Finalizing and Deploying
After configuring the EC2 instance:
- Review the infrastructure in the Diagram view to ensure all settings are correct.
- If everything looks good, click Deploy to deploy the EC2 instance to AWS.
Troubleshooting
If you encounter issues during deployment, here are a few common troubleshooting steps:
EC2 Instance Not Starting:
- Check your Security Groups and IAM Roles to ensure they are correctly set up.
Permission Errors:
- Make sure your AWS account has the necessary permissions to manage EC2 instances and IAM roles.
Invalid AMI ID:
- Double-check the AMI ID field to ensure it corresponds to the correct operating system and region.
Fields Configuration
The following table describes all the visible configuration fields for the AWS EC2 module in FactorFifty. Mandatory fields are emphasized, and dependencies (if applicable) are noted.
| Field | Description | Type | Default Value | Mandatory | Dependencies/Conditions |
|---|---|---|---|---|---|
| Factor Fifty Identifier | Unique identifier for the EC2 instance in FactorFifty. | Input | ec2-instance | Yes | - |
| Override AMI Check | Whether to provide your own custom AMI ID. | Toggle (Boolean) | false | Yes | - |
| Operating System | Select the operating system for the EC2 instance. | Dropdown | al2023 | Yes | Required when Override AMI Check is false. |
| AMI ID | The AMI ID to use for the instance. | Dropdown (API) | - | No | Required when Override AMI Check is false and Operating System is set. |
| Override AMI ID | Provide a custom AMI ID for the instance. | Input | - | No | Required when Override AMI Check is true. |
| Instance Type | Select the EC2 instance type. | Dropdown (API) | - | Yes | - |
| Use Existing Key Pair | Whether to use an existing key pair. | Toggle (Boolean) | true | Yes | - |
| Public Key Name | The name of the public key for an existing key pair. | Input | - | Yes | Required when Use Existing Key Pair is true. |
| Public Key | The public key to use if not using an existing key pair. | Input | - | No | Required when Use Existing Key Pair is false. |
| Subnet ID | The VPC Subnet ID to launch the instance in. | Input | {parent}.subnet_ids[0] | Yes | - |
| Security Group IDs | List of security group IDs to associate with the instance. | Input List | [] | No | - |
| Root Volume Size | Size of the root volume in gigabytes. | Number | 20 | No | - |
| Root Volume Type | Type of root volume (e.g., standard, gp2, gp3, io1). | Dropdown | gp3 | No | - |
| Associate Public IP | Whether to associate a public IP with the instance. | Toggle (Boolean) | false | No | - |
| Tags | Tags to apply to the resources. | Input List | {} | No | - |
| Additional Block Devices | Additional EBS block devices to attach to the instance. | JSON Input | [{}] | No | - |
| Backup Enabled | Whether to enable backup for the instance. | Toggle (Boolean) | false | No | - |
| Detailed Monitoring | Whether to enable detailed monitoring for the instance. | Toggle (Boolean) | false | No | - |
| Get Password Data | Whether to get password data for the instance. | Toggle (Boolean) | false | No | - |
| EBS Optimized | Whether the instance is EBS optimized. | Toggle (Boolean) | false | No | - |
| Availability Zone | The availability zone to launch the instance in. | Input | - | No | - |
| Disable API Stop | Whether to disable the ability to stop the instance via API. | Toggle (Boolean) | false | No | - |
| Disable API Termination | Whether to disable the ability to terminate the instance via API. | Toggle (Boolean) | false | No | - |
| Network Interface | The network interface to associate with the instance. | Input | null | No | - |
| Private IP | The private IP to associate with the instance in a VPC. | Input | null | No | - |
| Source/Dest Check | Whether to enable source/destination checking for the instance. | Toggle (Boolean) | true | No | - |
| Tenancy | The tenancy of the instance. | Input | default | No | - |
| Additional User Data | Additional user data to provide to the instance. | Input | echo "No additional user data provided" | No | - |
| Volume Tags | Tags to apply to the root volume. | Input List | {} | No | - |
| Hibernation | Whether to enable hibernation for the instance. | Toggle (Boolean) | false | No | - |
| CPU Credits | The credit option for CPU usage (e.g., standard, unlimited). | Input | unlimited | No | - |