turbot/alicloud
steampipe plugin install alicloud

Table: alicloud_ecs_disk - Query Alibaba Cloud Elastic Compute Service Disks using SQL

The Alibaba Cloud Elastic Compute Service (ECS) provides scalable, on-demand cloud servers for secure, flexible, and efficient application environments. ECS supports both Linux and Windows OS and offers a variety of instance types optimized to fit different workloads and scenarios. It allows users to manage the underlying physical resources while focusing on developing and deploying applications.

Table Usage Guide

The alicloud_ecs_disk table provides insights into the Elastic Compute Service Disks within Alibaba Cloud. As a system administrator, explore disk-specific details through this table, including status, type, and size. Utilize it to uncover information about disks, such as those with high usage, the types of disks in use, and the verification of disk sizes.

Examples

Basic info

Explore which Alibaba Cloud Elastic Compute Service (ECS) disks are being used, their sizes, types, and billing methods. This information can help you understand your usage and costs, and make informed decisions about resource allocation and budgeting.

select
name,
disk_id,
arn,
size,
type,
billing_method,
zone,
region
from
alicloud_ecs_disk;
select
name,
disk_id,
arn,
size,
type,
billing_method,
zone,
region
from
alicloud_ecs_disk;

Unencrypted Disks

Determine the areas in which there are unencrypted disks in your Alicloud ECS instances. This can help in identifying potential security risks and ensuring that all data storage devices comply with encryption standards.

select
name,
disk_id,
encrypted,
zone,
status,
size,
instance_id,
kms_key_id
from
alicloud_ecs_disk
where
not encrypted;
select
name,
disk_id,
encrypted,
zone,
status,
size,
instance_id,
kms_key_id
from
alicloud_ecs_disk
where
encrypted = 0;

List of disks Encrypted with Default Service CMK

select
name,
disk_id,
encrypted,
zone,
status,
size,
instance_id,
kms_key_id
from
alicloud_ecs_disk
where
encrypted
and kms_key_id = '';

List Auto Snapshot Policy details applied to disk

This query is used to explore the details of auto snapshot policies applied to encrypted disks in the Alibaba Cloud ECS service. It helps in managing and understanding the security aspects of disk storage by identifying those without a specified Key Management Service (KMS) key ID.

```sql+sqlite
```sql
select
name,
disk_id,
encrypted,
zone,
status,
size,
instance_id,
kms_key_id
from
alicloud_ecs_disk
where
encrypted = 1
and kms_key_id = '';
select
name,
auto_snapshot_policy_id,
auto_snapshot_policy_name,
auto_snapshot_policy_creation_time,
auto_snapshot_policy_enable_cross_region_copy,
auto_snapshot_policy_repeat_week_days,
auto_snapshot_policy_retention_days,
auto_snapshot_policy_status,
auto_snapshot_policy_time_points,
auto_snapshot_policy_tags
from
alicloud_ecs_disk;

List of disks without owner tag key

Discover the segments that lack an assigned 'owner' in the disk resource data, allowing for prompt identification and rectification of unassigned resources.

select
name,
disk_id,
tags
from
alicloud_ecs_disk
where
tags ->> 'owner' is null;
select
name,
disk_id,
tags
from
alicloud_ecs_disk
where
json_extract(tags, '$.owner') is null;

List disks attached to a specific instance

Determine the specifics of disks attached to a particular instance, such as their size, type, billing method, and encryption status. This can be useful to assess storage usage, cost implications, and security measures.

select
name,
disk_id,
size,
type,
billing_method,
zone,
region,
encrypted
from
alicloud_ecs_disk
where
instance_id = 'i-0xickpvpsaih9w7s4zrq';
select
name,
disk_id,
size,
type,
billing_method,
zone,
region,
encrypted
from
alicloud_ecs_disk
where
instance_id = 'i-0xickpvpsaih9w7s4zrq';

List of disks not attached to any instances

Identify the disks that are currently not in use within your system. This can help manage resources more effectively by highlighting potential areas for storage optimization.

select
name,
disk_id,
status,
attached_time,
detached_time
from
alicloud_ecs_disk
where
status = 'Available';
select
name,
disk_id,
status,
attached_time,
detached_time
from
alicloud_ecs_disk
where
status = 'Available';

Disk count in each availability zone

Uncover the details of disk distribution across different availability zones to optimize resource allocation and balance load. This can be beneficial for improving system performance and resilience.

select
zone,
count(*)
from
alicloud_ecs_disk
group by
zone
order by
count desc;
select
zone,
count(*)
from
alicloud_ecs_disk
group by
zone
order by
count(*) desc;

Top 10 largest Disks

Analyze your cloud storage to pinpoint the specific locations where the ten largest disks are in use. This is particularly useful for managing storage resources and planning for capacity upgrades.

select
name,
disk_id,
size,
status,
instance_id
from
alicloud_ecs_disk
order by
size desc
limit
10;
select
name,
disk_id,
size,
status,
instance_id
from
alicloud_ecs_disk
order by
size desc
limit
10;

List of disks having no attached running instances

Determine the areas in which disks are not being utilized by identifying instances where disks are not attached to any running instances. This query is useful in pinpointing potential resources that may be underutilized or misallocated, helping optimize resource allocation and potentially reducing costs.

