[AWS] Part10. Container

MINJI·2024년 11월 13일

☁️ AWS 클라우드

목록 보기
11/14
post-thumbnail

⭐ Docker

1. Docker image

이미지 (Image)

  • 컨테이너를 생성할 때 필요한 요소로 컨테이너의 목적에 맞는 바이너리와 의존성이 설치되어 있음
  • 여러 개의 계층으로 된 바이너리 파일로 존재

컨테이너 (Container)

  • 호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스
  • 이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장 => 컨테이너에서 무엇을 하든 이미지는 영향을 받지 않음

2. Docker 주요 명령어

container 생성 및 실행

  • 생성 및 실행 : run
  • 실행 : start
  • 중지 : stop
  • 재실행 : restart

container 관리

  • 확인 : ps
  • 삭제 : rm

container 실행 관리

  • log 확인 : logs
  • 컨테이너에 명령어 수행 : exec

image 관리

  • 확인 : images
  • 삭제 : rmi
  • 다운로드 : pull
  • 업로드 : push
  • 태그 지정 : tag

⭐ ECS / ECR

1. ECS란?

Elastic Container Service
Docker와 같은 컨테이너화된 애플리케이션을 AWS 인프라에서 관리하고 배로할 수 있도록 하는 컨테이너 오케스트레이션 서비스

2. ECR이란?

Elastic Container Registry
Docker 컨테이너 이미지를 안전하게 저장하고, ECS, EKS(Elastic Kubernetes Service) 등 Docker 호환 플랫폼에 쉽게 배포할 수 있는 관리형 Docker 컨테이너 이미지 저장소

3. 실습하기

ECR 이미지 푸시

  • ECR을 사용하려면 먼저, ECS를 통해서 사용할 수 있음

  • ECR에서 리포지토리 생성

  • IAM에 ECR 권한 추가해줘야 오류가 안남

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "ecr:*",
                "Resource": "*"
            }
        ]
    }

  • 이미지를 인증하고 리포지토리에 푸시하기(windows 선택하여 해당 명령어를 차례대로 입력)

  • 이미지 푸시 성공!

ECR 로그인 오류 해결법,,
PowerShell에서 Get-ECRLoginCommand 명령어를 사용하고자 한다면, AWS PowerShell 모듈이 필요하다.

  • PowerShell을 관리자 권한으로 실행한 후 모듈 설치
Install-Module -Name AWSPowerShell.NetCore -Force ->AllowClobber
  • 설치 후, 로그인 명령어를 사용하여 ECR에 로그인
Initialize-AWSDefaultConfiguration -AccessKey 액세스 키 -SecretKey 비밀 액세스 키 -Region ap-northeast-2
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 961341544624.dkr.ecr.ap-northeast-2.amazonaws.com
  • Login Succeeded!

ECS 이용하기

  • ECS 클러스터 생성

  • 태스크 정의 (이미지 URI 복사해서 컨테이너에 붙여넣기)


  • 클러스터에 위에서 정의한 태스크 설정해주기

  • 서비스 생성

  • ECS를 이용할 때는 ELB를 통해서 생성해서 연결해야 하므로 로드밸런서도 생성해야 함!

0개의 댓글