일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- spring
- 클러스터
- config
- 젠킨스
- 설정
- gradle
- 자동
- login
- vue
- redash
- Jenkins
- fastcampus
- Redis
- ec2
- 간단
- Mac
- Docker
- Zeppelin
- hive
- 레디스
- 예제
- java
- 머신러닝
- 로그인
- SpringBoot
- Cluster
- aws
- EMR
- 자바
- Kafka
- Today
- Total
목록ETC (82)
코알못
이번 시간에는 Nexus 설치 및 이용을 해보도록 한다! Nexus를 이용하면 아래 장점을 누릴 수 있다. 클라우드가 아닌 자체 서버에 내부 소스 코드 저장하여 보안적 측면에서 좋음 maven central에 있는 라이브러리중 사용하는 라이브러리는 nexus blob stores(local, aws s3)에 저장 두번째부터 라이브러리 사용시 저장한 데이터를 사용하므로 maven central 와 네트워크 통신을 하지 않아도 되어 빠르게 사용 가능함 (빠른 빌드) 서비스 서버가 maven central(외부)를 통신하지 않고 nexus(내부)서버와 통신하면 되므로 서비스 서버를 private한 공간(외부 통신 안되는 구간)에 구축 할 수 있음 [이전글] 에서도 Nexus 관련 실습을 진행하였으나 이번 시간..
이번 시간에는 도커에서 이미지 사용시 해당 이미지가 보안에 취약한지 궁금할때가 있다. 이때 보안 취약점을 검토할 수 있는 오픈 소스 프로젝트 Clair의 실습을 진행하도록 한다! Clair 이미지의 경우 데이터 베이스 포함된 이미지가 있으나 해당 이미지로 띄울시 CVE(정보보안 표준 취약점) 관련 데이터 소스를 가져와 데이터 베이스에 데이터를 채우는데 20-30분이 걸린다고 한다. 그래서 이를 해결하기 위해 Clair 데이터 베이스, 서버 분리된 이미지가 나왔으며 Clair 데이터 베이스 이미지는 배치로 매일 최신 취약점 데이터를 받아 데이터베이스(postgre)에 저장하며 갱신된 날짜 태그로 이미지가 올라간다. 그러므로 매일 갱신된 데이터로 분석하고 싶다면 Clair 데이터 베이스 이미지를 latest..
이번 시간에는 EC2 를 사용하다가 EBS 볼륨이 부족할때 확장하는 방법을 알아보자! 디스크 유형을 확인 한다. $ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part nvme0n1 유형이라면 아래와 같이 증설 하면 되며 $ sudo growpart /dev/nvme0n1 1 xvda라면 아래와 같이 증설한다. $ sudo growpart /dev/xvda 1 확인해보면 정상적으로 16G가 할당 된 것을 볼 수있 다. $ sudo lsblk NAM..
전체 프로젝트 품질 측정하는 도구로 소나 큐브가 있다. 소나 큐브란❔ 코드 컨벤션(코드 작성 Role)을 정의 할 수 있고 지켜지고 있는지 수치로 확인 할 수 있다. 소나 큐브에 jacoco 라이브러리 분석 결과도 포함 할 수 있어 같이 연동하여 사용하는데 jacoco 란 ❔ 코드 커버리지를 측정하는 라이브러리이며 소나 큐브랑 연동하면 소나 큐브 내부에 jacoco 분석 결과를 표현할 수 있다. 코드 커버리지란 ❔ 테스트 코드 실행시 전체 프로젝트 코드의 몇 퍼센트가 실행 되었는지 보고 테스트 코드가 적절하게 작성이 되었는지 확인하는 방법중에 하나이다! 지금 부터 소나큐브 설치를 진행해보자! EC2 인스턴스를 생성하며 아래 스펙 이상이여야 하며 CPU Memory 2Core 4GB 방화벽은 아래와 같이 ..
이번시간에는 Jenkins로 CI/CD 실습을 진행하도록 해보자! 우선 첫 시간에 만든 배포 서버 즉 서비스 서버를 Jenkins 가 접근 할 수 있도록 배포서버 접속 할때 사용하는 pem 파일(개인키)를 열어 복사하고 [이전 시간]에 했던 방법대로 private key 를 deploy-key 명으로 등록한다. 키 항목을 확인 하면 아래와 같이 추가한 deploy-key가 나온다. 배포 서버에서는 AWS ECR 로그인해서 docker 를 통해 이미지 내려받고 컨테이너 실행 하기에 AWS 설정, docker 설치가 되어 있어야 한다. 저번 시간에 docker 설치까지 해두었으니 AWS 설정을 진행하도록 한다. 아래와 같이 설정 하려고 하니 설치가 안되어 있다고 나온다. 우선 설치를 진행하자! $ aws c..
이번 시간에는 젠킨스를 설치하고 필요한 플러그인을 설치, 인증 설치하는 실습을 진행하도록 하자! Jenkins 의 경우 아래 스펙이 최소로 있어야 돌아갈 수 있으며 EC2 기준 t3.medium을 사용하면 된다. cpu mem disk 2Core 4GB 8GB 그리고 방화벽의 경우 아래와 같이 Inbound 를 열면 된다. 포트 설명 22 서버 접속 8080 Jenkins UI Ubuntu OS, t3.medium EC2를 생성 한다! AWS Console > EC2 에 들어가서 인스턴스 시작을 클릭한다. Ubuntu, m3.medium(해당 스펙 이상도 가능), 볼륨 8GB(이상도 가능)는 필수로 선택하고 보안 그룹의 경우 위에 언급한 22, 8080을 열어준다. 나머지는 각자 상황에 맞게 선택 하며 ..
AWS Lambda 를 이용하여 EMR 을 기동/중단하려고 하였으며 아래와 같이 Lambda 함수를 생성 하였다! 설정은 아래와 같이 Python 3.9를 사용 하였다 python 라이브러리중 boto3 를 사용하고자 하였으며 해당 라이브러리버전을 확인하기 위해 아래와 같이 코드를 작성 하였다. import json import boto3 client=boto3.client('emr') s3=boto3.resource('s3') emr_config_json='' def lambda_handler(event, context): return { 'statusCode': 200, 'body': boto3.__version__ } 적용을 위해 Deploy를 누르고 테스트를 위해 Test 버튼을 눌렀다. 로그를 ..
이번 시간에는 docker 컨테이너 이미지 빌드 실습을 진행할 예정이며 아래 순서로 진행 해보자! 1. gradle 설치 2. gradle 프로젝트 생성 3. docker hub repository 생성 4. docker build & push 5. docker pull & run 6. 4번을 jib를 통해 진행후 5번 진행 실습 진행하기 앞서 gradle 프로젝트 생성시 만들어지는 파일에 대해 알아보도록 하며 아래와 같다. 구분 내용 build.gradle 프로젝트 내 소스코드에 대한 라이브러리 의존성, 플러그인, 라이브러리 저장소 등을 설정 할 수 있는 빌드 스크립트 파일 settings.gradle 빌드 대상 모듈의 구성 정보를 정의 하는 파일 (루트, 하위 모듈을 정의 하며 빌드 대상에서 하위 모..