select
i.instance_id as "Instance ID",
i.name as "Name",
i.arn as "Instance ARN",
i.status as "Instance State",
attachment ->> 'AttachedTime' as "Attachment Time"
from
alicloud_ecs_disk as v,
jsonb_array_elements(attachments) as attachment,
alicloud_ecs_instance as i
where
i.instance_id = attachment ->> 'InstanceId'
and i.status <> 'Running'
order by
i.instance_id;
select
i.instance_id as "Instance ID",
i.name as "Name",
i.arn as "Instance ARN",
i.status as "Instance State",
json_extract(attachment.value, '$.AttachedTime') as "Attachment Time"
from
alicloud_ecs_disk as v,
json_each(attachments) as attachment,
alicloud_ecs_instance as i
where
i.instance_id = json_extract(attachment.value, '$.InstanceId')
and i.status <> 'Running'
order by
i.instance_id;

Schema for alicloud_ecs_disk

NameTypeOperatorsDescription
_ctxjsonbSteampipe context in JSON form, e.g. connection_name.
account_idtextThe Alicloud Account ID in which the resource is located.
akasjsonbArray of globally unique identifier strings (also known as) for the resource.
arntextThe Alibaba Cloud Resource Name (ARN) of the ECS disk.
attached_timetimestamp with time zoneThe time when the disk was attached.
attachmentsjsonbThe attachment information of the cloud disk.
auto_snapshot_policy_creation_timetextThe time when the auto snapshot policy was created.
auto_snapshot_policy_enable_cross_region_copybooleanThe ID of the automatic snapshot policy applied to the disk.
auto_snapshot_policy_idtextThe ID of the automatic snapshot policy applied to the disk.
auto_snapshot_policy_nametextThe name of the automatic snapshot policy applied to the disk.
auto_snapshot_policy_repeat_week_daystextThe days of a week on which automatic snapshots are created. Valid values: 1 to 7, which corresponds to the days of the week. 1 indicates Monday. One or more days can be specified.
auto_snapshot_policy_retention_daysbigintThe retention period of the automatic snapshot.
auto_snapshot_policy_statustextThe status of the automatic snapshot policy.
auto_snapshot_policy_tagsjsonbThe days of a week on which automatic snapshots are created. Valid values: 1 to 7, which corresponds to the days of the week. 1 indicates Monday. One or more days can be specified.
auto_snapshot_policy_time_pointstextThe points in time at which automatic snapshots are created. The least interval at which snapshots can be created is one hour. Valid values: 0 to 23, which corresponds to the hours of the day from 00:00 to 23:00. 1 indicates 01:00. You can specify multiple points in time.
billing_methodtextThe billing method of the disk. Possible values are: PrePaid and PostPaid.
categorytextThe category of the disk.
creation_timetimestamp with time zoneThe time when the disk was created.
delete_auto_snapshotbooleanIndicates whether the automatic snapshots of the disk are deleted when the disk is released.
delete_with_instancebooleanIndicates whether the disk is released when its associated instance is released.
descriptiontextA user provided, human readable description for this resource.
detached_timetimestamp with time zoneThe time when the disk was detached.
devicetextThe device name of the disk on its associated instance.
disk_idtext=An unique identifier for the resource.
enable_auto_snapshotbooleanIndicates whether the automatic snapshot policy feature was enabled for the disk.
enable_automated_snapshot_policybooleanIndicates whether an automatic snapshot policy was applied to the disk.
encryptedbooleanIndicates whether the disk was encrypted.
expired_timetimestamp with time zoneThe time when the subscription disk expires.
image_idtextThe ID of the image used to create the instance. This parameter is empty unless the disk was created from an image. The value of this parameter remains unchanged throughout the lifecycle of the disk.
instance_idtextThe ID of the instance to which the disk is attached. This parameter has a value only when the value of Status is In_use.
iopsbigintThe number of input/output operations per second (IOPS).
iops_readbigintThe number of I/O reads per second.
iops_writebigintThe number of I/O writes per second.
kms_key_idtextThe device name of the disk on its associated instance.
mount_instance_numbigintThe number of instances to which the Shared Block Storage device is attached.
mount_instancesjsonbThe attaching information of the disk.
nametextA friendly name for the resource.
operation_lockjsonbThe reasons why the disk was locked.
performance_leveltextThe performance level of the ESSD.
portablebooleanIndicates whether the disk is removable.
product_codetextThe product code in Alibaba Cloud Marketplace.
regiontextThe Alicloud region in which the resource is located.
resource_group_idtextThe ID of the resource group to which the disk belongs.
serial_numbertextThe serial number of the disk.
sizebigintSpecifies the size of the disk.
source_snapshot_idtextThe ID of the snapshot used to create the disk. This parameter is empty unless the disk was created from a snapshot. The value of this parameter remains unchanged throughout the lifecycle of the disk.
statustextSpecifies the current state of the resource.
storage_set_idtextThe ID of the storage set.
storage_set_partition_numberbigintThe maximum number of partitions in a storage set.
tagsjsonbA map of tags for the resource.
tags_srcjsonbA list of tags attached with the resource.
titletextTitle of the resource.
typetextSpecifies the type of the disk. Possible values are: 'system' and 'data'.
zonetextThe zone name in which the resource is created.

Export

This table is available as a standalone Exporter CLI. Steampipe exporters are stand-alone binaries that allow you to extract data using Steampipe plugins without a database.

You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_export_installer.sh script:

/bin/sh -c "$(curl -fsSL https://steampipe.io/install/export.sh)" -- alicloud

You can pass the configuration to the command with the --config argument:

steampipe_export_alicloud --config '<your_config>' alicloud_ecs_disk