Skip to main content
Version: 0.0.14

Elastic IP

Elastic IPs are static public IP addresses that can be assigned to your cloud resources.

Commands

List Elastic IPs

List all Elastic IPs in your project.

acloud network elasticip list [flags]

Flags:

  • --project-id string - Project ID (uses context if not specified)

Example:

# List Elastic IPs using context
acloud network elasticip list

# List with explicit project ID
acloud network elasticip list --project-id 68398923fb2cb026400d4d31

Output:

NAME                    ID                        ADDRESS          STATUS
prod-api-ip 68ffa0ddce76e7da20465721 209.227.232.229 InUse
staging-web-ip 69007f71ce76e7da20465a52 95.110.142.229 InUse
dev-test-ip 6908820cf974c5deb5decd6c 209.227.232.182 NotUsed

Get Elastic IP Details

Get detailed information about a specific Elastic IP.

acloud network elasticip get <elastic-ip-id> [flags]

Arguments:

  • elastic-ip-id - The ID of the Elastic IP (supports auto-completion)

Flags:

  • --project-id string - Project ID (uses context if not specified)

Example:

acloud network elasticip get 68ffa0ddce76e7da20465721

Output:

Elastic IP Details:
===================
ID: 68ffa0ddce76e7da20465721
URI: /projects/.../elasticIps/68ffa0ddce76e7da20465721
Name: prod-api-ip
Address: 209.227.232.229
Billing Period: Hour
Linked Resources: 2
Creation Date: 27-10-2025 16:42:05
Created By: aru-297647
Tags: [production api public]
Status: InUse

Create Elastic IP

Create a new Elastic IP.

acloud network elasticip create [flags]

Required Flags:

  • --name string - Name for the Elastic IP
  • --region string - Region code (e.g., ITBG-Bergamo)
  • --billing-period string - Billing period: Hour, Month, or Year

Optional Flags:

  • --tags strings - Tags for the Elastic IP (comma-separated)
  • --project-id string - Project ID (uses context if not specified)

Examples:

# Create hourly-billed Elastic IP
acloud network elasticip create \
--name "my-elastic-ip" \
--region ITBG-Bergamo \
--billing-period Hour

# Create monthly-billed Elastic IP with tags
acloud network elasticip create \
--name "prod-api-ip" \
--region ITBG-Bergamo \
--billing-period Month \
--tags production,api,public

# Create yearly-billed Elastic IP
acloud network elasticip create \
--name "long-term-ip" \
--region ITBG-Bergamo \
--billing-period Year \
--tags production,critical

Output:

Elastic IP created successfully!
ID: 69485a704d0cdc87949b6ffe
Name: my-elastic-ip

Notes:

  • Elastic IPs are in InCreation state initially
  • The IP address is assigned automatically
  • Billing starts once the IP is created

Billing Period Options:

  • Hour - Pay per hour (flexible, higher unit cost)
  • Month - Monthly commitment (cost-effective for steady usage)
  • Year - Annual commitment (most cost-effective for long-term use)

Update Elastic IP

Update an existing Elastic IP's name and/or tags.

acloud network elasticip update <elastic-ip-id> [flags]

Arguments:

  • elastic-ip-id - The ID of the Elastic IP (supports auto-completion)

Flags:

  • --name string - New name for the Elastic IP
  • --tags strings - New tags for the Elastic IP (comma-separated)
  • --project-id string - Project ID (uses context if not specified)

Note: At least one of --name or --tags must be provided.

Examples:

# Update Elastic IP name
acloud network elasticip update 68ffa0ddce76e7da20465721 --name "prod-api-gateway"

# Update Elastic IP tags
acloud network elasticip update 68ffa0ddce76e7da20465721 --tags production,api,critical

# Update both name and tags
acloud network elasticip update 68ffa0ddce76e7da20465721 \
--name "prod-frontend-ip" \
--tags production,frontend,load-balanced

Output:

Elastic IP updated successfully!
ID: 68ffa0ddce76e7da20465721
Name: prod-frontend-ip
Tags: [production frontend load-balanced]

Restrictions:

  • Cannot update Elastic IPs in InCreation state
  • Cannot change the IP address or billing period after creation
  • Wait for NotUsed or InUse state before updating

Delete Elastic IP

Delete an Elastic IP.

acloud network elasticip delete <elastic-ip-id> [flags]

Arguments:

  • elastic-ip-id - The ID of the Elastic IP (supports auto-completion)

Flags:

  • --project-id string - Project ID (uses context if not specified)
  • -y, --yes - Skip confirmation prompt

Examples:

# Delete with confirmation prompt
acloud network elasticip delete 68ffa0ddce76e7da20465721

# Delete without confirmation
acloud network elasticip delete 68ffa0ddce76e7da20465721 --yes

# Delete with explicit project ID
acloud network elasticip delete 68ffa0ddce76e7da20465721 \
--project-id 68398923fb2cb026400d4d31 \
--yes

Confirmation Prompt:

Are you sure you want to delete Elastic IP 68ffa0ddce76e7da20465721? This action cannot be undone.
Type 'yes' to confirm: yes

Elastic IP 68ffa0ddce76e7da20465721 deleted successfully!

Notes:

  • Detach Elastic IP from resources before deletion
  • Deletion is immediate and cannot be undone
  • Billing stops after deletion

Shell Auto-completion

The Elastic IP commands support intelligent auto-completion for Elastic IP IDs:

# Enable completion (bash)
source <(acloud completion bash)

# Type command and press TAB to see available Elastic IP IDs
acloud network elasticip get <TAB>
acloud network elasticip update <TAB>
acloud network elasticip delete <TAB>

Auto-completion shows Elastic IP IDs with their names:

