본문 바로가기

반응형

전체 글

(179)
컨테이너 오케스트레이션 종류 도커 컨테이너로 서비스를 하게 되면 하나의 도커 이미지 안에 서비스 운영에 필요한 모든 것들이 들어 있어 개발자가 쉽게 협업이 가능하다. 도커컨테이너는 배포가 쉽고 빠르며 시스템 의존성을 쉽게 업그레이드할 수 있어 스케일 아웃에 용이하고, CPU limit, Memory limit 등의 시스템 자원을 효율적으로 활용할 수 있다. 하지만 이렇게 컨테이너화된 애플리케이션이 다운이 되면 직접 재실행 시켜야 한다.전통적인 방식과 VM보다 관리가 용이하지만 컨테이너의 스케일 아웃 장점 때문에 관리해야 하는 컨테이너 수가 많아지게 되면 과제로 남는다. 컨테이너 오케스트레이션이란?오케스트레이션(Container Orchestration)이란?수많은 연주자들이 지휘에 맞춰 연주하는 것을 “오케스트라” 컨테이너 오케스트..
도커(Docker) 란 무엇인가? 도커(Docker)란?Accelerate how you build, share, and run applications : 컨테이너 가상화 기술을 이용해 개발자들이 프로그램을 더 쉽게 배포/공유/실행 할 수 있도록 설계된 컨테이너 기반 오픈 소스 가상화 플랫폼각 애플리케이션을 컨테이너라 불리는 독립적 환경에 격리시켜, 한 컴퓨터에서 여러 애플리케이션을 동시에 실행하고 관리할 수 있도록 한다. 즉, 프로세스들을 마치 배에 실린 컨테이너처럼 각 컨테이너로 격리시켜 하나씩 관리하는 기술 기존 가상화 방식 vs 도커?가상화 기술이 나오기 전에 1 서버, 1 OS 하나의 프로그램만 운영되고, 남는 공간은 방치 -> 안정적+비효율하이퍼 바이저 기반 가상화 출현 -> 논리적으로 공간 분할 : VM(Virtual M..
[aws] aws ec2, ssm 명령어 사용기 AWS SSM 이란?AWS에서 인프라를 보고 제어하기 위해 사용할 수 있는 AWS 서비스기존 Bastion host를 통해 SSH 로 EC2 인스턴스에 접근하는 방식에는 몇 가지 단점이 존재1. Bastion host 전용 서버를 따로 생성2. Basion host에서 ec2에 접속할 때 필요한 키페어를 생성해서 보관보안을 위해 접속하는 EC2 인스턴스 마다 키를 별도로 생성 + 접속하는 사용자마다 사용자를 생성하여 키를 설정해야 한다.하지만 대부분 키 하나를 두고 모든 사용자들에게 키를 공유하여 사용한다.(우리도 그렇다)3. SSH 연결을 위한 서버 설정 및 보안 그룹 생성 등 관리한 부분들이 존재 SSM 특징/장점인바운드 포트를 열거나 SSH 키를 관리할 필요 없이 관리형 인스턴스에 안전하게 연결Ba..
AWS SSM(system manager) Parameter Store github 인증용 토큰을 하드코딩했는데,보안상으로 굉장히 안좋았다. AWS System Manager > 명령 실행 창에서명령 파라미터 log 로 값을 다 확인할 수 있었다. 그래서 더 신중하게 관리하기 위해서 SSM Parameter Store에 값을 넣어주는 방식으로 해주기로 했다.원래 s3 폴더에 crediental 값이 있긴한데, 이 방법이 더 좋다고 판단했다. SSM Parameter Store를 쓰면 보안 측면에서 S3보다 훨씬 안전하고 깔끔한 방법이야! 특히 GitHub Token처럼 민감한 값은 Parameter Store에서 암호화된 SecureString으로 저장이 가능하기 때문이다.(사실 그냥 github secret를 사용하면 되기는 하는데,, 버전 관리도 해주니) 파라미터를 넣..
[Github] git action SSM, EC2 명령어 실행 및 AWS Credentials 설정 + ssh vs ssm 의 삽질 Github Action 요소workflows : 워크 플로우는 하나 이상의 job으로 구성되고 event에 의해 트리거될 수 있는 자동화된 프로세스이며, YAML으로 작성되고 Github Repository의 .github/workflows 폴더 아래에 저장한다. repository에는 여러 workflow를 가질 수 있으며 각 workflow는 서로 다른 작업을 수행할 수 있다. (워크 플로우는 다양한 job으로 구성되어 있고 병렬 수행)actions : 워크 플로우의 가장 작은 블럭으로 jobs를 만들기 위해 step 들을 연결할 수 있으며, 재사용이 가능한 컴포넌트로서 반복적인 코드의 양을 줄일 수 있고 git repository를 가져오거나 클라우드 공급자에게 인증을 설정할 수도 있다.event..
AWS System Manager(SSW) EC2 인스턴스 연결 설정(SSH 대체) 이전 글에서 https://na0-0.tistory.com/196 Github self hosted runner와 SSM 을 비교하고,최종적으로 우리 서비스는 SSM을 사용하기로 결정했다. 현재 EC2를 확인해본 결과, ECR에 올려져 있지는 않고,인/아웃바운드 포트 22가 열려서 SSH 연결이 오고 들어가는 것을 허용한 것 처럼 보인다. SSH와 Bastion Host를 이용한 방법 (기존)일반적인 방법으로, 필요 EC2 이외에 추가 리소스는 아래와 같다.Public Subnet에 호스팅된 Bastion Host (EC2)Bastion Host에 SSH(22) 접근을 허용하는 보안 그룹 (Security Group) : 적절한 IP 대역에 22(SSH) 포트 허용SSH 접속 인증을 위한 EC2 Key ..
GitHub Action Self-hosted Runner와 AWS SSM EC2 인스턴스에 Key Pair를 생성하고 SSH를 통해 접속하는 것 보다 더 나은 방법인 SSM 서비스가 있다. 현재 우리 회사는 EC2 인스턴스에 변경된 git 코드를 배포하여 production에 최종적으로 반영을 하도록 구성된다.EC2 인스턴스에 SSH를 통해 접속하여, docker run을 실행시켜서 task를 분리하고 있는 플로우다. 그러나 문제점은 CI/CD가 제대로 동작하지 않아서, 계속 수동으로 진행하고 있어 번거로움이 존재한다. 배포가 자동화가 되고 있지 않은 원인은 git action을 통해서 CI/CD를 구축하려고 하는데,SSH 연결은 VPN을 통해서만 허용하도록 하는 것이 보안상 안전하기 때문에Github Action의 실행 방식 특성 상 불특정 IP를 통해 연결하는 것을 허용할..
[Git] 커밋 관련한 내용 총정리 학창시절에는 git에서는 단순히 commit, merge, push, add 등등의 명령어만 사용하던 학생이회사에 갔더니, PR과 commit, rebase, cherypick 등등 대규모와 다양한 사람들과 협업하는 상황에서 이것저것 실수를 많이 하기도 하고,여러명이 붙어서 PR review를 해주는데,사람의 성향에 따라서 commit 내역을 위주로 따라 흐름을 보는 사람이 있고,코드의 변화를 중점으로 보고 있는 사람이 있어서PR을 날릴 때에는 여러 방면에서 신경을 써주어야 한다는 것을 느꼈다. 그리고 확실히 commit을 자유자제로 사용할 수 있다면,조금 더 코드 관리가 쉬워질 것이라고 생각한다.  작업 중에 여러 차례의 커밋을 하는 것은 개발자에게 많은 이점을 제공한다.어떤 변화를 주었을 때의 결과를..

반응형