본문 바로가기

반응형

분류 전체보기

(177)
[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을 자유자제로 사용할 수 있다면,조금 더 코드 관리가 쉬워질 것이라고 생각한다.  작업 중에 여러 차례의 커밋을 하는 것은 개발자에게 많은 이점을 제공한다.어떤 변화를 주었을 때의 결과를..
elastic search에서 서치와 페이지네이션 painless : Elastic Search 자체 스크립트 언어params매개변수 Mapctx._source문서의 _source 값 Map으로 변환ctx._nowtimestamp를 ms로 변환한 값ctx._indexctx._idctx._typectx._routingctx._version메타데이터  Update by queryPOST [인덱스명]/_update_by_query 쿼리 요청하면 문서를 일종의 스냅삿을 찍는다. 여기서 버전 충돌 문제가 생기면 conflicts 에 따라 작업한다. abort (기본값) 면 충돌 시 작업 중단하며, proceed 로 하면 무시하고 넘어간다. scroll운영중에 update 하면 부하 줄 수 있으므로 스로틀링을 통해 작업량을 조절-scroll_size: 업데이트 전..
[CI/CD] Gitlab CI/CD vs Github action vs Jenkins 최근에 현대자동차에서 백엔드 개발하고 있는 친구를 만났는데,그 친구 회사는 gitlab CI/CD를 사용하고 있다고 한다.github action으로 deploy 파이프라인을 구축해야 하는 나로서,gitlab는 어떤 차이가 있고, Jenkins 를 포함하여어떤 것을 고민해보고 인지하고 있으면 좋을지를 알기 위해서 정리해보고자 한다.  CI/CD 툴 중에서 가장 많이 쓰이는 GitHub Actions와 GitLab CI/CD, Jenkins 세 가지를 언급하려고 한다.   GitHub Actions란?https://github.com/features/actionsGithub가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼: Github Actions은 Githu..

반응형