본문 바로가기

728x90

개발공부

(53)
Udemy : Docker & Kubernetes 실전 가이드 (4) 네트워킹 : (교차) 컨테이너 통신 어플리케이션 분석 - 엔드포인트 : 요청에 대한 응답 서비스를 사용할 수 있는(호출하는) 지점 1. 컨테이너와 로컬 호스트 머신 통신 + 웹과 통신 - 컨테이너 내부에서 웹과 통신하는 API는 별도의 설정이 필요없다. - 컨테이너에 데이터 베이스를 담지 않고 호스트 머신의 DB와 통신할 때 요청 주소를 로컬 호스트가 아닌 host.docker.internal을 사용한다. ~ 로컬에서 실행 중인 웹서버와 통신할 때도 사용 가능 -> 컨테이너에서 볼 수 있는 로컬 호스트 머신의 IP주소로 변환된다. 2. 다른 컨테이너와 통신 - 모든 컨테이너는 한 가지 역할에만 집중하는 것이 좋다. ~ 노드 웹 API 어플리케이션, 몽고 DB 컨테이너 데이터 베이스 컨테이너는 도커 허브에..
Udemy : Docker & Kubernetes 실전 가이드 (3) 이미지와 컨테이너의 데이터 관리하기 1. 데이터 카테고리/ 다양한 종류의 데이터 이해하기 - 실행 중인 어플리케이션은 코드 변경을 해선 안되기 때문에 이미지는 읽기 전용으로 기능한다 - 임시 사용자 데이터는 메모리에만 저장하는 등 일시 저장한다 ~ 읽기 전용으로 다룰 필요가 없다. -> 컨테이너 레이어(부가 레이어)에 저장한다. 읽기 - 쓰기 권한을 가지고 임시 데이터를 다루는 레이어. - 영구 사용자 데이터(ex 사용자 계정) : 컨테이너가 중지/ 제거되더라도 보존되어야 하는 데이터 -> 컨테이너와 볼륨에 저장한다. 2. 데이터 관리를 위한 도커화 - 임시 데이터의 경우 컨테이너에 저장되므로 로컬 머신에서 볼 수 없다 - 로컬 머신에서 코드를 변경한 경우 이미지를 새로 빌드하고 이를 기반으로 한 컨테이..
Udemy : Docker & Kubernetes 실전 가이드 (2) 이미지와 컨테이너 1. 이미지 vs 컨테이너 컨테이너 : 애플리케이션, 웹사이트, 노드 서버, 전체 환경 등을 모두 포함하는 패키지 -> 소프트웨어 단위 실행 이미지 : 템플릿, 컨테이너의 청사진 -> 코드, 도구와 런타임을 포함 ~ 한 이미지에 여러 컨테이너를 만들 수 있다 2. 사전에 만들어진 이미지 가져오기 : Dockerhub.com ex) 터미널에서 docker run node : node 공식 이미지 가져오기 docker ps -a : 생성한 모든 컨테이너 조회 docker run -it node : 노드 대화형 세션 열기 ~ 인터렉티브 노드 터미널에 접속할 수 있다. -> 이미지는 컨테이너에 필요한 모든 논리와 모든 코드를 보관하는 데 사용된다. 3. DockerFile을 이용해 커스텀 이미..
Udemy : Docker & Kubernetes 실전 가이드 (1) 도커란 무엇인가? 왜 사용해야 할까? - 도커란 컨테이너 기술, 컨테이너를 생성하고 관리하기 위한 도구이다. SW 개발에서 컨테이너란, 코드 패키지를 의미하며 그 코드를 실행하기 위한 종속성과 도구를 포함하고 있다. 어떤 애플리케이션을 컨테이너로 배포한다고 하는 것은 구성 파일과 런타임, 그리고 실행하는 데 필요한 기타 도구를 포함하고 있다는 뜻이다. 함수형 프로그래밍의 목적과 같이, 항상 같은 동일한 동작과 결과를 제공한다는 장점이 있다. 왜 사용하는가 - 똑같은 개발환경을 갖기 위해, 특정 버전을 컨테이너에 고정할 수 있으므로 코드가 항상 정확한 버전으로 실행되는 것을 보장한다. 프로젝트를 전환할 때 버전을 제거하고 재설치하는 번거로움을 줄일 수 있다. 솔루션 : 가상 머신/ 가상 운영체제 ~ 도커와..
AWS S3를 활용해 프로젝트 구현 : 상품 & 프로필 서비스 이미지 스토리지로 활용하기 도입 취지 파일 스토리지로 사용할 서비스를 찾던 도중, 이미지 스토리지로 많이 활용한다는 AWS S3 서비스에 대해 알게 되었고, 다음과 같은 장점을 근거로 도입하기로 했다 장점 확장성: S3를 사용하면 거의 무제한의 데이터를 저장하고 검색할 수 있으므로 빠르게 확장할 수 있는 기능이 필요한 애플리케이션에 적합하다. 보안: S3는 서버 측 암호화, ACL(액세스 제어 목록) 및 버킷 정책을 비롯한 다양한 보안 기능을 제공하여 데이터를 보호하다. 사용 용이성: S3는 사용하기 쉽고 다른 AWS 서비스와 원활하게 통합되므로 확장 가능하고 안정적인 애플리케이션을 구축하려는 개발자에게 적합하다. 구현 기간 02. 28 ~ 03. 03 실행 환경 - Spring boot 3.02 - Java 17 - Gradle..
로드밸런싱/ 스케일 업/ 스케일 아웃 : 서버의 분산 시 의사 결정에 대해 1. 로드 밸런싱 + ( vs 오토 스케일링 ) 참고 레퍼런스 : https://aws.amazon.com/ko/what-is/load-balancing/ 로드 밸런싱이란 무엇인가요? - 로드 밸런싱 알고리즘 설명 - AWS 로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법입니다. 최신 애플리케이션은 수백만 명의 사용자를 동시에 처리하고 정확한 텍스트, 비 aws.amazon.com https://mozi.tistory.com/603 로드 밸런싱이란, 애플리케이션을 지원하는 리소스 풀 전체, 서버 전체에 네트워크 트래픽을 균등하게 분산하여 배포하는 방식이다. 로드 밸런싱을 사용하게 되면, 다음과 같은 장점이 있다. 1) 가용성 : 트래픽을 분산하지 않고 특정..
강의 정리 : AWS 실무 기초 (1) 출처 : 내일배움캠프 기존의 웹 서비스 : 운용되고 있는 IDC 서버를 통해 서비스 배포 AWS가 이를 대체가능하다 ~ 서버 컴퓨터와 네트워크 연결, IP 연결, 도메인과 연결하는 기존의 과정을 보다 빠르게 진행할 수 있다. 또한 서버의 운용이 탄력적이다 AWS의 IDC는 세계 각 지역에 분포하고 있고, 각 센터가 분포한 나라를 리전, 그 중에서도 센터가 위치한 지역을 존이라고 한다. 서비스하는 지역에서 가장 가까운 존의 IDC 센터를 이용해야 속도가 가장 빠르게 나온다. S3 저장소 활용하기 1) 버킷 버킷은 S3에서 파일(객체)을 저장하는 폴더 * 버킷 만들기 액세스 차단 설정 : 버킷에 저장한 파일의 권한을 설정하는 기능 - 퍼블릭 엑세스 : 버킷이 생성되면 고유한 URL이 부여되고, 이 URL을 ..
CI/ CD + Github Actions & AWS EC2 출처 : 내일배움캠프 1) CI(Continuous Integration) : 지속적 통합 ~ 여러 개발자가 하나의 프로젝트를 같이 개발할 때 발생하는 불일치 최소화 -> CI를 제대로 구현하면 애플리케이션 변경 사항 반영 시 자동으로 빌드 및 테스트되어 잘못된 코드가 공유되는 것을 방지 코드의 신뢰성 증진 2) CD(Continuous Deployment) : 지속적 배포 ~ 프로젝트의 변경사항을 가상 환경에 자동으로 배포 -> CD를 구성해두면 변경사항을 배포할 때 사용하는 파이프 라인을 공유하여 번거로움을 없앨 수 있다 배포 플로우의 동기화 Github Actions : 깃헙에서 제공하는 CI/CD 툴 +JAVA CI with Gradle : gradle.yml 수정하기 on : 워크플로우 수행할 ..

728x90