Vault는 HashiCorp에서 제공하는 비밀 관리 시스템dl다. Vault는 보안 정보를 안전하게 저장하고 관리하는 데 사용된다. 외부 정보는 Vault의 비밀 관리 기능을 활용해 보안 토큰, 비밀번호, API 키 등을 저장하고 접근할 수 있는 방식으로 구성된다.Vault의 외부 정보 구성 방식은 크게 다음과 같은 몇 가지 주요 개념을 포함한다. 1. Vault의 아키텍처Vault는 중앙 집중식 비밀 관리 시스템으로, 외부 시스템이 Vault와 연결하여 비밀 정보에 접근한다. Vault는 두 가지 주요 방식을 제공한다. 키-값 저장소 (KV Store): 비밀 데이터를 키-값 형태로 저장한다. kv 경로에서 다양한 비밀을 저장하고 관리할 수 있다.시크릿 엔진 (Secret Engines): 다양한 비..
분류 전체보기
마이크로서비스를 안정적으로 유지하려면 이식성 문제, 즉 마이크로서비스를 다른 기술 환경에서도 실행할 수 있는 방안을 마련해야 한다. 이식성(portability)은 소프트웨어를 다양한 환경으로 이동하거나 그 환경에서 활용할 수 있는 능력을 의미한다. 컨테이너를 활용하면 소프트웨어를 한 플랫폼에서 다른 플랫폼으로 신속하고 효율적으로 이전하고 실행할 수 있다. 전통적인 웹 서버 모델을 보다 작은 규모의 유연한 가상화된 소프트웨어 컨테이너로 대체할 수 있으며, 컨테이너는 마이크로서비스에 속도, 이식성, 확장성 등의 장점을 제공한다. 도커 (Docker)는 주요한 클라우드 공급자 모두와 호환되는 기술이다. 4.1 컨테이너 또는 가상 머신?여전히 많은 기업에서 가상 머신 (VM)은 소프트웨어 배포를 위한 표준으로..
마이크로서비스를 성공적으로 설계하고 구축하려면 범죄 현장의 목격자들을 인터뷰하는 방식처럼 접근해야 한다. 비록 모든 목격자가 같은 사건을 목격했더라도, 그들의 배경, 중요하게 여기는 것(예시 동기 부여), 목격 당시의 환경적 요인에 따라 사건에 대한 해석은 달라질 수 있다. 각 목격자는 자신이 중요하다고 생각하는 요소에 대해 서로 다른 시각이나 편견을 가질 수 있다. 성공적으로 진실을 추적하는 형사처럼, 성공적인 마이크로서비스 아키텍처를 구축하는 과정은 소프트웨어 개발 조직 내 다양한 개인들의 관점을 통합하는 것과 밀접하게 관련된다. 전체 애플리케이션을 제공하려면 기술 인력 외에도 다양한 인력이 필요하므로, 마이크로서비스 개발 기반을 성공적으로 마련하려면 다음의 세 가지 중요한 역할에서부터 시작할 수 있..
마이크로서비스의 설계, 구현, 유지 보수 과정이 잘 관리되지 않으면 문제를 신속하게 발생시킬 수 있다. 따라서 마이크로서비스 솔루션을 도입할 때는 성능 문제나 병목 현상, 운영상의 문제를 방지하기 위해 아키텍처를 효율적이고 확장 가능하게 유지하는 것이 중요하다. 이를 위해 모범 사례를 적용하는 것이 필수적이며, 이러한 모범 사례를 준수하면 시스템에 대한 이해가 필요한 새로운 개발자들이 더 빠르고 쉽게 적응할 수 있다. 시스템이 더 많이 분산될수록 실패할 곳은 더 많아진다. 마이크로서비스 아키텍처는 단일 모놀리스 애플리케이션과 달리 여러 개발 서비스가 상호작용하는 복잡한 생태계를 구성하기 때문에 더 많은 실패 지점이 존재할 수 있다. 이는 개발자가 마이크로서비스 애플리케이션이나 아키텍처를 구축할 때 다양한..
1.1 마이크로 서비스 아키텍처로 진화소프트웨어 아키텍처는 소프트웨어 시스템을 구성하는 여러 구성 요소들의 구조, 동작 및 상호작용 방식에 대한 설계 및 정의를 다루는 중요한 분야다. 이는 시스템의 전체적인 설계뿐만 아니라, 구성 요소들이 어떻게 조직되고, 서로 어떻게 통신하며, 요구사항을 충족하는 방식으로 동작하는지를 결정한다. 소프트웨어 아키텍처는 시스템의 성능, 확장성, 유지보수성, 보안성 등 중요한 품질 속성에 영향을 미친다.1.1.1 다계층 (N-계층) 아키텍처다계층(N-계층) 아키텍처는 일반적인 엔터프라이즈 아키텍처 유형 중 하나로, 애플리케이션을 여러 계층으로 분리하여 각 계층이 특정한 책임을 맡도록 설계하는 방식이다. 이 구조에서는 각 계층이 독립적으로 존재하면서도 서로 상호작용하여 전체 ..
·리눅스
리눅스 커널의 CPU 스케줄링 알고리즘으로, 공정한 자원 분배를 목표로 설계되었다. CFS는 기본적으로 각 프로세스가 CPU를 공정하게 사용할 수 있도록 하여, 특히 다중 프로세스 환경에서 과도한 자원 사용을 방지하고 시스템의 전체적인 효율성을 향상시키는 데 중점을 둔다. CFS는 CPU 시간 분배의 공정성을 확보하려는 목표 아래, 가상 런타임이라는 개념을 사용하여 각 프로세스에 대한 CPU 시간 할당을 제어한다. 이를 통해 CFS는 프로세스 간의 공정한 CPU 시간을 할당하려 하며, 이 과정에서 여러 중요한 개념들이 작동한다. ▶ CFS의 핵심 개념1. 가상 런타임 (Virtual Runtime)가상 런타임은 각 프로세스가 CPU를 얼마나 많이 사용했는지를 추적하는 값이다.각 프로세스는 CPU를 사용할..
▶ AWS EC2 Docker 설치1. 패키지 업데이트$ sudo apt update 2. https 관련 패키지 설치$ sudo apt install apt-transport-https ca-certificates curl software-properties-common명령어 구성apt-transport-https: APT가 HTTPS 프로토콜을 통해 패키지를 다운로드할 수 있도록 지원하는 모듈. HTTPS는 패키지 다운로드 시 데이터 암호화를 제공하므로 더 안전한 방법.ca-certificates: HTTPS 연결을 위해 필요한 인증서를 제공하는 패키지. 시스템에서 신뢰할 수 있는 인증서를 관리하여 안전한 네트워크 통신을 지원.curl: 커맨드 라인 기반 파일 전송 도구로, HTTP, HTTPS, F..
1. 아파치 카프카 서버를 AWS EC2로 운영하기 위한 AWS EC2 네트워크 설정을 하기 위해, 다음과 같이 instances의 Security 탭의 Security groups를 선택한다. 2. 다음과 같이 Edit inbound rules 버튼을 선택한다. 3. 다음과 같이 Add rule 버튼을 선택한다. 4. 카프카 서버가 사용할 TCP Port(number:9092)를 IPv4와 IPv6 둘 다 설정한다. 5. 네트워크 설정 확인을 위해 ICMP 설정을 추가한다. 6. 추가한 설정들을 저장하기 위해 다음과 같이 하단의 Save rules 버튼을 선택다. 7. 설정된 내용을 다음과 같이 확인한다. 추가적인 설정 또는 변경을 위해 Edit inbound rules 버튼을 선택할 수..