AWS Batch에서 ‘No space left on device’ 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

AWS Batch 작업이 실패하면 ‘No space left on device’이라는 오류 메시지가 표시됩니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS Batch는 다음 두 가지 이유로 “디바이스에 남은 공간 없음” 오류를 반환할 수 있습니다.

  • Amazon Elastic Block Store(Amazon EBS)에서 호스트되는 Docker 볼륨에 디스크 공간이 부족합니다.
  • (Amazon Linux 1에만 해당) 기본 Docker 스토리지 제한인 10GiB에 도달했습니다.

이 오류를 해결하려면 먼저 Amazon EBS에 호스트된 Docker 볼륨에 디스크 공간이 충분한지 확인하세요. 디스크 공간이 충분하지 않으면 Amazon EBS 볼륨의 크기를 늘립니다. 디스크 공간이 충분하면 기본 Docker 스토리지 제한을 늘립니다.

두 해결책 모두 새로운 사용자 지정 시작 템플릿새로운 컴퓨팅 환경을 생성해야 합니다. AWS Batch의 기존 컴퓨팅 환경에는 새 사용자 지정 시작 템플릿을 추가할 수 없습니다.

참고: Amazon Elastic Container Service(Amazon ECS)에 최적화된 Amazon Linux Amazon Machine Image(AMI) 1은 더 이상 사용되지 않습니다. Amazon ECS 최적화 Amazon Linux 2 AMI는 AWS Batch에서 관리형 컴퓨팅 환경을 생성할 때 사용되는 기본 이미지입니다. 자세한 내용은 AMI 스토리지 구성을 참조하세요. 이 문서에서는 이전 버전과의 호환성을 위해서만 Amazon Linux 1을 참조합니다.

  • ECS Optimized Amazon Linux 1 AMI를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하는 AWS Batch ComputeEnvironment가 있는 경우 새 ComputeEnvironment를 만드는 것이 가장 좋습니다. 이 경우 AWS Batch는 사용 가능한 최신 ECS Optimized Amazon Linux 2 AMI를 사용하여 ComputeEnvironment를 만듭니다.
  • ECS Optimized Amazon Linux 2 AMI를 사용하여 시작된 Amazon EC2 인스턴스에서 실행 중인 작업에 대해 ‘No space left on device’ 오류가 발생할 경우, 루트 볼륨(/dev/xvda)의 크기를 늘려 컨테이너에 사용할 스토리지 공간을 추가로 확보하세요.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요. AWS CloudShell을 사용하여 다음 명령을 실행할 수도 있습니다.

Amazon EBS에 호스팅된 Docker 볼륨에 디스크 공간이 충분한지 확인

Docker에 사용 가능한 스토리지를 확인하려면 섹션 또는 AMI 스토리지 구성의 지침을 따릅니다.

디스크 공간이 충분하지 않으면 이 문서의 AWS Batch에서 Amazon EBS 볼륨의 크기를 늘리려면 섹션을 참조하세요.

-또는-

디스크 공간이 충분하면 이 문서의 (Amazon Linux 1에만 해당) 기본 Docker 스토리지 제한을 늘리려면 섹션을 참조하세요.

AWS Batch에서 Amazon EBS 볼륨의 크기 늘리기

1.    AWS Batch 컴퓨팅 리소스에서 Docker 데이터 볼륨(기본 ECS Optimized AL2 이미지에서 /dev/xvda)의 크기를 조정(현재보다 큰 ‘VolumeSize’ 추가)하는 새 사용자 지정 시작 템플릿을 생성합니다. 지침은 시작 템플릿 지원을 참조하세요.

참고: Amazon Linux 1을 사용하는 경우 DeviceName 값에 필요한 Docker 볼륨(/dev/xvda/dev/xvdcz)을 모두 입력해야 합니다.

2.    새 시작 템플릿을 사용하는 새 컴퓨팅 환경을 생성합니다.

참고: 연결된 Amazon EC2 인스턴스는 AWS Batch가 인스턴스를 가동할 때 새 드라이브 크기를 표시합니다.

(Amazon Linux 1에만 해당) 기본 Docker 스토리지 제한을 늘리려면

1.    기본 Docker 스토리지 제한을 늘리는 MIME 멀티파트 아카이브 형식을 사용하여 새 사용자 지정 시작 템플릿을 생성합니다. 자세한 내용은 시작 템플릿의 Amazon EC2 사용자 데이터를 참조하세요.

AWS Batch 컴퓨팅 리소스에 대한 기본 Docker 이미지 설정을 재정의하는 예제 MIME 멀티파트 파일

Content-Type: multipart/mixed; boundary="==BOUNDARY=="
MIME-Version: 1.0

--==BOUNDARY==
Content-Type: text/cloud-boothook; charset="us-ascii"
#cloud-boothook
#!/bin/bash
cloud-init-per once docker_options echo 'OPTIONS="${OPTIONS} --storage-opt dm.basesize=20G"' >> /etc/sysconfig/docker

--==BOUNDARY==--

중요: AWS CLI 또는 AWS SDK를 사용하는 경우 먼저 사용자 데이터를 base64로 인코딩해야 합니다. 그런 다음 CreateLaunchTemplate API를 호출할 때 해당 문자열을 UserData 파라미터의 값으로 제출합니다.

2.    새 시작 템플릿을 사용하는 새 컴퓨팅 환경을 생성합니다.


AWS 공식
AWS 공식업데이트됨 2년 전