Infra & Network 12

[Docker | Part 1] Docker 핵심 구조 이해

목차환경 준비컨테이너 vs VM — 왜 컨테이너가 가벼운가Image 레이어 구조Image → Container 생성 원리핵심 명령어 실습전체 흐름 요약1. 환경 준비docker --version# Docker version 28.0.4docker images# redis:7.2 이미지 준비 (없으면 아래 명령어로 pull)docker pull redis:7.22. 컨테이너 vs VM — 왜 컨테이너가 가벼운가VM의 구조VM은 하드웨어를 통째로 가상화한다. Hypervisor 위에 Guest OS를 올리고, 그 위에 앱을 올리는 구조다.[Hardware] └── Hypervisor ├── Guest OS (수 GB) → App A └── Guest OS (수 G..

Infra & Network 2026.04.23

[Redis HA | Part 1] Redis Master-Replica + Sentinel 구성

목차환경 준비Docker 네트워크 구성Redis Master-Replica 구성Redis Sentinel 구성Failover 실습장애 복구 확인전체 HA 흐름 요약1. 환경 준비환경 확인docker --versiondocker compose versiondocker info | grep -E "Memory|CPUs"2. Docker 네트워크 구성커스텀 네트워크 생성docker network create redis-cluster-net네트워크 확인docker network lsdocker network inspect redis-cluster-net핵심 개념같은 네트워크 안의 컨테이너끼리는 컨테이너 이름으로 DNS 통신 가능AWS VPC 안의 EC2 인스턴스끼리 통신하는 원리와 동일외부(Mac)에서 컨테이너..

Infra & Network 2026.04.22

Azure Container Apps와 Private VNet 통합하기

1. VNet 생성2. VNet 내 Public Subnet, Private Subnet 생성3. Private Subnet에서 아웃바운드 인터넷 통신을 위한 NAT Gateway 생성 후 연결4. Private Subnet 통신용 VPN 생성 후 rootCA.cer 내용을 사이트 간 구성에 등록5. Azure DNS Resolver 생성6. 로컬 환경에서 Private Subnet 통신하기 위한 VPN DNS 설정(client.cer, client.key 필요)7. Private ACR 생성8. Private ACR에 Docker Image 업로드9. Azure Container App 생성(VNet 통신 제한 및 외부 인터넷 금지, CORS 설정)10. VPN을 통해 Private ACA 접근 확인1..

Infra & Network 2025.07.28

Docker Image 생성 후 Azure Container registries에 업로드하기

사전 조건* JDK 17 설치* docker image를 만들 JAVA(Maven) 데모 프로젝트* JAVA(Maven) 데모 프로젝트 root 경로에 Dockerfile* Azure 계정 및 Azure Container registries에 docker image를 업로드할 리포지토리 생성1. JAVA_HOME 설정 및 확인export JAVA_HOME=$(/usr/libexec/java_home -v 17)echo $JAVA_HOME 2. jar 빌드 파일 생성./mvnw clean package 3. target 폴더 내 빌드한 jar 파일 생성된 것을 확인 4. Azure 로그인하기az login 5. Azure Container registries에 생성한 리포지토리에 로그인하기az ac..

Infra & Network 2025.07.14

[Azure] MAC 환경에서 Azure CLI 로그인하기

실행 환경* MAC 실리콘 환경(uname -m 입력 시, arm64 표시되는 환경)* Homebrew 설치 필요* Azure 계정 필요 순서1. Azure CLI 설치brew update && brew install azure-cli 2. Azure CLI 설치 확인(버전 정보 표시될 경우 성공)az -v 3. Azure 로그인az login 4. 다음 문자열 표시될 경우 엔터 입력하여 진행Select a subscription and tenant (Type a number or Enter for no changes): 5. 로그인 후 로그인 상태 확인(자신의 계정 정보가 표시될 경우 성공)az account show

Infra & Network 2025.07.13

[Redis] AWS ElastiCache for Redis를 활용한 데이터 캐싱 설정

현재 다니는 회사에서 프로젝트 요구에 따라 Redis와 같은 인메모리 DB를 도입할 필요성을 느꼈습니다.과거 Redis를 EC2에 설치해서 사용한 경험을 통해, 이번에도 Redis를 사용하기로 결정했고 관련 정보를 찾던 도중 AWS에서 2023년 12월에 ElastiCache for Redis Serverless를 출시했다는 따끈따끈한 소식을 접하게 되었습니다.서버리스의 장점은 개발자가 인프라 관리에 들이는 노력을 대폭 줄일 수 있다는 것입니다. 하지만, 종종 성능 대비 높은 가격과 낮은 설정 자유도가 단점으로 작용합니다. 예시로 AWS Aurora MySQL Serverless v2는 기존 RDS MySQL보다 거의 두배 가까운 비용이 듭니다. 이에 Redis의 서버리스 버전도 비슷한 비용 문제가 있지..

Infra & Network 2024.04.13

[Infra] Container 개념

### 예시 : 웹 애플리케이션 호스팅 #### 컨테이너 설정 : **Node.js 앱 1** : 회원가입, 사용자 인증을 관리하는 웹 서비스이며, 사용자 데이터를 관리하는 데이터베이스와 통신한다. **Node.js 앱 2** : 앱 1과 독립적으로 작동하는 상태 관리 및 메시징 서비스를 제공할 수 있다. 예를 들어, 실시간으로 사용자 간 메시지를 교환하는 기능을 담당할 수 있다. #### 실행 흐름 : 1. **프로세스 격리** : 앱 1과 앱 2는 각각 독립적인 프로세스로 실행된다. 이는 두 애플리케이션이 서로의 작업에 영향을 주지 않는다는 것을 의미한다. 2. **리눅스 커널** : 컨테이너는 호스트 시스템의 리눅스 커널과 동일한 커널을 공유하지만, 각기 다른 네임스페이스와 cgroups를 사용하여..

Infra & Network 2024.01.27

[AWS] NAT Gateway를 활용한 Private EC2 인스턴스 외부 통신 설정

1. VPC 메뉴 접속2. NAT Gateway 탭 클릭3. Name 입력4. Subnet 위치 선택5. Connectivity type에서 Public 선택6. Elastic IP allocation ID    - NAT Gateway도 IP를 기반으로 통신함    - Allocate Elastic IP 버튼을 눌러 NAT Gateway에 IP를 할당해줌    - NAT Gateway에 할당되는 IP는 Elastic IP이며, 기본 5개까지 제공이되므로 주의 필요7. NAT Gateway 생성 클릭(생성까지 3-5분 소요)8. Private Subnet의 Route Table -> Routes에 7에서 생성한 NAT Gateway를 타겟으로 설정    - Private Subnet에서 외부 통신이 필요..

Infra & Network 2023.06.07

[AWS] NACL 특징 및 설정 방법

- EC2 Security Group과 같이 방화벽 설정이 가능함- 서브넷 단위로 설정 가능하며, 인스턴스 단위로는 설정 불가능- 다수의 서브넷에 동시 적용 가능- 특정 Port 또는 특정 IP를 Deny 가능(EC2 Security Group은 불가능하지만 NACL은 가능함)- Stateless해서 Inbound, Outbound 관련 설정을 모두 신경써서해줘야함(EC2 Security Group은 Inbound만 설정하고 Outbound를 설정하지 않아도 응답을 반환할 수 있지만, NACL은 그렇지 않음)

Infra & Network 2023.06.06