AWS EC2 ubuntu 스토리지 크기 수정 및 메모리 확인

heisje·2023년 8월 15일
1
post-thumbnail

서론

8gb로 Next.js를 배포하려 했다.
하지만 도커 크기만 쳐도 어림도 없었다.
docker system prune -a -f 명령어를 통해 사용하지 않는 도커 크기를 줄여봤지만 그래도 부족했다.
현재 스토리지 확인하는 방법과 용량 늘리기에 대해서 설명할 것이다.

우분투에서 현재 스토리지 확인하기

참고로 스토리지란 SSD나 HDD같은 물리적 저장장치이다.

스토리지 확인 명령어

df -h

명령어를 사용하면 아래처럼 보인다.

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.6G  7.1G  479M  94% /
devtmpfs        476M     0  476M   0% /dev 
...

디렉토리별 용량 확인 명령어

sudo du -h --max-depth=1 ${찾고싶은위치} | sort -rh

# 예를 들어 도커의 크기를 알고싶으면 아래처럼 입력하면 된다.
sudo du -h --max-depth=1 /var/lib/docker | sort -rh

명령어를 사용하면 아래처럼 보인다.

sudo du -h --max-depth=1 /var/lib/docker | sort -rh
2.7G	/var/lib/docker/overlay2
2.7G	/var/lib/docker
8.7M	/var/lib/docker/buildkit
940K	/var/lib/docker/image
56K	/var/lib/docker/network
44K	/var/lib/docker/containers
28K	/var/lib/docker/volumes
16K	/var/lib/docker/plugins
4.0K	/var/lib/docker/tmp
4.0K	/var/lib/docker/swarm
4.0K	/var/lib/docker/runtimes

메모리 확인

메모리 확인 명령어

free -h

아래처럼 대략적인 메모리 사용량이 표시된다.

              total        used        free      shared  buff/cache   available
Mem:          966Mi       404Mi        83Mi       1.0Mi       478Mi       368Mi
Swap:            0B          0B          0B

htop

아래의 명령어를 통해 라이브러리를 설치 후 확인할 수 있다.
프로세스별 자세한 메모리 사용량을 볼 수 있다.

sudo apt-get install htop
htop
  • PID: 프로세스 ID (고유 식별자). 각 프로세스마다 고유한 숫자 ID가 할당됩니다.
  • USER: 프로세스를 실행시킨 사용자의 이름을 표시합니다.
  • PR: 프로세스의 우선 순위를 나타냅니다. 높은 숫자가 낮은 우선 순위를 의미합니다.
  • NI: 프로세스의 "nice" 값으로, 프로세스의 우선 순위에 영향을 줍니다. 음수 값일수록 더 높은 우선 순위를 갖습니다.
  • VIRT: 가상 메모리 사용량을 표시합니다. 프로세스가 사용 중인 실제 물리적 메모리보다 더 큰 가상 메모리를 사용하는 경우가 있을 수 있습니다.
  • RES: 실제 물리적 메모리 (Resident Set) 사용량을 표시합니다. 프로세스가 현재 사용 중인 실제 메모리 양을 나타냅니다.
  • SHR: 프로세스의 공유 메모리 사용량을 표시합니다. 다른 프로세스와 공유되는 메모리 양을 나타냅니다.
  • %CPU: 프로세스가 사용하는 CPU 사용량의 백분율을 표시합니다.
  • %MEM: 프로세스가 사용하는 메모리 사용량의 백분율을 표시합니다.
    GPT 발췌..

기타 top과 같은 명령어도 있다.


AWS에서 스토리지 크기 수정

  1. EC2 확인하고 싶은 인스턴스 클릭
  2. 스토리지 탭에서 볼륨 선택
  3. 우클릭 후 볼륨 수정 선택
  4. 원하는 용량으로 올리기
  5. 저장 후 기다리기. 아래처럼 볼륨상태가 사용중으로 바뀌면 적용된 된 것입니다.
  1. 사용중으로 바뀌면 마운트 작업이 필요하다. 아래의 명령어로 현상태를 확인해주자.
sudo lsblk
  • 스토리지가 늘어났지만 마운트가 되지 않은 것을 확인할 수 있다.
    xvda     202:0    0    16G  0 disk
    ├─xvda1  202:1    0   7.9G  0 part /
    ├─xvda14 202:14   0     4M  0 part
    └─xvda15 202:15   0   106M  0 part /boot/efi
  1. 아래의 명령으로 마운트시키자
sudo growpart /dev/xvda 1
# sudo growpart ${디바이스 경로} ${파티션 번호}

# 결과 : CHANGED: partition=1 start=227328 old: size=16549855 end=16777183 new: size=33327071 end=33554399
  1. 명령어로 확인해보자.
  • 아래의 파티션 크기는 잘 커졌다.
sudo lsblk

xvda     202:0    0    16G  0 disk
├─xvda1  202:1    0  15.9G  0 part /
├─xvda14 202:14   0     4M  0 part
└─xvda15 202:15   0   106M  0 part /boot/efi
  • 아래의 파일시스템은 잘 적용되지 않았다.
    (파일 시스템은 파티션 내에서 파일 및 디렉토리를 관리하는 기능을 수행한다.)
df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.6G  7.1G  479M  94% /
  1. 파일 시스템 크기를 디스크 파티션 크기에 맞게 조정
sudo resize2fs /dev/root

ETC

사용하지 않는 도커 용량 줄이기

docker system prune: 도커 시스템에서 사용하지 않는 리소스를 정리하는 명령어입니다.

  • a 옵션: 모든 사용하지 않는 이미지를 포함하여 정리합니다.
  • f 옵션: 프롬프트 없이 강제로 정리합니다. 즉, 확인 메시지 없이 바로 삭제 작업이 수행됩니다.
docker system prune -a -f
Deleted Networks:
deploy

Deleted Images:
...

Deleted build cache objects:
...

Total reclaimed space: 2.759GB

참고

profile
김희제의 기술블로그

0개의 댓글