ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS EC2] Amazon Linux 2023 docker 설치 + swap memory 설정
    Software engineer/Infra 2023. 8. 31. 16:08

    백엔드 개발 공부를 하면서 서버를 Cloud에 띄워보고자 할 때 혹시나 AWS 인스턴스 요금이 많이 나올까 봐 주춤거릴 적이 있었다. 이런 고민을 덜기 위해 free tier ec2에 swap memory를 설정해서 사용해 보기로 했다.

     

    1. Swap memory 설정

    Swap memory는 운영체제가 물리적인 RAM(메인 메모리)이 부족할 때 사용되는 가상 메모리 영역입니다. 이는 하드 디스크 등의 저장 장치를 활용하여 메모리 부족 상황을 완화하며, 시스템의 안정성을 유지하는 데 도움을 줍니다. AWS EC2 free tier에서 스왑 메모리를 설정하면 메모리 부족 시 일시적으로 성능 저하를 경험하지 않고 시스템 운영을 지속할 수 있습니다.

     

     

    1-1. 현재 메모리 상태 확인

    free 명령어를 사용해 현재 시스템의 메모리 사용량을 확인합니다.

    전체 사용 가능한 메모리/ 사용 중인 메모리/ 버퍼 및 캐시로 사용 중인 메모리/ 사용가능한 스왑 영역 등을 볼 수 있습니다.

    $ free
                   total        used        free      shared  buff/cache   available
    Mem:          972576      161760      600084        2848      210732      668300
    Swap:              0           0           0

     

    df 명령을 사용해 현재 디스크 사용량을 볼 수 있습니다. 파일 시스템의 디스크 사용현황 또한 확인이 가능합니다. 

    각 파일 시스템의 디스크 용량, 사용 중인 공간, 남은 공간 및 사용률 등을 제공합니다.

    * -h 옵션을 사용하면 사람이 읽기 쉬운 형식으로 용량을 표시해 줍니다.

    $ df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    devtmpfs            4096       0      4096   0% /dev
    tmpfs             486288       0    486288   0% /dev/shm
    tmpfs             194516    2844    191672   2% /run
    /dev/xvda1      31379436 1676296  29703140   6% /
    tmpfs             486288       0    486288   0% /tmp
    tmpfs              97256       0     97256   0% /run/user/1000

     

     

    1-2. Swap memory 할당

    "/swapfile"이라는 이름의 2048MB 크기의 스왑 파일을 생성합니다. 스왑 파일은 시스템의 메모리 부족 상황에서 추가적인 가상 메모리 공간을 제공하는 데 사용됩니다.

    $ sudo dd if=/dev/zero of=/swapfile bs=64M count=32
    32+0 records in
    32+0 records out
    2147483648 bytes (2.1 GB, 2.0 GiB) copied, 30.9276 s, 69.4 MB/s

     

     

    "/swapfile"에 대한 액세스 권한 설정

    $ sudo chmod 600 /swapfile

     

    "/swapfile"을 Swap 영억으로 사용하기 위해 포맷

    $ sudo mkswap /swapfile
    Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
    no label, UUID=8285d047-de68-4234-b58f-02b32ff3d2dc

     

    "/swapfile" 활성화

    $ sudo swapon /swapfile

     

    활성화된 Swap 영역을 확인합니다.

    $ sudo swapon -s
    Filename Type Size Used Priority
    /swapfile                               file 2097148 0 -2

     

     

    1-3. 시스템 부팅 시 자동으로 스왑 영역을 활성화하도록 설정

    "/etc/fstab" 해당 파일에 아래 내용을 추가작성한다.

    $ sudo vi /etc/fstab
    ## 생략 ##
    /swapfile swap swap defaults 0 0
    • /swapfile: 스왑 파일의 경로입니다. 이 경로에 있는 스왑 파일을 사용하겠다는 의미입니다.
    • swap: 스왑 파일의 유형을 지정합니다.
    • swap: 마운트 포인트를 지정합니다. 스왑 파일은 마운트 포인트가 필요하지 않습니다.
    • defaults: 옵션으로, 스왑 영역의 마운트 옵션을 기본값으로 설정합니다.
    • 0: 덤프 옵션을 지정합니다. 여기서는 사용하지 않으므로 0으로 설정합니다.
    • 0: 파일 시스템 검사 순서를 지정합니다. 여기서는 스왑 영역이므로 파일 시스템 검사를 하지 않으므로 0으로 설정합니다.

     

     

    1-4. 설정된 Swap memory 확인

    설정 전

    $ free
                   total        used        free      shared  buff/cache   available
    Mem:          972576      161760      600084        2848      210732      668300
    Swap:              0           0           0
    
    $ df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    devtmpfs            4096       0      4096   0% /dev
    tmpfs             486288       0    486288   0% /dev/shm
    tmpfs             194516    2844    191672   2% /run
    /dev/xvda1      31379436 1676296  29703140   6% /
    tmpfs             486288       0    486288   0% /tmp
    tmpfs              97256       0     97256   0% /run/user/1000

    설정 후 

    $ free
                   total        used        free      shared  buff/cache   available
    Mem:          972576      132928      120636        2844      719012      694740
    Swap:        2097148           0     2097148
    
    $ df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    devtmpfs            4096       0      4096   0% /dev
    tmpfs             486288       0    486288   0% /dev/shm
    tmpfs             194516    2840    191676   2% /run
    /dev/xvda1      31379436 3773772  27605664  13% /
    tmpfs             486288       0    486288   0% /tmp
    tmpfs              97256       0     97256   0% /run/user/1000

     

     

     

     

     

    2. Docker 설치 및 실행

    추후 CI/CD 파이프라인 구축 시 이미지 배포를 위해 Docker를 설치하려 합니다.

     

    2-1. Docker 설치

    $ sudo yum install -y docker

    2-2. Docker 서비스 실행

    $ sudo systemctl start docker.service

    2-3. 시스템 부팅 시 자동으로 Docker를 시작되도록 설정

    $ sudo systemctl enable docker
    Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

     

     

     

     

Designed by Tistory.