Amazon Elastic Compute Cloud (EC2)¶
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable computing capacity—literally, servers in Amazon’s data centers—that you use to build and host your software systems.
Prerequisite Tasks¶
To use these operators, you must do a few things:
Create necessary resources using AWS Console or AWS CLI.
Install API libraries via pip.
pip install 'apache-airflow[amazon]'Detailed information is available Installation of Apache Airflow®
Operators¶
Start an Amazon EC2 instance¶
To start an Amazon EC2 instance you can use
EC2StartInstanceOperator.
start_instance = EC2StartInstanceOperator(
    task_id="start_instance",
    instance_id=instance_id,
)
Stop an Amazon EC2 instance¶
To stop an Amazon EC2 instance you can use
EC2StopInstanceOperator.
stop_instance = EC2StopInstanceOperator(
    task_id="stop_instance",
    instance_id=instance_id,
)
Create and start an Amazon EC2 instance¶
To create and start an Amazon EC2 instance you can use
EC2CreateInstanceOperator.
create_instance = EC2CreateInstanceOperator(
    task_id="create_instance",
    image_id=image_id,
    max_count=1,
    min_count=1,
    config=config,
)
Terminate an Amazon EC2 instance¶
To terminate an Amazon EC2 instance you can use
EC2TerminateInstanceOperator.
terminate_instance = EC2TerminateInstanceOperator(
    task_id="terminate_instance",
    instance_ids=instance_id,
    wait_for_completion=True,
)
Sensors¶
Wait on an Amazon EC2 instance state¶
To check the state of an Amazon EC2 instance and wait until it reaches the target state you can use
EC2InstanceStateSensor.
await_instance = EC2InstanceStateSensor(
    task_id="await_instance",
    instance_id=instance_id,
    target_state="running",
)
