Stack 18

ECR, ECS

ECR💡 ECR이란?ECR (Elastic Container Registry)이란, AWS에서 제공하는 Docker 이미지 저장소이다.DockerHub처럼 퍼블릭 레지스트리가 아니라, 프라이빗하게 내 이미지를 저장하고 관리할 수 있다. 💡 왜 필요한가?CI/CD 파이프라인을 통해 앱을 빌드하고 Docker 이미지로 만든 뒤, 그걸 ECS 같은 서비스에서 실행하려면 어디엔가 저장해둬야 한다.이 때 안전하고 AWS 내부 네트워크로 연결 가능한 ECR이 강력한 도구가 된다. 💡 정리 DockerHub와 비슷하지만, AWS에 최적화보안, IAM 권한, VPC 통합 등 AWS 네이티브 기능 사용 가능ECS, Fargate 등과 쉽게 연동됨 ECS💡 ECS란?ECS (Elastic Container Serv..

Stack/AWS 2025.04.18

권한(Permission), 정책(Policy), 역할(Role)

권한, 정책, 역할AWS에서 IAM(Identity and Access Management)을 다룰 때, 권한(Permission), 정책(Policy), 역할(Role)을 이해하는 것이 중요하다. 이 개념들은 AWS 리소스에 대한 접근을 제어하는 데 사용된다.💡 AWS 리소스란?AWS에서 생성할 수 있는 모든 서비스의 개별 객체(Object)를 리소스라고 부름예를 들어, 우리가 AWS에서 EC2(가상 서버)를 만들면 그 EC2 인스턴스가 하나의 AWS 리소스가 됨마찬가지로 S3 버킷, RDS 데이터베이스, VPC 네트워크 등도 각각 하나의 리소스권한(Permission)권한(Permission)은 "무엇을 할 수 있는지"를 정의AWS 리소스에서 수행할 수 있는 동작을 의미🔎 예시예를 들어, S3 버..

Stack/AWS 2025.04.08

기본 브릿지 네트워크(Brideg Network)가 DNS를 제공하지 않는 이유

Docker 기본 브릿지 네트워크 특징Docker의 기본 브릿지 네트워크 (bridge) 는 컨테이너 간 DNS 이름 해석 기능을 제공하지 않는다는 특징이 있다.즉, 컨테이너끼리 IP 주소로만 통신해야 하고, 컨테이너 이름을 사용할 수 없다.💡 그 이유는 기본 브릿지 네트워크가 Docker의 "기본 네트워크" 역할을 하기 때문다.기본 네트워크는 단순하고 최소한의 기능만 제공하도록 설계되어 있다.DNS가 뭐지?DNS는 도메인 이름을 IP 주소로 변환하는 시스템이다. 예를 들어, 우리가 브라우저에서 google.com을 입력하면,google.com을 DNS 서버에 요청DNS 서버가 142.250.74.46 같은 IP 주소를 반환브라우저가 해당 IP로 접속즉, 사람이 이해하기 쉬운 이름 (google.com..

Stack/Docker 2025.04.04

바인드 마운트(Bind Mount) vs 볼륨 마운트(Volume Mount)

바인드 마운트와 볼륨 마운트는 둘 다 컨테이너와 호스트 간에 데이터를 공유하는 기능이다.하지만 저장 방식과 관리 방법에서 차이점이 있다.바인드 마운트(Bind Mount)📌 특징호스트의 특정 디렉토리를 컨테이너 내부에 연결하는 방식호스트의 디렉토리를 직접 사용하므로 도커가 데이터를 관리하지 않음컨테이너를 삭제해도 호스트의 원본 데이터는 유지됨단점 : 컨테이너 실행 중에는 마운트 경로를 변경할 수 없고, 호스트 시스템에 의존성이 생김📌 바인드 마운트 사용 예제docker run -d --name my-nginx -p 8080:80 \-v $(pwd)/mydata:/usr/share/nginx/html nginx$(pwd)/mydata → 호스트의 mydata 디렉토리를 사용/usr/share/nginx..

Stack/Docker 2025.04.03

웹서버(Web Server)란?

웹서버(Web Server)웹서버(Web Server)는 웹 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아, 웹 페이지(HTML, CSS, JavaScript 등)를 제공하는 서버이다. 크롬, 엣지, 파이어폭스 같은 브라우저에 URL을 입력하면, 웹서버가 요청을 받아 웹사이트의 내용을 응답해준다.기본 동작 원리웹서버와 웹 브라우저(클라이언트)는 HTTP(HyperText Transfer Protocol) 또는 HTTPS(보안이 적용된 HTTP) 프로토콜을 사용해서 통신한다. 💡 웹서버의 기본 흐름1. 클라이언트(웹 브라우저)가 HTTP 요청을 보냄ex. 사용자가 https://www.example.com을 입력하면 브라우저가 웹서버로 요청을 보냄요청 형식 : GET /index.html HTTP/..

Stack/Docker 2025.04.02

도커(Docker) 볼륨(Volume)

볼륨(Volume) 활용Docker를 활용하면 특정 프로그램을 Container로 띄울 수 있다. 이 프로그램에 기능이 추가되면 새로운 Image를 만들어서 Container에 실행시켜야 한다. 이 때, Docker는 기존 Container에서 변경된 부분을 수정하지 않고, 새로운 Container를 만들어서 통째로 갈아끼우는 방식으로 교체한다. 기존에 만들어진 Image에 들어가서 변경된 부분을 억지로 수정하는 것보다, 이 방식이 효율적이라고 생각했던 것이다. 이러한 특징 때문에 기존 Container를 새로운 Container로 교체하면, 기존 Container 내부에 있던 데이터도 같이 삭제된다. 예를 들어, 만약 이 Container가 MySQL을 실행시키는 Container였다면, MySQL D..

Stack/Docker 2025.04.01

도커(Docker)를 사용하는 이유

현업에서 Docker를 사용하는 이유Docker는 다양한 장점이 있어 사용하는 이유에는 여러가지가 있지만, 그 중 핵심이되는 장점은 바로 '이식성'이다. 이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 예를 들면, 친구의 컴퓨터에 아무런 에러 없이 MySQL을 설치했지만, 내 컴퓨터에 똑같은 MySQL을 설치하려고 하니 에러가 발생하는 상황이 있다. 분명 친구가 설치한 방식대로 했지만, 에러가 발생하고 프로그램을 지우고 다시 설치해도 해결되지 않는다. 내 컴퓨터에만 MySQL 설치 에러가 발생하는 이유는 다양하다. 버전이 다른 걸 설치했거나, 운영체제(ex. Windows, macOS, Linux 등)가 다르거나, 내 컴퓨터에 깔려있는 다른 프로그램(ex. 보안 프로그램..

Stack/Docker 2025.03.31

도커(Docker), 컨테이너(Container), 이미지(Image)

도커(Docker)컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴🔎 Docker가 어떤 툴인지는 직접 사용해보는 것이 가장 빠르게 파악하는 방법이다.컨테이너(Container)Windows 환경을 보면 하나의 컴퓨터에 여러 사용자가 독립적인 컴퓨터 환경을 구성하여 사용할 수 있는 시스템이 있다. 각 사용자의 프로필에 들어가보면 독립적으로 구성되어 있어서 필요한 프로그램을 각 사용자 환경에서 따로 설치를 해주어야 한다. Container가 이러한 다중 사용자와 비슷한 개념이다. 하나의 컴퓨터 환경 내에 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다. 여기서의 미니 컴퓨터가 Container의 역할이다. 여기서 Container와 Container를 포함하고 있는 ..

Stack/Docker 2025.03.30

[Git] main으로 branch merge

branch가 merge?소프트웨어 개발에서 브랜치(branch)는 독립적으로 작업을 진행할 수 있는 공간을 제공합니다. 이를 통해 기존 코드(main 브랜치)를 수정하지 않고 새로운 기능이나 아이디어를 테스트할 수 있습니다. 작업이 끝나면, 병합(merge)이라는 과정을 통해 내가 만든 브랜치의 코드를 main 브랜치로 통합합니다.branch merge 1. 현재 branch check!git branch 2. 모든 변경 사항 commitgit add .git commit -m "commit message" 3. merge하려는 branch로 이동git checkout main 4. merge git merge doughnutmain에 merge할 branch 이름이 doughnut이라면 (라면..? ..

Stack/Git 2025.01.28

[Git] branch 명령어

branch  1. 생성원하는 이름으로 브랜치를 만듭니다. 여기서는 브랜치 이름을 "new-feature"로 지정합니다.git branch new-feature 2. 이동 (1) 새 branch로 이동만 하는 경우이제 다음 명령을 사용하여 현재 브랜치에서 새 기능 브랜치로 이동합니다.git chechout new-feature (2) branch 생성 및 이동 하는 경우git checkout -b new-feature  3. 현재 branch 확인다음 명령을 실행하여 현재 진행 중인 branch를 확인하세요.git branch 4. 삭제삭제하려는 브랜치에 있는지 확인 후 실행합니다.git branch -d 삭제할-branch-name출처 1. OpenAI의 ChatGPT https://openai.com..

Stack/Git 2025.01.27