Amazon Linux 1 AMI에서 시작된 Amazon ECS 인스턴스에 대한 Docker 컨테이너 스토리지 볼륨 제한을 늘리려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 8월 23일

Amazon Linux 1 Amazon 머신 이미지(AMI)에서 시작된 Amazon ECS(Amazon Elastic Container Service) 인스턴스에 대한 Docker 컨테이너 스토리지 볼륨 제한을 늘리려면 어떻게 해야 합니까?

간략한 설명

기본적으로 Docker는 Amazon ECS 컨테이너 인스턴스에 생성하는 각 볼륨에 대해 10GiB(기비바이트)의 스토리지를 할당합니다. 볼륨이 10GiB 한도에 도달하면 컨테이너 인스턴스가 충돌을 일으키지 않고는 해당 볼륨에 데이터를 더 이상 쓸 수 없습니다.

중요: 이 문서는 Amazon Linux 1 AMI를 사용하여 ECS 클러스터에서 컨테이너 인스턴스를 시작하는 경우에 해당됩니다. Amazon Linux 2 AMI는 디스크에 남아 있는 공간의 기본 스토리지 크기를 제공하는 Docker overlay2 스토리지 드라이버를 사용합니다.

해결 방법

참고: 다음 지침은 devicemapper 스토리지 드라이버를 사용하는 인스턴스에 적용됩니다.

1.    Amazon ECS 콘솔을 여십시오.

2.    탐색 창에서 [클러스터]를 선택합니다.

3.    스토리지 볼륨 제한을 늘리려는 컨테이너 인스턴스가 있는 클러스터를 선택합니다.

4.    [ECS 인스턴스] 보기를 선택합니다.

5.    SSH를 사용하여 컨테이너 인스턴스에 연결합니다.

6.    볼륨의 스토리지 크기를 보려면 다음 명령을 실행합니다.

sudo lsblk

다음과 유사한 출력이 표시됩니다.

NAME                                                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1                                                            259:1    0    8G  0 disk 
├─nvme0n1p1                                                        259:2    0    8G  0 part /
└─nvme0n1p128                                                      259:3    0    1M  0 part 
nvme1n1                                                            259:0    0   22G  0 disk 
└─nvme1n1p1                                                        259:4    0   22G  0 part 
  ├─docker-docker--pool_tdata                                      253:1    0 21.7G  0 lvm  
  │ └─docker-docker--pool                                          253:2    0 21.7G  0 lvm  
  │   └─docker-259:2-394380-e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
                                                                   253:3    0   10G  0 dm   /var/lib/docker/devicemapper/mnt/e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
  └─docker-docker--pool_tmeta                                      253:0    0   24M  0 lvm  
    └─docker-docker--pool                                          253:2    0 21.7G  0 lvm  
      └─docker-259:2-394380-e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
                                                                   253:3    0   10G  0 dm   /var/lib/docker/devicemapper/mnt/e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624

참고: 콘솔은 컨테이너 볼륨의 크기가 10G(10GiB와 동일)임을 보여줍니다.

7.    Docker 볼륨의 기본 스토리지 할당을 늘리려면 컨테이너 인스턴스의 Docker 데몬 구성 파일 /etc/sysconfig/docker에서 dm.basesize 스토리지 옵션을 10GiB보다 큰 값으로 설정합니다.

중요: dm.basesize 값을 설정한 후 Docker에서 가져온 새 이미지는 사용자가 설정한 새 스토리지 값을 사용합니다. 값을 변경하기 전에 생성되었거나 실행 중이던 컨테이너는 여전히 이전 스토리지 값을 사용합니다. Docker 데몬 구성을 지정하는 방법에 대한 자세한 내용은 Docker 데몬을 참조하십시오.

dm.basesize 옵션을 모든 컨테이너에 적용하려면 Docker 서비스가 시작되기 전에 옵션의 값을 설정합니다. 예를 들어, Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스의 사용자 데이터에서 다음 스크립트를 사용하여 기본 볼륨 할당을 20GiB로 설정할 수 있습니다.

#cloud-boothook
#!/bin/bash

cloud-init-per once docker_options echo 'OPTIONS="${OPTIONS} --storage-opt dm.basesize=20G"' >> /etc/sysconfig/docker

8.    새 Docker 컨테이너 볼륨이 기본 10GiB 제한보다 큰지 확인하려면 다음 명령을 실행합니다.

sudo lsblk

다음과 유사한 출력이 표시됩니다.

NAME                                                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1                                                            259:1    0    8G  0 disk 
├─nvme0n1p1                                                        259:2    0    8G  0 part /
└─nvme0n1p128                                                      259:3    0    1M  0 part 
nvme1n1                                                            259:0    0   22G  0 disk 
└─nvme1n1p1                                                        259:4    0   22G  0 part 
  ├─docker-docker--pool_tdata                                      253:1    0 21.7G  0 lvm  
  │ └─docker-docker--pool                                          253:2    0 21.7G  0 lvm  
  │   └─docker-259:2-394381-13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
                                                                   253:3    0   20G  0 dm   /var/lib/docker/devicemapper/mnt/13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
  └─docker-docker--pool_tmeta                                      253:0    0   24M  0 lvm  
    └─docker-docker--pool                                          253:2    0 21.7G  0 lvm  
      └─docker-259:2-394381-13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
                                                                   253:3    0   20G  0 dm   /var/lib/docker/devicemapper/mnt/13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?