NAT(Network Address Translation) 이란 무엇이고 왜 필요한지
·
DevOps&Cloud
서론 클라우드 구축을 하다보면, Private VPC에서 인터넷을 연결해주기 위해 NAT가 필요로 하는 경우가 매우 많다. NAT가 처음에는 그저 사설 IP 혹은 사설 네트워크 내의 리소스가 외부 인터넷과 연결을 위해 사용된다고 생각하여 사용했지만, 사실 정확한 용도는 이름 자체에 있다. Network Address Translation쉽게 말해 네트워크 주소인 IP를 바꿔주겠다는 것이다. NAT 정의 [공용적인 정의]NAT(Network Address Translation, 네트워크 주소 변환)는 사설 IP 주소를 공인 IP 주소로 변환하거나 그 반대로 변환해주는 기술이다. 주로 내부 네트워크(예: 가정이나 회사의 LAN)에서 사용하는 장치들이 인터넷과 통신할 수 있도록 도와주는 역할을 한다. [클라..
CICD: JIB(Java Container Image Build) 장점과 언제 쓰는것이 좋을까
·
DevOps&Cloud
정의 JIB은 Java 컨테이너 이미지 빌더로, Java 애플리케이션을 Dockerfile 없이 손쉽게 Docker 이미지로 빌드할 수 있도록 도와주는 Google에서 개발한 오픈소스 도구이다. Maven 또는 Gradle 플러그인으로 제공되며, JVM 기반 애플리케이션을 컨테이너화할 때의 복잡함을 줄여준다. 사용법 말그대로 플러그인이기 때문에 기존에 이미지를 빌드하기 위해서 Docker Daemon이나 DockerFile을 필요로 하지 않는다. 간단하게 아래 Gradle에서 진행할 수 있다. Gradle에서의 JIB 활용법plugins { id("com.google.cloud.tools.jib") version "3.4.0"}jib { to { image = "your-repo/your-app..
프로그래머스 DP 문제 분석하기
·
Algorithm(Python)
1. 정수 삼각형https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 요약: 7에서 맨 아래로 내려오는데 합이 가장 큰 값 구하기. 왼쪽 아래와 오른쪽 아래로만 이동가능 풀이 과정:DP 중에서도 Up-Down으로 풀면 쉽게 풀이가 가능한 문제이다. 문제는 7에서 부터 내려오는 걸로 되어 있지만, 좀 더 쉽게 풀기 위해서는 아래서 부터 최댓값을 찾아서 처음 출발지인 '7'로 돌아오면 된다. [처음 삼각형] 7 3 8 8 1 0 2 7 4 44 5 2 6 5 [아래서 두번째 최댓값 업데..
Elastic Search 이해하기(Elastic Search vs RDBMS)
·
DevOps&Cloud
Elastic Search란? Elastic Search는 JAVA 오픈소스 분산 검색 엔진. 데이터를 인덱싱하여 저장하고, 검색, 집계등의 기능을 수행한다. 대표적인 장점으로는 RDBMS에서 다루기 어려운 Full text Search 기능이 제공된다. Elastic Search의 구조 DocumentElasticSearch에서 데이터의 최소 단위. RDBMS에서의 row를 생각하면 된다.-> 실제로는 JSON 객체이며, 내부적으로 많은 Field와 Document 내부에 Document가 존재할 수 있다. FieldDocument 안에 들어가는 데이터. RDBMS의 Column Type여러 Document가 모여서 하나의 type을 이룬다. RDBMS의 table. Index데이터가 검색될 수 있는 ..
Kubernetes Architecture: Control Plane 과 Worker Node 이해하기
·
DevOps&Cloud
Kubernetes Architecture 쿠버네티스 아키텍처는 컨테이너화된 워크로드를 안정적이고 적응 가능한 환경을 제공하기 위해, 여러 서버와 클러스터에 분산된 컴포넌트들이 함께 동작하는 집합이다. 그리고 이러한 도커 오케스트레이션을 위해서는 크게 Control Plane과 Worker Node가 존재한다.사실 직접 쿠베네티스로 인프라를 구축하면서 크게 신경을 쓰지 않았던 부분인데, 항상 아키텍쳐만 보면 두루뭉실하고 이해가 확실히 가지 않았다. 그러다 찾은 아키텍쳐 그림중 아래 그림이 가장 직관적으로 잘 설명하는 것 같아 이번 기회에 제대로 정리해보았다. Control Plane(Master Node) Kubernetes 클러스터를 관리하고 결정을 내리는 핵심 뇌 역할이다. 이제 흔히들 Master..
Helm이란?
·
DevOps&Cloud
서론이전 쿠버네티스로 프로젝트를 진행하면서, 지겹도록 봤던 단어가 Helm이라는 용어이다.실제 프로젝트에서 적용했던 경우는 한번 밖에 없었지만, 당시에는 처음이라서 리소스를 만들거나 배포할때 아래 명령어를 사용해서 배포하고 관리했다. kubectl apply -f 근데 공부를 하고 좀 더 찾아보면, 이 Helm이라는 도구가 kubernetes에서 매우 유용하게 쓰일 수가 있다.Helm이란 무엇인가 정의:Helm은 Kubernetes용 패키지 매니저로, 애플리케이션을 정의하고 설치하고 업그레이 하는 작업 과정을 코드로 템플릿화하여 수행할 수 있도록 도와준다. Helm을 사용함으로써 복잡한 Kuberenetes 리소스 정의도 하나의 패키지(Chart)로 관리할 수 있고, 배포, 업데이트, 롤백까지 도와준다는..
프로그래머스: Stack Queue 알고리즘 문제 분석하기
·
Algorithm(Python)
Queue를 활용한 문제 풀이 1https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정 및 아이디어 도출]해당 문제는 "앞에있는 기능이 배포가 되지 않으면, 뒤에 있는 기능이 개발 완료되었더라도 먼저 배포 불가능하다" 가 문제의 핵심이다. 여기서 이제 "앞에있는 기능이 배포가 되지 않으면, 뒤에 있는 기능이 개발 완료되었더라도 먼저 배포 불가능"--> 선입 선출 --> FIFO --> Queue를 떠올렸다 그러면 큐에는 무엇을 저장해야할까?-> 작업 순서 및 크기, 작업 진행 속도: 이 ..
Reverse Proxy, LoadBalancer의 차이 알아보기
·
DevOps&Cloud
Reverse Proxy란? Reverse Proxy는 서버와 클라이언트 사이에 위치하여, 서버로 들어오는 요청을 관리해주며 응답도 처리해주는 것이다. 가장 대표적으로 Reverse Proxy의 도구로 Nginx를 많이 사용한다.Client로부터 요청이 들어오면, NGINX가 그 요청을 받아서 서버풀로 적절하게 라우팅을 해주게 된다.마찬가지로 서버의 응답도 NGINX를 거쳐서 Client에게 보내지게 된다. Reverse Proxy를 쓰면 좋은점 대표적으로 아래와 같다. 1. 보안 강화 (서버 보호)클라이언트는 실제 백엔드 서버의 IP를 모르기 때문에 클라이언트의 서버 직접 접근을 차단할 수 있다 → DDoS, 해킹 방어인증, 방화벽, SSL 처리 등도 프록시에서 전담 가능하다2. 캐싱 기능으로 성능 ..