Cześć, w tym artykule pokażę Ci, jak za pomocą funkcji Lambda i CLI znaleźć wszystkie dyski (volume) typu gp2 we wszystkich regionach. Dlaczego warto to zrobić? Dlatego że gp3 są w większość przypadków szybsze, bardziej wydajne i oczywiście tańsze 🙂
Trochę o gp2 i gp3 pisałem już w artykule Amazon EBS Volumes i gp3 – możesz zaoszczędzić do 20% (lepczynski.it). Znajdziesz tam także prosty sposób na zmianę typu dysku.
Zazwyczaj domyślnym typem dysku jest gp2. Jeśli zapomniałeś zmienić typ na inny, to volume tworzony jest właśnie w domyślnym formacie, czyli gp2. Jeśli masz mało dysków, to możesz sprawdzić wszystkie dyski za pomocą konsoli po kolei, we wszystkich regionach. Jednak dla tych, którzy mają dużo dysków i tych, co lubią automatyzację, przygotowałem poniższy tutorial. Dzięki niemu upewnisz się, czy nie zapodział się w jakimś regionie dysk w niechcianym typie.
Funkcja Lambda

Jeśli lubisz funkcję lambda, to poniżej znajdziesz kod, który pozwoli na odszukanie wszystkich dysków typu gp2 we wszystkich regionach za jednym razem i wypisze ich ID. Otrzymujesz konkretną listę, z którą możesz działać dalej.
import json
import boto3
ec2_client = boto3.client('ec2')
regions = [region['RegionName'] for region in ec2_client.describe_regions()['Regions']]
list_all_gp2_volumes = list()
volume_types = ['gp2']
def lambda_handler(event, context):
for region in regions:
ec2_client = boto3.client('ec2', region)
gp2_volumes = ec2_client.describe_volumes(
Filters=[
{
'Name': 'volume-type',
'Values': volume_type
},
]
)
if gp2_volumes:
for gp2_volume in gp2_volumes['Volumes']:
print("Region: %s" % region)
print(gp2_volume['VolumeId'])
list_all_gp2_volumes.append(gp2_volume['VolumeId'])
return list_all_gp2_volumes
Co ważne zmieniając parametr volume_type
możesz poszukać także innych typów dysków. Możesz także dodać po przecinku kolejne typy. Dzięki temu za jednym uruchomieniem funkcji znajdziesz wszystkie dyski określonych typów we wszystkich regionach. Poniżej lista dostępnych typów dla EBS volumes:
gp2
gp3
io1
io2
st1
sc1
standard
Pamiętaj tylko by dać swojej funkcji lambda odpowiednie uprawnienia. Najlepiej stworzyć dedykowaną rolę tylko do tego celu z odpowiednimi uprawnieniami np.:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}
]
}
CLI – aws ec2 describe-volumes

Jeśli preferujesz używanie CLI, to za pomocą jednego polecenia możesz sprawdzić jakiego typu dyski posiadasz w danym regionie. Polecenie przedstawione poniżej wypisze tylko VolumeId
dysków (volume) typu gp2
z regionu eu-central-1
.
aws ec2 describe-volumes \
--region eu-central-1 \
--filters Name=volume-type,Values=gp2 \
--query "Volumes[*].{ID:VolumeId}"
Podsumowanie
Mam nadzieję, że przyda Ci się wiedza zdobyta w tym artykule. Dzięki niej możesz usprawnić swoją chmurę, obniżyć rachunki, a nawet dostać podwyżkę. Zmieniając typ dysku, możesz zaoszczędzić prawdziwe pieniądze. Prawda jest taka, że zwiększając swoją wiedzę, zwiększasz swoją wartość na rynku pracy:)
Już niedługo kolejne porady pozwalające zautomatyzować pracę, usprawnić ją i obniżyć koszty używania chmury. Zajrzyj też na mój kanał YouTube, znajdziesz tam kolejne chmurowe porady.