개발자의 기록장 블로그

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

쿠버네티스 실습
·
DevOps/Kubernetes
실습 환경EC2 3대 - centos7VPC - defaultK8S - 1.23vdocker - latestEC2 구성centos7 이미지 파일로 t2.medium 으로 생성해준다.2코어 이상이 필요하므로 적절한 리소스를 사용하자2024년 6월 21일 부로 오류가 발생했다. 다른 버전을 사용하자 추후 각 ec2에 동일한 포트를 열어주기 위해 생성할 때 같은 보안그룹을 설정해준다.NACL과 보안그룹은 다른 영역의 내용이다. 서브넷 NACL을 개방하더라도 적용되지 않는다. ec2에 접근시 유저 이름을 centos 로 설정해야 정상적으로 접속된다.예를 들어ssh -i "key_file_name.pem" ec2-user@publicDomainName 이라면, ec2-user 를 centos 로 설정해야 정상적으..
쿠버네티스 개요
·
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 - 통합 테스트 과정에 있어서 카프카 클러스터 접근이 필수적으로 요구되고, 이를 위해 코드를 분리할 필요없이 통합 테스트를 수행할 수 있어서 데이터베이스와 구성 환경만을 잘 구분짓는다면 개발 환경과 프로덕트 환경간의 간극을 확실히 줄일 수 있다고 생각해 클러스터를 노출시키기로 결정했다...
Terraform - AWS 네트워크 구축
·
DevOps/Terraform
테라폼으로 AWS 네트워크 구축하기Terraform?테라폼은 IT 인프라를 코드로 정의하고 관리하는 도구다.코드를 사용하여 클라우드 리소스나 온프레미스 인프라를 설정하고 관리할 수 있다.이렇게 하면 반복 작업을 자동화하고, 시스템을 유연하게 확장하며, 변경 사항을 추적하고 문제를 미리 예방할 수 있다.AWS CLI 설치 ( 선택 )MAC# AWSCLI 설치brew install awscli# AWS CLI 버전 확인aws --version# 설정 정보 구성aws configure설정 정보에는 AWS 계정 ID, 액세스키, 비밀 액세스키를 입력하면 된다.AWS 계정 IDIAM -> 보안 자격 증명 에 들어오면 계정 세부정보에서 AWS 계정 ID를 확인 할 수 있다.액세스키들보안 자격 증명에서 액세스 키 만..
3. GIT 실무 맛보기
·
DevOps/Git
지금까지 우리는 GIT이 어떤 개념이 있고 어떤 방식으로 돌아가는지 배웠다.그런데... 막상 바로 실무에서 사용하기에에느느으으은.. 조오오그음.. 부족한 감이 없잖아 있다!그래서 실무에서 사용되는 내용들을 정리해서 글을 써놓으려 한다.  다른 개발자가 먼저 Git push를 해버렸다면..?이 상황은 로컬 레포와 리모트 레포의 커밋이 다를 때, 즉 한 프로그램을 다른 개발자들과 협업할 때 자주 일어난다. 로컬 레포를 수정하는 동안 리모트 레포가 바뀐다면,,, 바로 git push를 할 수 없다.그래서 보통 git pull로 내용을 가져와서 커밋을 만든 후에, 다시 push를 해주는데...그런데 git pull을 할 때 에러가 뜬다. 그래도 다행히 merge conflict 에러라서 쉽게 해결이 가능하다! ..
4. 커맨드 모음
·
DevOps/Git
Git 써보기 git init : 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성 git config user.name 'hwany' : 현재 사용자의 아이디를 'hwany'로 설정(커밋할 때 필요한 정보) git config user.email 'emailaddress' : 현재 사용자의 이메일 주소를 설정(커밋할 때 필요한 정보) git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기 git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기  git add . : working directory 내의 수정사항이 ..