전심전력

AWS를 이용해 인스턴스를 실행시키다 보면, 디스크가 꽉차는 경우가 생긴다.

나같은 경우는 인스턴스를 빈스토크(Elastic Beanstalk)을 이용해 돌리고 있는데, 디플로이 할때나 내가 설치한 다른 모듈들에서 로그가 생기는지 디스크가 꽉차는 경우가 발생했다.


IOError: [Errno 28] No space left on device .


내가 받은 에러는 이런 에러였다. 음하하하하하하하하하하하하하하.... 이것때문에... 휴.

늘어난 사용자 때문에 로그가 계속 쌓이다가 죽은듯 했다.


무튼 저것을 방지하려면, 루트 계정의 디스크 사용 공간을 늘려줘야한다.


아래의 글은 스택오버플로의 글을 복사해 놓은 것이다.

Thanks to Riaz Rizvi

http://stackoverflow.com/questions/6151695/ec2-instace-on-amazon-and-i-am-greeted-with-no-space-left-on-the-disk



  1. ssh를 이용해 루트계정에서 사용 공간을 확인한다: $df -h

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/xvde1              6G    6G    0G   100% /
    none                   17G     0   17G   0% /dev/shm
    
  2. AWS 콘솔을 이용해 인스턴스를 stop한다.

  3. AWS 콘솔: EBS volume을 detach시킨다. (볼륨이 어디에 붙어있는지 확인해 놓는다, eg /dev/sda1)
  4. AWS 콘솔: 볼륨의 snapshot을 찍는다.
  5. AWS 콘솔: 이 스냅샷을 이용해 새로운 볼륨을 만든다. (당신이 사용하는 인스턴스의 모든 용량을 사용하게 만들도록 한다, 나의  m2.2xlarge의 경우 825기가이다.)
  6. AWS 콘솔:  새로 만든 볼륨을 /dev/sda1 에 attatch시킨다.
  7. AWS 콘솔: 인스턴스를 재시작하고, 그 주소로 다시 ssh접속한다.
  8. ssh를 이용해, 루트 파일 시스템에 resize2fs 명령어를 실행한다. (아까 1번처럼 df -h 를 이용해 다시한번 확인한다.)

    $resize2fs /dev/xvda1

  9. 조금 기다리면, 동작이 완료할것이다.

  10. 새로운 마운트를 확인한다.: $df -h
    Filesystem            Size  Used   Avail Use%   Mounted on
    /dev/xvde1            813G  3.7G    801G   1%     /
    none                   17G     0     17G   0%     /dev/shm</li>


나는 위와 같은 방법을 통해 인스턴스를 새로 만들었다.