[Trouble] AWS 요금 폭탄 맞고 Amazon Linux 2023으로 야반도주한 썰 (Docker 오류 해결)

[Trouble] AWS 요금 폭탄 맞고 Amazon Linux 2023으로 야반도주한 썰 (Docker 오류 해결)

💸 갑자기 분위기 AWS 요금 폭탄

평화로운 오후, 무심코 AWS Billing 대시보드를 확인했다가 심장이 덜컥 내려앉았다. 예상치 못한 비용이 청구되고 있었기 때문이다.

범인은 바로 이 녀석이었다.

APN2-SoftwareUsage:t3.micro cost for CentOS 10 (centos 10) | Support by SupportedImages

분명 EC2 인스턴스를 생성할 때 “CentOS니까 무료겠지?”, “별도 비용 없다고 본 것 같은데?” 하고 가볍게 넘겼던 게 화근이었다. 알고 보니 내가 선택한 이미지가 AWS Marketplace에서 제공하는 유료 서브스크립션(Supported Image) 이 포함된 버전이었던 것이다. (시간당 소프트웨어 사용료가 꼬박꼬박 나가고 있었다… 😭)

내 피 같은 돈…

결국 눈물을 머금고 “무료인 Amazon Linux 2023(AL2023)으로 이사 가자!” 결심하고 서버 마이그레이션을 시작했다.


🚧 산 넘어 산: Amazon Linux 2023과 Docker의 불협화음

인스턴스를 새로 파고, 기존 데이터를 옮기고, 야심 차게 docker compose up을 실행했다. 그런데…

$ docker compose up -d --build
[+] build 0/1
 ⠋ Image nginx-dav:1.0 Building                                               0.0s
compose build requires buildx 0.17 or later

“compose build requires buildx 0.17 or later”

CentOS에서는 잘만 되던 게 갑자기 안 된다. 버전을 확인해보니 상황이 기가 찼다.

$ docker --version
Docker version 25.0.13, build 0bab007

$ docker buildx version
[github.com/docker/buildx](https://github.com/docker/buildx) v0.12.1 ...

Amazon Linux 2023의 기본 저장소(yum/dnf)에서 설치해 주는 Docker 패키지에는 아주 오래된 버전의 buildx (v0.12.1) 가 들어있었다. 반면 최신 docker compose는 최소 v0.17 이상의 buildx를 요구한다.

즉, OS가 기본으로 깔아주는 패키지들끼리 버전 호환이 안 되는 상황인 것이다. (이게 공식 리포지토리라니…)

🛠️ 해결 방법: Buildx 수동 업데이트

구글링을 해보니 이미 Amazon Linux 2023의 GitHub 이슈에도 나와 같은 피해자들이 수두룩했다.

해결책은 간단하다. OS가 주는 구버전을 버리고, 최신 바이너리를 직접 다운로드해서 덮어씌우는 것이다.

1. 기존의 구버전 플러그인 삭제

먼저 꼬여있는(또는 오래된) buildx 파일을 지운다.

sudo rm -f /usr/local/lib/docker/cli-plugins/docker-buildx

2. 검증된 최신 버전 강제 설치

GitHub 릴리즈에서 amd64용 바이너리를 직접 받아온다. (이슈에서는 v0.19.3 이상을 권장한다.)

sudo curl -L [https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-amd64](https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-amd64) -o /usr/local/lib/docker/cli-plugins/docker-buildx

3. 실행 권한 부여

다운로드한 파일이 실행될 수 있도록 권한을 준다.

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx

4. 확인

이제 버전을 확인해보면 v0.12.1에서 v0.19.3으로 잘 올라가 있다.

$ docker buildx version
[github.com/docker/buildx](https://github.com/docker/buildx) v0.19.3 ...

🎉 결론

다시 docker compose up -d --build를 실행하니 거짓말처럼 빌드가 잘 된다.

  • AWS EC2 생성할 때 AMI 가격 정책을 꼼꼼히 보자. (SoftwareUsage 비용 무섭다.)

  • Amazon Linux 2023은 최신 OS 같지만, 도커 관련 패키지 버전 관리가 아직 좀 아쉽다.

  • docker compose 에러가 나면 쫄지 말고 수동 설치가 답이다.

비용도 아끼고, 리눅스 트러블슈팅 경험치도 쌓았으니(강제로)… 긍정적으로 생각하자. 서버야 이제 아프지 말고 잘 돌아가 줘. 👋