Демистификация режимов доступа к EFS: выберите правильный подход для ваших потребностей в хранении файлов

Режимы доступа EFS: изучение различных способов доступа к вашим файлам

При работе с Amazon Elastic File System (EFS) понимание различных режимов доступа имеет решающее значение для оптимизации доступа к файлам и обеспечения эффективной производительности. В этой статье блога мы углубимся в различные режимы доступа к EFS, объясним их на повседневном языке и предоставим примеры кода, иллюстрирующие их использование. Итак, возьмите свой любимый напиток, расслабьтесь и давайте исследовать мир режимов доступа EFS!

Режимы доступа раскрыты:

  1. Общий режим (по умолчанию):
    Режим доступа общего назначения предназначен для большинства случаев использования. Он обеспечивает хороший баланс производительности и стоимости. В этом режиме к файлам могут одновременно обращаться несколько экземпляров EC2 в группе безопасности. Это похоже на общий диск, доступный всем членам вашей команды.

Пример фрагмента кода:

import boto3
efs_client = boto3.client('efs')
response = efs_client.create_mount_target(
    FileSystemId='fs-12345678',
    SubnetId='subnet-12345678',
    SecurityGroups=['sg-12345678']
)
print("Mount target created:", response['MountTargetId'])
  1. Максимальный ввод-вывод.
    Если вашему приложению требуется более высокий уровень параллелизма и пропускной способности, вам подойдет режим доступа «Максимальный ввод-вывод». Он позволяет тысячам экземпляров EC2 одновременно получать доступ к файлам, что делает его идеальным для рабочих нагрузок с интенсивным использованием данных.

Пример фрагмента кода:

import boto3
efs_client = boto3.client('efs')
response = efs_client.update_file_system(
    FileSystemId='fs-12345678',
    ThroughputMode='bursting',
    ProvisionedThroughputInMibps=100
)
print("File system updated:", response['FileSystemId'])
  1. Пакетный режим.
    Пакетный режим доступа подходит для рабочих нагрузок с непредсказуемыми или прерывистыми шаблонами доступа к файлам. Он предоставляет дополнительные кредиты, которые позволяют вашей файловой системе при необходимости на короткие периоды времени превышать базовую производительность.

Пример фрагмента кода:

import boto3
efs_client = boto3.client('efs')
response = efs_client.update_file_system(
    FileSystemId='fs-12345678',
    ThroughputMode='bursting'
)
print("File system updated:", response['FileSystemId'])
  1. Предоставлено:
    Если вам требуется стабильный и более высокий уровень пропускной способности, режим Предоставленный доступ позволяет вам указать точный объем пропускной способности, необходимый вашему приложению. Этот режим подходит для рабочих нагрузок, чувствительных к задержкам или высокой пропускной способности.

Пример фрагмента кода:

import boto3
efs_client = boto3.client('efs')
response = efs_client.update_file_system(
    FileSystemId='fs-12345678',
    ThroughputMode='provisioned',
    ProvisionedThroughputInMibps=500
)
print("File system updated:", response['FileSystemId'])
  1. Одна зона.
    Режим доступа «Одна зона» обеспечивает хранение файлов в одной зоне доступности (AZ) вместо обычного резервирования в нескольких зонах доступности, предлагаемого EFS. Он обеспечивает экономию средств, но снижает доступность и долговечность.

Пример фрагмента кода:

import boto3
efs_client = boto3.client('efs')
response = efs_client.create_file_system(
    CreationToken='my-efs-one-zone',
    PerformanceMode='generalPurpose',
    ThroughputMode='bursting',
    AvailabilityZoneName='us-west-2a'
)
print("File system created:", response['FileSystemId'])