DevOps12 IAM(Identity and Access Management) 정의- AWS에서 제공하는 사용자 접근 권한 관리 서비스- AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스(RDS, S3, EC2 등)에 대한 액세스를 허용 및 거부 설정함으로서 전반적인 사용자 관리를 할 수 있도록 해줌- 단순히 엑세스 권한 설정 뿐만 아니라 언제 어디서 누가 무엇을 어떻게 할 수 있도록 제안을 설정할 수도 있음- AWS는 AWS 리소스에 대한 접근 권한을 기본적(default)으로 미부여하도록 설정되어 있어 AWS의 특정 리소스를 접근하려면 IAM을 통해 권한을 허용해줘야 함 구성 요소사용자(User)- AWS의 기능과 자원을 이용하는 사람 혹은 어플리케이션- 각 사용자 별로 권한을 부여할 수 있음ex) A - S3, B - RDS, C - EC2, D - S3, EC2, E .. 2024. 9. 15. S3(Simple Storage Service) 정의- AWS에서 제공하는 온라인 객체 스토리지 서비스 (일종의 파일 저장 서비스)- 구글 드라이브처럼 데이터를 온라인에 객체(Object) 형태로 저장- 주로 백엔드에서 파일 업로드/다운로드 기능을 구현할 때 사용- 저장 용량이 무제한이며 EC2와 EBS 보다 가격이 훨씬 저렴함- S3에서 저장소의 단위를 버킷(Bucket), 파일의 단위를 객체(Object)로 정의 (객체 = S3 버킷에 업로드된 파일)※ 버킷 = GitHub의 Repository와 비슷한 개념 업로드/다운로드 과정(이미지)업로드다운로드기본 세팅버킷 생성1. AWS 로그인 후 S3 대시보드 접속 → 버킷 만들기 클릭2. 퍼블릭 엑세스 차단 해제 + 경고 메시지의 인지 확인 버튼 체크 3. 나머지 설정은 기본값으로 세팅 → 버킷 생성 .. 2024. 9. 14. RDS(Relational Database Service) 정의- AWS에서 제공하는 관계형 데이터베이스(RDB) 서비스- 주로 백엔드 서버와 연결할 DB를 생성하고 관리하기 위해 사용- EC2 인스턴스에 RDB를 설치하여 운용 가능하지만 예기치 못한 에러로 인하여 인스턴스가 죽을 경우 DB의 데이터가 날아갈 위험성이 존재 ※ GCP 기준 SQL 기본 세팅DB 인스턴스 생성1. AWS 로그인 후 RDS 대시보드 접속 - 데이터베이스 생성 클릭 → 원하는 DB 종류 선택2. 마스터(admin) ID, 비밀번호 설정※ 편리하게 마스터 로그인 정보를 관리할 수 있는 AWS Secrets Manager도 있으나 비용이 더 청구됨 (백엔드의 yml 파일이나 properties 파일에 DB 정보를 하드코딩하는 대신 다음과 같은 형식으로 입력)datasource: driv.. 2024. 9. 13. EC2(Elastic Compute Cloud) 정의- AWS에서 원격 VM 인스턴스(하나의 컴퓨터)를 생성하여 사용하는 서비스- 주로 백엔드 서버를 배포하기 위한 VM 인스턴스 생성에 사용※ 프론트 웹 페이지도 배포 가능하지만 주로 프론트는 Netlify, AWS S3 등을 사용 ※ GCP 기준 Compute Engine - VM 인스턴스 리전(Region)- AWS의 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터의 지역- 애플리케이션의 주 사용자들의 위치와 가까운 리전의 VM 인스턴스를 생성하는 것이 유리 기본 세팅1. AWS 로그인 후 EC2 대시보드 접속 - 인스턴스 시작(생성) 클릭 → 다음과 같이 설정(OS 종류: Ubuntu, 인스턴스 유형: t2-micro) ※ OS는 Windows나 Mac 보다 서버 배포에 필요한 기능만 .. 2024. 9. 12. 파일 서버 정의 - 네트워크를 통해 파일 및 데이터를 저장하고 관리하는 역할을 하는 서버 - OS에 따라 Windows 파일 서버, Unix 파일 서버, Linux 파일 서버가 존재 OS 종류에 따른 파일 서버 - Windows - Windows 간 파일 서버 구축 → 윈도우 공유 기능을 이용하여 CIFS 사용 - Linux - Linux 간 파일 서버 구축 → 리눅스 nfs-utils을 이용하여 NFS 사용 - Linux - Windows 간 파일 서버 구축 → Samba를 이용하며 SMB/CIFS를 사용 CIFS(Common Internet File System) - SMB의 확장된 버전 (SMB와 거의 동일시하게 부름) ※ SMB(Server Message Block) = Windows 시스템이 다른 시스템의.. 2023. 12. 20. 용어 정리 LVM(Logical Volume Manager) 리눅스 시스템에서 논리적인 볼륨 관리를 제공하는 소프트웨어 기술 ZFS(Zettabyte File System) Sun Microsystems에서 개발한 파일 시스템 및 볼륨 매니저 데이터 무결성, 고성능, 효율적인 스냅샷 및 복제 기능 등을 제공 ZFS Pool = ZFS가 여러 개의 디스크를 하나로 묶은 물리적인 Storage Pool Quorum(쿼럼) 클러스터 또는 분산 환경에서 노드 간의 투표를 통해 다수의 동의를 얻는 것 (노드 다수결) Swap Memory RAM이 가득 찼지만 더 많은 메모리가 필요할 때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 디스크 공간 실제 디스크 공간을 메모리처럼 사용하는 개념 KBM(Kernel-bas.. 2023. 12. 13. Kafka 정의 - 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산형 데이터 스트리밍 플랫폼 - Pub-Sub 모델의 메시지 큐 형태로 동작하며 분산환경에 특화 기본 구성 - Cluster = 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합 - Producer = 데이터를 만들어내어 전달하는 전달자 - Consumer = 프로듀서에서 전달한 메시지를 브로커에 요청하여 소비하는 소비자 - Broker = Producer와 Consumer 사이의 중재자 (kafka에 설치되어 있는 일종의 서버 단위 => 보통 3개 이상으로 권장) - Topic = 보내는 메시지(데이터)를 구분하기 위한 카테고리 - Partition = 토픽을 구성하는 데이터 저장소(메시지 큐) 작동 방식.. 2023. 9. 21. Docker Volume 정의 - 호스트 머신의 폴더 (로컬 컴퓨터 폴더) - 컨테이너 내부 폴더와 컨테이너 외부 폴더를 서로 연결해주는 역할 종류 익명 볼륨(Anonymous Volumes) - 도커 엔진 내부에 익명으로 새로운 볼륨을 생성하여 해당 볼륨과 지정한 컨테이너 디렉터리를 마운트 - 컨테이너가 존재하는 동안에만 존재 - 컨테이너 실행 시 -v 컨테이너 경로 옵션을 적용하면 생성 - docker-compose.yml에서는 volumes에 컨테이너 디렉터리 경로만 입력 - type = volume 명명 볼륨(Named Volumes) - 도커 엔진 내부에 지정한 볼륨명으로 새로운 볼륨을 생성하여 해당 볼륨과 지정한 컨테이너 디렉터리를 마운트 - 컨테이너가 종료된 후에도 유지 - 컨테이너 실행 시 -v [볼륨명:컨테이너 .. 2023. 9. 12. docker-compose 정의 - Docker를 사용하여 멀티 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구 - docker-compose.yml 파일을 통해 여러 개의 컨테이너를 하나의 애플리케이션 스택으로 정의하여 이를 한 번에 실행, 관리 및 확장할 수 있음 - 개발 또는 테스트 환경에서 여러 개의 서비스나 컨테이너들을 조합하여 애플리케이션을 구성하고자 할 때 주로 사용 - 여러 개의 컨테이너를 동시에 실행하고, 서로 간의 네트워크 연결, 데이터 볼륨 공유 등을 손쉽게 설정할 수 있음 docker-compose.yml 형식 version: '3' # docker-compose 버전 지정 services: # 실행하려는 컨테이너들 정의 # 오픈소스 이미지를 사용하는 경우 redis-server: # 서비스명(다른 컨테이.. 2023. 9. 5. Dockerfile 기본 문법 - FROM = 어떤 이미지 파일을 기반으로 도커 이미지를 생성할 것인지 정의 ex) FROM openjdk:8 = jdk1.8(Java 8)을 base 이미지로 사용 - WORKDIR = 작업 디렉터리 설정 (리눅스 cd 명령어와 같은 역할) - LABEL maintainer = 관리자 정보 입력 - ENV = 컨테이너 내의 환경변수 설정 ※ docker 이미지 파일 생성 시 .env 파일도 포함시키는 방법 = COPY .env /app/.env - RUN = 이미지 생성 시 필요한 명령 실행 ex) RUN npm install - ADD(COPY) [복사할 파일이 위치한 경로] [복사한 파일이 위치할 경로] = 로컬에 있는 파일을 복사하여 Docker 이미지에 추가 - EXPOSE = Docker c.. 2023. 2. 3. GCP 배포 기본 (With Docker) GCP 세팅 1. 구글 클라우드 로고 옆 탐색 메뉴에서 Compute Engine - vm 인스턴스 - 실행 - 인스턴스 만들기 (리전:asia-northeast3 서울, 머신 유형: e2-small, 방화벽: HHTP 트래픽 허용 => 나머지들은 기본값 그대로 적용) => 인스턴스 생성 완료 2. 탐색 메뉴에서 VPC 네트워크 - IP 주소 - 외부 고정 주소 예약 - 서비스 계층(표준), 리전(asia-northeast3 서울) - 리전 설정을 해야 연결 대상에 인스턴스 목록이 뜸 - 연결대상에서 인스턴스 선택 - 예약 클릭 => 배포할 웹 애플리케이션의 IP 주소 생성 완료 3. VPC 네트워크 메뉴에서 방화벽 - 방화벽 규칙 만들기 - 로그(사용 안 함), 우선순위(0), 프로토콜 및 포트(모두 .. 2023. 1. 26. Docker 기본 명령어 ※ docker 미설치 상태 시 => apt install docker.io sudo service docker restart = docker 재시작 docker build -t [image명] . = 현재 위치에 있는 dockerfile를 이용하여 이미지 생성 docker run -p [포트번호:포트번호] [image명] = 해당 포트번호로 지정 이미지 참고하여 docker container 생성 후 실행 docker run --name [container명] [image명] = 지정한 이름으로 container명 설정 후 실행 docker run -d [container ID] = 해당 container 백그라운드 실행 docker run -e [환경변수 설정값] [container ID] = 지정한.. 2022. 12. 21. 이전 1 다음