분류 전체보기 썸네일형 리스트형 [jenkins] docker build 후 amazon ECR로 이미지 업로드하기 1. plugin 설치 먼저 젠킨스에 Amazon ECR, docker pipeline 플러그인을 설치하고 젠킨스를 재부팅 해주세요. 2. ECR Repository 생성 ECR에 이미지를 업로드 하려면 당연히 이미지 저장소가 있어야하겠죵. 하나의 github repository마다 하나의 ECR 이미지 저장소가 필요합니다. Create Repository를 눌러 이미지 별로 레포지토리를 생성해줍니다. 3. AWS Credentials 설정 aws credential 등록부분을 참고하여 AWS CRedentials를 등록해줍니다. 해당 계정은 ECR에 이미지를 업로드하는 권한을 가지고 있어야 합니다. 만약 aws ECR, ECS와 같은 서비스를 젠킨스에서 사용하고자 한다면 젠킨스가 aws 리소스에 접근하.. 더보기 TerraForm vpc ,subnet ,ec2 구성 어제 전담멘토님하고 클라우드에 관련된 질문 뿐만 아니라 여러가지로 궁금사항에 대해 질문을 했다. 그러다가 우연히 cloudformation과 terraform에 대해 설명을 해주셨다. Iac 란 무엇인가 ?? infrastructure as Code 라고 불리고, 테라폼에서는 하시코프 설정언어 HCL을 사용하여 클라우드 리소스를 선언할 수 있다. 쉽게 이야기하면 인프라를 사람이 읽을 수 있는 코드로 만들고 이를 통해 버전 관리,공유 및 재사용이 가능하다라는 엄청난 장점이 존재한다. 클라우드 멘토링을 여태 10번넘게 들은 것 같다. 모든 멘토님들이 말씀하시길 aws cli을 사용할 줄 알아야한다. 콘솔에서 클릭클릭해서 생성하는것은 때로는 엄청 귀찮은 작업이다. 그래서 이번기회에 aws cloudFormat.. 더보기 Lock 정리(낙관적 락과 비관적 락, 분산락, 데드락) 및 활용까지 낙관적 락(optimistic Lock) - 충돌이 발생하지 않는다고 낙관적이라고 가정함. - DB가 제공하는 락 기능이 아니라 어플리케이션에서 제공하는 버전관리 기능을 사용함. - version 등의 구분칼럼을 사용하여 충돌방지 - 트랜잭션을 커밋하는 시점에 충돌을 알 수 잇다. - 최근 업데이트 과정에서만 락을 점유하기 때문에 락 점유시간을 최소화하여 동시성을 높일 수 있다. 예) 1. A가 먼저 접근 후 바로 뒤이어 B가 접근한다. 2. A가 해당 ROW와 version 을 업데이트한다. 3.B가 커밋 시점에 해당 ROW를 업데이트하려고 version을 체크해보니 처음과 다른 경우 어플리케이션은 예외를 발생시키고 첫번째 A의 커밋만 적용하여 정합성을 유지한다. 4. 실패된 커밋을 어플리케이션에서 후.. 더보기 JaCoCo 적용하여 테스트 커버리지 체크하기 최근 소마 프로젝트를 진행하면서 jenkins로 빌드하면서 코드정적분석인 sonarqube하고 jacoco로 테스트커버리지를 분석하는 이야기를 멘토링 뿐만아니라 주위에서도 많이 들었다. 그래서 이번 소마프로젝트에서도 jacoco를 통해 테스트커버리지가 60프로이상을 목표로 잡아보고싶다. 이를 계기로 한번 적용해보겠습니다. 1. JaCoCo 플로그인 등록 plugins { id 'jacoco' } 2. jacoco가 만들어지는 경로를 설정 // Report config // 리포트의 저장 경로를 설정합니다. jacocoTestReport { reports { html.enabled true xml.enabled false csv.enabled false html.destination file("jacoco.. 더보기 따배쿠 4장 쿠버네티스 동작과정 쿠버네티스의 동작과정 개발자/운영자가 컨테이너들을 build한다 build했던 이미지들을 도커 명령어로 hub에 올리기 ( + 4 )쿠버네티스 명령어를 통해, 이 컨테이너가 실행될 수 있도록 요청 master는 이 요청에 따라서, worker node들에게 해당 컨테이너를 배치 scheduler는, 어디가 적절할지 판단한 뒤 REST API server에게 최적의 노드를 알려줌 이 API는, 할당받은 node의 kubelet에게, 해당 컨테이너를 실행해줄것을 요청함 해당 node의 kubelet은, 도커 명령어로 변환한 뒤, 도커 데몬에게 실행할 것을 요청함. 도커 데몬은, hub에서 해당 image를 찾은 뒤 실제로 실행함. 쿠버네티스는, 이렇게 실행되게 된 container를 “pod”라는 단위로 관.. 더보기 따배쿠 3장 kubectl 실습 및 pod 생성하기 전반적인 쿠버네티스 설치과정 Docker install 설치 전 환경설정 kubeadm,kubectl,kubelet 설치 control-plane 구성 worker-node 구성 설치확인 쿠버네티스에서는 최소 램2기가 Cpu2코어이상 사용하는 것을 권장하고있다. ec2에 클러스터구축는방법도 올리고 싶지만... sw마에스트로 멘토님이 주신자료라 올리기가.. 조금 그렇다 ㅎㅎ.. kubeadm 쿠버네티스의 공식 설치 툴 CNI(Container Network Interface) CNI를 구성해야만 서로 통신가능하다. CNI: 컨테이너간 통신을 지원하는 VxLan(pod Network) 대표적으로 ex) 폴라넷(flannel),칼리코(calico),위브넷(weavenet) TMI:내가 오늘 CNI때문에 고생.. 더보기 Route53 과 Cloudwatch 연동해서 로깅처리 Route53에 도메인을 연결했다는 가정 하에 진행하겠습니다. CloudWatch Logs에서 생성된 Log Group 확인 Route53 관리 화면에서 Log Group 생성을 마쳤으면 CloudWatch 관리 화면으로 이동하여 생성된 Log Group을 확인해 보도록 하겠습니다. CloudWatch 관리 화면의 왼쪽 메뉴중 `Logs` 하위에 있는 Log groups 메뉴를 선택합니다. 생성되어 있는 Log Group 목록이 출력되면 검색창에 /aws/route53 을 입력하거나 Zone 이름을 입력하여 Log Group을 찾을 수 있습니다. 이제 route53을 통해 들어오는 모든트래픽에 대해 로깅처리가 가능해졌습니다. 더보기 github 자주쓰이는 명령어 정리 # 모든 파일을 Staging Area로 이동 git add . # 몇개가 add 됐는지 file들의 상태확인 git status # 파일 저장소에 커밋 git commit -m "메세지내용" # 저장소에 푸쉬 git push # 해당 저장소 commit내역 pull로 가지고오기 # 최신화 됐는지 git fetch all 필수로 하기 git pull # 병합할 브랜치로 이동해서 무슨브랜치랑 병합할건지 설정 git merge origin develop # 나의 헤드 , 커밋내역을 보여줌 git log # 원격저장소의 내용을 로컬에 업데이트 git fetch --all # 로컬 캐시에 작업할 영억을 담아둠 git stash # 저장해둔 로컬캐쉬를 현재 브랜치에 적용시킴 git stash -apply # 원격.. 더보기 이전 1 ··· 6 7 8 9 10 11 12 ··· 35 다음