68ffa0ddce76e7da20465721    prod-api-ip
69007f71ce76e7da20465a52 staging-web-ip
6908820cf974c5deb5decd6c dev-test-ip

Elastic IP States

Elastic IPs can be in the following states:

StateDescriptionCan Update?Can Delete?
InCreationIP is being created❌ No❌ No
NotUsedIP created but not attached✅ Yes✅ Yes
InUseIP is attached to a resource✅ Yes⚠️ Detach first

Elastic IP Properties

IP Address

The IP address is assigned automatically by Aruba Cloud:

  • Cannot be specified during creation
  • Cannot be changed after creation
  • Remains constant for the Elastic IP's lifetime
  • Released when the Elastic IP is deleted

Billing Period

The billing period is set during creation and cannot be changed:

  • Hour: Most flexible, billed hourly
  • Month: Monthly commitment, better value
  • Year: Annual commitment, best value

To change billing period, you must delete and recreate the Elastic IP.

Linked Resources

Elastic IPs can be attached to resources:

  • Virtual machines
  • Load balancers
  • Network interfaces

The Linked Resources count shows how many resources are using this IP.

Common Workflows

Creating and Configuring an Elastic IP

# 1. Create the Elastic IP
EIP_ID=$(acloud network elasticip create \
--name "prod-api-ip" \
--region ITBG-Bergamo \
--billing-period Month \
--tags production | grep "ID:" | awk '{print $2}')

# 2. Wait for creation to complete
while true; do
STATUS=$(acloud network elasticip get $EIP_ID | grep "Status:" | awk '{print $2}')
if [ "$STATUS" = "NotUsed" ] || [ "$STATUS" = "InUse" ]; then
break
fi
echo "Waiting for Elastic IP to be ready... (current: $STATUS)"
sleep 5
done

# 3. Get the assigned IP address
IP_ADDR=$(acloud network elasticip get $EIP_ID | grep "Address:" | awk '{print $2}')
echo "Elastic IP ready: $IP_ADDR"

# 4. Update with additional tags
acloud network elasticip update $EIP_ID --tags production,api,public

# 5. Verify configuration
acloud network elasticip get $EIP_ID

Managing Multiple Elastic IPs

# List all Elastic IPs
acloud network elasticip list

# Tag IPs by purpose
acloud network elasticip update <eip-id-1> --tags production,api
acloud network elasticip update <eip-id-2> --tags staging,web
acloud network elasticip update <eip-id-3> --tags development,testing

# Get details of all Elastic IPs
for eip_id in $(acloud network elasticip list | tail -n +2 | awk '{print $2}'); do
echo "=== Elastic IP: $eip_id ==="
acloud network elasticip get $eip_id
echo ""
done

Cleaning Up Unused Elastic IPs

# List all Elastic IPs
acloud network elasticip list

# Identify unused IPs (Status: NotUsed)
acloud network elasticip list | grep "NotUsed"

# Delete unused Elastic IPs
acloud network elasticip delete <unused-eip-id> --yes

# Verify deletion
acloud network elasticip list

Best Practices

  1. Choose Appropriate Billing Period

    # Short-term testing
    acloud network elasticip create --name "test-ip" --region ITBG-Bergamo --billing-period Hour

    # Long-term production
    acloud network elasticip create --name "prod-ip" --region ITBG-Bergamo --billing-period Year
  2. Use Descriptive Names

    acloud network elasticip create \
    --name "prod-api-gateway-ip" \
    --region ITBG-Bergamo \
    --billing-period Month
  3. Tag by Environment and Purpose

    acloud network elasticip update <eip-id> --tags production,frontend,load-balanced
  4. Monitor Usage

    # Check which IPs are in use
    acloud network elasticip list | grep "InUse"

    # Check which IPs are not being used
    acloud network elasticip list | grep "NotUsed"
  5. Clean Up Unused IPs

    # Unused IPs still incur charges
    # Delete IPs you're not using
    acloud network elasticip delete <unused-eip-id> --yes

Cost Optimization

Billing Period Selection

Choose the right billing period based on expected usage:

DurationRecommended PeriodReason
< 1 monthHourFlexibility, no commitment
1-12 monthsMonthBalance of flexibility and cost
> 12 monthsYearMaximum savings

Identifying Unused IPs

# Find all NotUsed IPs
acloud network elasticip list | grep "NotUsed"

# Get details to determine if they're needed
acloud network elasticip get <eip-id>

# Delete if no longer needed
acloud network elasticip delete <eip-id> --yes

Troubleshooting

"Cannot update Elastic IP while in InCreation state"

Problem: Trying to update an Elastic IP that hasn't finished creating.

Solution:

# Check current status
acloud network elasticip get <eip-id>

# Wait for Status to become "NotUsed" or "InUse"
# Then retry the update
acloud network elasticip update <eip-id> --name "new-name"

"Error: --billing-period must be Hour, Month, or Year"

Problem: Invalid billing period specified.

Solution:

# Use one of the valid values (case-sensitive)
acloud network elasticip create \
--name "my-ip" \
--region ITBG-Bergamo \
--billing-period Month # Not "monthly" or "month"

IP Address Not Showing After Creation

Problem: Elastic IP created but address field is empty.

Solution:

# Wait a few seconds for IP assignment
sleep 5

# Check again
acloud network elasticip get <eip-id>

# The address should now be populated

Cannot Delete IP Attached to Resource

Problem: Elastic IP is in use and cannot be deleted.

Solution:

# Check which resources are using the IP
acloud network elasticip get <eip-id>

# Detach the IP from resources first (via resource management)
# Then delete the Elastic IP
acloud network elasticip delete <eip-id> --yes