개발자의 기록장 블로그

만나서 반가워 !
이거 좋아해?

쿠버네티스 개요
·
DevOps/Kubernetes
K8S 개요K8S 공식사이트 쿠버네티스는 컨테이너 기반 환경에서 서비스의 고가용성, 운영, 스케일아웃, 네트워크, 로드밸런싱을 쉽게 할 수 있도록 나온 오픈소스이다. 기업에서 쿠버네티스만을 쓰는 곳은 없고, 관리형 쿠버네티스인 EKS와 같은 서비스를 이용한다고 한다. 1.24v 이후부터 컨테이너엔진을 골라서 사용할 수 있는데, 그 이전 버전은 도커엔진을 사용하도록 하드코딩 돼있다. 따라서 실습 환경은 1.23v 을 사용할 것이다.K8S 구성VM 기반으로 클러스터를 구성할 것이며 Control Plane 1대, Worker Node 2대로 이루어져있다.클러스터의 각 노드들은 각자의 사설IP로 통신하며, TCP/IP 기반의 네트워크 통신을 한다.배포 단위K8S는 컨테이너 오케스트레이터로 배포의 단위가 컨테이..
AWS - VPC 설정
·
DevOps/AWS
VPC를 통해 AZ별로 서브넷 마스크를 나누어 VLan을 구성할 수 있다.인터넷 게이트웨이에 공개할 대역을 선택해 외부에서 접근 가능한 서비스와 내부에서 통신할 서비스들을 분리시켜 보안을 향상시킬 수 있다.VPC 설정AWS의 VPC 서비스로 이동하면 기본으로 설정된 VPC를 확인할 수 있다.우리는 VPC중 사용할 VPC를 선택할 수 있으므로 범위가 겹치더라도 문제가 생기지 않는다.VPC 생성사용할 VPC의 대역 CIDR 를 설정한다 생성이 완료되면 우리가 설정한 정보를 확인할 수 있다. 우리가 만든 VPC를 선택 후 작업을 클릭해 VPC 설정 편집을 한다.아래와 같이 DNS 설정을 모두 체크해준다. 서브넷 설정서브넷 생성VPC를 우리가 원하는 서브넷마스크로 사용 범위를 나누어주기 위해 서브넷을 생성해주어..
Github Authorization
·
DevOps/Git
로컬 환경, 원격 환경, 리눅스 컴퓨터 리소스 등 다양한 플랫폼에서 소스 코드 관리를 위한 도구로 깃을 사용한다.가끔씩 인증이 풀려서 github 인증이 풀리는 경우가 많은데 해결 법으로 SSH 와 Personal Access Token (Classic) 이 있다.SSH기존 SSH 키 확인새 SSH 키를 만들기 이전에 머신에 있는 기존 키를 확인한다.2022년 3월 이후로 DSA 키는 더이상 지원하지 않는다. RSA 키를 사용하자.ls -al ~/.ssh키가 존재한다면 해당 키의 id_rsa.pub 를 사용하거나 새로운 키를 생성한다.SSH 키 생성Ed25519 알고리즘 지원 시스템ssh-keygen -t ed25519 -C "your_email@example.com"미지원 레거시 시스템ssh-keyge..
Kafka Cluster 외부 접근 구성
·
DevOps/Kafka
개발을 진행하면서 카프카 클러스터를 외부에 노출시켜야 하는 경우, 같은 VPC 내부에서 작업하지 않고 개발용 클러스터를 구축해야 하는 경우가 있었다. 기본적으로 카프카 클러스터는 VPC 내부에서 Private하게 사용되는 것이 보안상 올바르다. 클러스터에 누구나 접근 가능하다는 점이 보안상 위험한 부분이다. 따라서 AWS MSK 또한 VPC 외부에서의 접근을 원칙적으로 막고있다. 하지만 개발용 환경을 분리시켜놓고, TDD - 통합 테스트 과정에 있어서 카프카 클러스터 접근이 필수적으로 요구되고, 이를 위해 코드를 분리할 필요없이 통합 테스트를 수행할 수 있어서 데이터베이스와 구성 환경만을 잘 구분짓는다면 개발 환경과 프로덕트 환경간의 간극을 확실히 줄일 수 있다고 생각해 클러스터를 노출시키기로 결정했다...
블록 체인 개론 #5
·
Computer Science/Block Chain
블록 체인 개론암호 화폐 지갑지갑의 개념에 앞서 어떻게 비트코인을 주고 받는지 알아보자. 사실 비트코인을 보낼때 아무것도 보내지 않는다. 내가 비트 코인을 소유한다는 것은 내가 비트코인을 가지고 있다는 것이 아니다. 비트코인은 네트워크 상에 영원히 존재한다. 즉 지갑에 비트코인을 넣는다는 개념이 애초에 잘못된 것이다. 그렇다면 어떻게 비트코인을 소유할 수 있는 것일까? 예를 들어서, 집을 산다고 했을 때 집의 주소가 바뀌는 것이 아니라 그 집 문서가 바뀐다.즉 비트코인을 거래할때 A가 B에게 5개의 비트코인을 준다고 할 때 5개의 비트코인의 소유주의 이름을 B로 변경하는 것. 여기서 이름을 지갑으로 바꿔보자. 비트코인 지갑은 굉장히 긴 문자열이다.16faewiobng1egBASkbsakn2 : 비트코인 ..
블록 체인 개론 #4
·
Computer Science/Block Chain
블록 체인 개론NFTNFT - Non Fungible Token대체 불가능 토큰이란 의미이다. Fungible: 예를 들어서 1달러 화폐와 1달러 화폐는 1 대 1 교환이 가능하다. Non-Fungible: 땅, 포켓몬 카드, 한정판 신발 등은 1 대 1 교환이 불가능하다. 이더리움을 이용하면 블록체인 기반 나만의 토큰을 발행할 수 있다.이더리움 기반의 코인들을 보면 블록체인의 안정성을 바탕으로 코인을 발행해 화폐로서의 기능을 수행할 수 있는 것이다.토큰 발행돈을 받으면토큰을 보내준다.라는 스마트 컨트랙을 작성하자.예로 1ETH를 보내주면 100코인(토큰)을 보내준다. 만약 딱 한 개의 코인만을 발행하면, 그리고 그 토큰 안에 데이터 ( 포켓몬 카드, 작품, 땅 계약 문서 등등 ) 을 넣는다면? 그러면 ..
블록 체인 개론 #3
·
Computer Science/Block Chain
블록 체인 개론Smart Contract스마트 컨트랙 덕분에 NFT, ICO (Initial Coin Offering), DEX(Decentralized EXchanges) 가 가능해졌다. 비트코인은 다른 사람들고 교류할 수 없다. 주고 받는 것만 가능하다. 하지만 스마트 컨트랙은 다른 사람들과 교류할 수 있고 코드로 소통할 수 있다. 이런 특징을 이용해 DecenterlizedApp ( dApp )을 개발 할 수도 있다. 개발자가 코드를 실제 검증이 이뤄지는 체인에 올려 영원히 거기에 존재하고 수정되지 않는 프로그램을 구동할 수도 있다. 내가 만든 프로그램을 주인 없는 백엔드에 올리고 코드를 검증받고 실행한다는 점이 스마트 컨트랙의 큰 매력이다.예시은행나만의 은행 계좌를 만들 수 있다.돈을 저축한다.시..
블록체인 개론 #2
·
Computer Science/Block Chain
블록체인 개론작업증명작업증명은 어떤 데이터가 블록체인에 올라갈 수 있는가를 정하는 것이다.전체 블록체인 시스템에 거짓말을 하지 않고 진실을 말하기 위한 과정으로 이를 위해 작업증명이 필요한 것. 작업 증명을 통해 비트코인, 이더리움 등 다양한 크립토들이 사기꾼으로부터 블록체인을 보호하고 있다.이를 이해하기 위해 채굴자 개념을 이해해야 한다.채굴채굴자의 일은 블록체인에 들어오는 데이터를 확인하는 일이다.채굴자가 데이터를 블록안에 넣어서 블록체인에 보내는 역할을한다. 예를들어 비트코인 블록체인에서 비트코인을 친구한테 보내면 그 거래내용은 확인되지 않는다.하지만 채굴자가 거래내역을 보고 확인한 후에 친구에게 돈을 보낸 모든 내용을 확인한다.내용의 검증이 끝나면 데이터를 블록에 넣고, 꽉 차면 블록을 닫고 온체..