반응형 Devops12 [Jenkins] 젠킨스내에서 jdk버전 여러개 사용하기 / 변경하기 회사 내에서 개발기에 배포하는 과정을 자동화시키기 위해서 서버에 젠킨스를 적용하는 과정에서 발생한 이슈이고 정리하기 위해서 글을 작성한다...! 문제 상황 정리현재 Jenkins는 docker를 이용해서 jdk-17 버전으로 사용 중이다. (즉, 컨테이너 내부는 jdk-17)하지만 내가 진행한 프로젝트는 jdk-1.8을 사용한다.버전이 달라 컨테이너 내부에서 gradlew build를 진행할 수 없다..!!어떻게 해결할 수 있을까? 빌드할 때 java의 버전을 동적으로 변경시켜주어야 한다.그렇다면 먼저 볼륨을 연결해서 거기에 jdk를 설치해 두고 스크립트를 짜서 step을 시작할 때 환경변수를 바꿔주면 되지 않을까? 생각했다.(왜냐하면 현재 로컬에서는 스크립트를 짜서 동적으로 java버전을 관리하고 있기.. 2024. 6. 12. 코드리뷰 약어 살펴보기 사이드 프로젝트를 진행하고 있는 팀원들과 코드리뷰 아닌 코드리뷰를 진행하고 있는데 그동안은 정해진 규칙 없이 아무렇게나 작성하곤 했다. 그러다 보니 중요한 코멘트와 중요하지 않고 단순 의견임을 나태내기 어렵다는 생각이 들기 시작했다. 때로는 잘 작성한 것 같아 그냥 “수고하셨습니다.”만 날리곤 했다. 따라서 코드리뷰에서 주로 사용한느 약어들을 정리하여 실제로 사용보면 어떨까 하여 알아보았다. CL (ChangeList) 코드 변경 단위, 변경된 코드 리스트 NIT (NITpicking) 중요하지는 않지만 더 나은 방법이 있다는 의견 (TMI와 비슷한 느낌이다.) LGTM (Look Good To Me) 내가 보기엔 좋아보여라는 뜻으로 문제가 없어 보일 때 사용한다 비슷한 말로 (SGTM (Sounds G.. 2023. 8. 4. [Docker] Dockerfile 작성하는 방법 도커파일 작성 방법에 대해 학습하기 위해서 공식문서를 참고하여 학습하는 시간을 가져보았다. https://docs.docker.com/engine/reference/builder/ Dockerfile reference docs.docker.com 도커파일(DockerFile)이란? 도커의 이미지를 생성할 때 수행할 코드들을 작성해 두는 텍스트 파일이다. 즉, 템플릿 같은 역할을 하게 된다. 예로 java 17 버전을 이용한 spring boot jar 파일을 실행시킬 이미지를 만드는 dockerfile이다. FROM openjdk:17 ARG JAR_FILE=./build/libs/*.jar COPY ${JAR_FILE} /app.jar ENTRYPOINT ["java","-jar","/app.jar"].. 2023. 6. 29. AWS 알아보기 6 - DynamoDB & Elasticache DynamoDB & Elasticache AWS DynamoDB 완전관리형 NoSQL 데이터베이스 서비스로서 원활한 확장성과 함께 빠르고 예측 가능한 성능을 제공 서버리스이므로, 따로 유지비용 없이 사용한 만큼한 지불 보조 인덱스를 통한 빠른 조회를 지원 NoSQL 특성상 관계가 없기 때문에 일반적으로 데이터를 찾기에는 인덱싱이 없으면 속도가 느려지지만 그 부분을 해결해 줍니다. 서버리스(람다) 서버와의 궁합이 매우 잘 맞는다. 람다에는 RDS를 사용하는 것은 기피해야 하고 다이나모 DB를 만들어야 한다. 람다는 서버리스이기 때문에 오토스케일링이 자유롭다. 따라서 DBMS의 connection pool을 넘어갈 수 있기 때문에 위험하다. 혹은 planetscale라는 서버리스 서비스를 사용한다. 파티션키.. 2023. 6. 11. AWS 알아보기 5 - AWS RDS & Aurora AWS RDS & Aurora AWS RDS란? 클라우드 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있는 관리형 서비스 모음 RDS는 EC2위에서 동작하는 서비스 ( DB를 사용하기 위해서는 인스턴스가 필요하기 때문) 굳이 그렇게 하지 않는 이유는 DB를 좀 더 손쉽게 관리, 모니터링하기 위해서 RDS를 사용 RDS를 왜 사용? → 주요 기능들 때문 RDS 백업: 자동 백업, DB 스냅샷 멀티 AZ: 두 개 이상의 AZ에 걸쳐 DB를 구축하고 원본과 다른 DB(standby)를 자동으로 동기화(Snyc), 읽기 전용 복제본 CloudWatch 연동: DB인스턴스의 모니터링 (디테일 모니터링, CPU, Storage 사용량, 그 이외의 Error Log 등) → 클라우드 워치에 익숙해져야 한.. 2023. 6. 11. AWS 알아보기 4 - 메시지 큐 (Message Queue) Message Queue AWS SQS, AWS Kinesis Queue? https://www.codenary.co.kr/architecture/list?category=실시간 스트리밍 https://www.codenary.co.kr/architecture/list?category=Event Driven https://www.codenary.co.kr/architecture/list?category=대용량 처리 비동기로 이벤트를 처리하기 위해 사용 AWS SQS Amazon Simple Queue Service 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션을 위한 완전관리형 메시지 대 기열 표준 대기열 무제한 처리량 / 최소한 한 번 전달 (여러번 전달 될 수도 있음) / 최선 노력 순서 보통 .. 2023. 6. 11. AWS 알아보기 3 - 컴퓨팅 파워 (Computing Power) Computing Power (서버) AWS EC2, AWS Elastic Beanstalk, AWS ECS, AWS Fargate, AWS Lambda (Serverless) AWS EC2 (Amazon Elastic Cloud Compute) 가장 기본적인 형태의 클라우드 컴퓨팅 (= 클라우드 컴퓨터 한 대) 온디맨드 선결제 금액이나 장기 약정 없이 저렴하고 유연하게 Amazon EC2를 사용하기 원하는 사용자 스팟 인스턴스 시작 및 종료 시간이 자유로운 애플리케이션 (노는 자원 활용하기) 안정성이 보장되는 서버에는 사용하면 안된다 보통 배치에 사용, 머신러닝에 사용 Saving Plans 1년 또는 3년 기간의 일정 사용량 약정을 조건으로 EC2 및 Fargate 사용량에 대해 저렴한 요금을 제공하.. 2023. 6. 11. AWS 알아보기 2 - AWS 인프라 AWS 인프라 AWS VPC Virtual Private Cloud 최초에 구축하는 사람이 아니라면 거의 만질일이 없다. (devops 전담팀이 따로 있을 정도) 가상 네트워크 서비스로 퍼블릭 네트워크와 프라이빗 네트워크를 분리하고 모니터링할 수 있도록 해주는 서비스 네트워크 구성과 관련된 사실상 모든 기능을 담당하며, 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사한 형태 private 서브넷은 외부와의 인터넷은 연결이 안되는데 Nat게이트웨이를 사용하면 연결 가능 AWS API Gateway 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스 서버의 “대문”과 같은 역할 API Gateway가 할 수 있는 것들: 트래.. 2023. 6. 11. AWS 알아보기 1 - AWS란? AWS란? On-premise vs Cloud Computing On-premise 온프레미스란기업의 서버를 클라우드 같은 원격 환경에서 운영하는 방식이 아닌, 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식 Cloud Computing 클라우드 컴퓨팅은 인터넷을 통하여 데이터를 저장하거나 데이터베이스, 서버, 네트워킹, 소프트웨어와 같은 도구, 애플리케이션등 다양한 서비스를 제공하는 방식 Cloud Computing을 쓰는 이점 점점 증가하는 서버 인스턴스의 수를 온프레미스로 감당하기엔 점점 벅참 (공간적, 비용적 문제) 이를 클라우드 컴퓨팅을 통해 해결 글로벌 서비스를 제공하려면 각 국가에 데이터 센터를 직접 구축해야하는 것을 대신 AWS를 통해 해결 예로 카프카의 클러스터 규모를 살펴보면.. 2023. 6. 11. 이전 1 2 다음 반응형