회사에서 어쩌다보니 웹 백엔드와 프론트엔드 작업을 함께 하게 되었다. 그런데 어제 문제가 터졌다. 내가 올린 코드가 빌드가 되지 않았다. 이것은 package-lock.json에는 패키지가 있고 package.json에는 없어서 생긴 문제였다. 작업 중에 새로운 패키지를 11개 가량 설치했는데 그 과정에서 package-lock.json에서 typescript 패키지가 없어져버렸다. 그 문제를 발견하고 수정했는데 이번에는 실행이 되지 않았다...
브라우저로 접속해보면 503 Service Unavailable 오류가 발생했다. 내부에서는 CI/CD를 통해 빌드된 결과를 도커 이미지에 담아 클라우드에 올린다. 로그가 전혀 없어 막연히 서버가 실행되지 않았겠지 짐작만 했지 원인을 알 수 없었다. 아무래도 도커 이미지를 직접 실행해야 원인을 알 것 같았다. 이를 위해 담당자에게 가서 액세스 키를 얻었고 반나절 내내 씨름한 결과 다운로드에 성공하고 실행할 수 있었다. 그리고 다행히 원인을 찾아낼 수 있었다. 아니었다면 막연한 추측으로 헛된 삽질만 거듭한 채로 문제를 해결할 수 없었을 것이다.
회사에서 도커 라이센스를 얻으려면 좀 번거롭기 때문에 WSL에서 실행했다. 여러 시행 착오가 있었지만 다 적을 필요는 없을 것 같고 그 과정을 정리해본다.
환경
- WSL 2 / Ubuntu 24.04.1 LTS
1. AWS CLI을 다운로드한다
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
2. AWS CLI를 압축을 푼다
$ sudo apt-get install unzip
$ unzip awscliv2.zip | sudo ./aws/install
3. AWS 계정을 설정한다
$ aws configure
AWS Access Key ID [None]: ************
AWS Secret Access Key [None]: ********
Default region name [None]: ap-northeast-2
None
4. 도커를 설치한다. 20초 대기해야 한다
$ curl -sSL get.docker.com | sh
5. 도커를 서비스로 시작시킨다
$ sudo service docker start
6. 도커에서 관리자 권한을 부여한다. sudo를 붙여 docker를 실행해도 괜찮다면 생략 가능하다
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
// 유저 그룹 새로 고침
$ newgrp docker
// 확인
$ docker run hello-world
7. AWS에 있는 도커 중 1234 유저로 TEST 저장소에 로그인한다
$ aws ecr get-login-password | docker login -u AWS --password-stdin 1234.dkr.ecr.ap-northeast-2.amazonaws.com/TEST
8. TEST 저장소의 도커 이미지를 조회한다. 아래와 같이 표시된다
$ aws ecr list-images --repository-name TEST
{
"imageIds": [
{
"imageDigest": "sha256:b56cfbc62bfec40551896xxxx8d62d5815d8ba64818383ec2de2ea3b064c3b12",
"imageTag": "ranking-4213gff"
9. 저장소와 태그를 입력하여 원하는 도커 이미지를 내려받는다
$ docker pull 1234.dkr.ecr.ap-northeast-2.amazonaws.com/TEST:ranking-4213gff
10. 도커 이미지를 실행한다
$ docker run 1234.dkr.ecr.ap-northeast-2.amazonaws.com/TEST:raning-4213gff
'코드' 카테고리의 다른 글
pure virtual function call 사례 (0) | 2024.07.29 |
---|---|
The Grid Search (0) | 2021.10.28 |
Non-Divisible Subset (0) | 2021.10.25 |
2110번: 공유기 설치 (acmicpc.net) (0) | 2021.09.14 |
하노이의 탑 (0) | 2021.08.04 |