[2] 250909~ 클라우드/[b] 12월 : Terraform + Ansible

[46] deployment 이미지

페페 더 엔지니어 2026. 2. 16. 12:05
image = "nginxinc/nginx-unprivileged:stable"

 

nginxinc라는 저장소에서,

nginx-unprivileged 이미지를

stable 태그 버전으로 가져와서 실행해라

 

--------------------------------

이미지는 항상 이 구조를 가짐

[레지스트리/] 리포지토리/태그

docker.io/nginxinc/nginx-unprivileged:stable

 

도커허브 레지스트리 / 조직,리포지토리 네임스페이스 / 이미지 이름 / 태그(버전)

-------------------------------

 

이 이미지가 하는 일

Deployment가 Pod를 만들 때 흐름

 

1. Node(EC2)가 선택됨

2. kubelet이 컨테이너 실행 준비

3. container runtime(containerd)가 img를 레지스트리에서 Pull

4. 컨테이너 생성 / 실행

 

* VM OS ISO같은 개념인데 더 가볍고 레이어 구조 (컨테이너 본질)

Pod 안에서 실행될 Nginx 실행환경 파일세트를 지정하는 것

 

---------------------------------

 

nginx-unprivileged

 

* k8s 보안 정책 (PSP / PodSecurity / OPA 등) 에서는 

root 컨테이너를 막는 경우가 많아서, Unprivileged 버전이 실습/운영에 안전하다

  일반 nginx unprivileged
실행 유저 root non-root
기본 포트 80 8080
보안 낮음 높음
K8s 적합성 보통 매우 적합

 

------------------------------------------------

 

태그는 버전 라벨

latest -> 최신(변동)

1.25 -> fixed

stable -> 안정 릴리즈 라인

 

운영에서는 보통 digest나 고정버전 권장

 

 

-----------------------------------------------

 

Pod 내부 실제 모습

Pod
 └─ Container (nginx)
      ├─ nginx binary
      ├─ config
      ├─ web root
      └─ runtime libs

즉 웹서버 OS + 프로세스 패키지 세트

 

--------------------------------------------

 

ECS vs EKS

ECS EKS
Task Definition Image Deployment IMG
ECR repo DockerHub / ECR
Container run Pod container

 

--------------------------------------------

 

컨테이너 철학

노드마다 Nginx 설치x

이미지로 환경 통째 배포 O

 

-

 

동일 실행환경

롤백 쉬움

버전 관리

스케일 아웃 빠름

 

----------------------------------------------

 

실무에서는 DockerHub보다 ECR을 더 많이 쓴다

 

이유

- VPC 내부 트래픽 (private Pull)

- IAM 인증 (non-pw)

- 비용 / 속도 유리

- 이미지 스캔

- 라이프사이클 정책

 

*ECR IMG path

123456789012.dkr.ecr.ap-northeast-2.amazonaws.com/nginx:latest

이러면 ECR auth -> IMG Pull -> Pod 실행

 

---------------------------------------------

ECS vs EKS pull

 

ECS :

Task Execution이 자동 인증

설정 거의 없음

 

EKS :

노드 또는 Pod가 IAM 인증 필요

1 - Managed Node Group에 Node IAM Role을 붙인다

AmazonEC2ContainerRegistryReadOnly

노드가 대신 Pull

 

2 - IRSA (Pod 단위)

Pod ServiceAccount <-> IAM Role 매핑

세밀 권한 제어 가능

 

------------------------------------

실무 선택 기준\

 

상황 Registry
오픈소스 테스트 DockerHub
사내 앱 ECR
멀티클라우드 GHCR / Harbor
보안/폐쇄망 Private Registry

 

'[2] 250909~ 클라우드 > [b] 12월 : Terraform + Ansible' 카테고리의 다른 글

[48] cluster_enpoint_public_access  (0) 2026.02.16
[47] cluster_ca_certificate  (0) 2026.02.16
[45] EKS 코드  (0) 2026.02.15
[44] ENI vs CNI  (0) 2026.02.15
[43] EKS 콘솔  (0) 2026.02.15