일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Git
- Web Server
- 맛집
- Spring
- db
- javascript
- 요리
- php
- ReactJS
- Oracle
- MySQL
- ubuntu
- springboot
- jsp
- devops
- Design Patterns
- java
- AWS
- elasticsearch
- JVM
- tool
- Spring Batch
- linux
- laravel
- redis
- Spring Boot
- IntelliJ
- jenkins
- Gradle
- it
- Today
- Total
목록Infra (195)
아무거나
Jenkins Pipeline + Nginx + Spring Boot(Maven) 무중단 배포 요새는 CI/CD 가 잘되어 있어서 jetbrains, aws, atlassian, jenkins 등.. 선택지가 많으나 비용이 적게드는 최소한의 방법으로 구성을 했던 내용을 복습하기 위해 해당 포스팅을 작성하게 된다. bitbucket webhook 을 통하여 소스 pr 후 merge 시에 trigger 가 발생하게 되는 구성으로 되어있으며 (해당 과정은 생략) 이후 jenkins pipeline 을 통하여 빌드하고 각 배포할 서버에 전송 후 구동 및 스위칭 스크립트를 작성하는 프로세스로 진행할 것이다. 배포할 서버에 빌드파일을 전송할 JenkinsFile 작성 (Maven)[Jenkinsfile]pipeli..
BatchGetItem (WHERE IN) 정의 다수의 테이블 아이템을 hashkey, rangedkey 를 지정해서 가져올 수 있으나 결과값이 100개로 제한된다, 특정 rangedkey 로 다수의 아이템 검색이 필요하면 query 과 권장된다. BatchGetItem 은 조건식을 사용할 수 없고 쿼리 결과를 수정할 수 없기 때문에 상황에 따라 GetItem 과 적절하게 선택하여 사용하는것이 좋다. WHERE IN 절과 비슷하게 사용할 수 있다. 사용법(SDK) [build.gradle] ... implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.12.239' ... [DynamoDBConfig.java] ... import com.amazonaws.serv..
AWS Lambda 와 SES(=Simple Email Service) 를 이용한 간단한 메일 발송 (NodeJS) 메일 발송 기능을 개발을 하기위해 AWS 의 Lambda 와 SES(=Simple Email Service) 를 선택하게 되었다. 서비스의 역할 및 예제코드를 참고하여 간단하게 메일 발송 기능을 구축해보자. (NodeJS 를 사용) AWS Lambda AWS Lambda 는 이벤트 기반 서버리스 컴퓨팅 플랫폼이며, 이벤트에 반응하여 Lambda 에 작성된 코드를 실행하는 서비스이다. 즉, 클라우드 제공업체에서 인프라에 대한 관리를 대신 처리해주기 때문에 개발자는 비즈니스 로직에만 집중할 수 있다. (Node, Java, .NET, Go, Python, Ruby 등의 다양한 언어를 지원한다...
해당 글은 https://bkjeon1614.tistory.com/741 (=Merge Requests 할 때 승인자 지정) 세팅이 먼저 필요하므로 참고하자. 코드 리뷰 방법 1. 승인 요청 온 MR (=Merge Request) 페이지의 `변경사항 (Changes) 클릭` 2. 변경 코드중 코멘트가 필요하다고 생각되는 라인의 말풍선 버튼을 (=Add a comment to this line) 클릭하면 리뷰 의견을 등록할 수 있는 코멘트 템플릿이 표시된다. 3. 개선할 코드를 제안할 경우 `insert suggestion` 클릭 후 하단의 `Start a review` 버튼 클릭 4. 확인 후 `Submit review` 를 클릭한다. 5. 추가 의견을 작성하려면 `Reply..` 란에 입력하여 작성하면..
Merge Request 시에 바로 Merge 되는 경우를 방지하여 잘못된 코드가 나가는것을 한 번더 확인할 수 있는 승인절차를 추가해보자. 1. 좌측 메뉴에서 Settings > General 클릭 후 Merge request approvals 선택 2. 원하는 권한 추가 및 수정 (승인자는 Approvals required 숫자를 조정하면 된다.) 3. 필요한 승인 세팅값 설정
Spinnaker Spinnaker 란? Spinnaker 는 넷플릭스에서 개발하고 구글에서 확장한 오픈 소스화한 멀티 클라우드를 지원하는 CD(=Continuous Delivery) 플랫폼이다. 구글 클라우드, 아마존, 마이크로소프트 등 대부분의 메이져 기업의 클라우드를 지원하며 Kubernetes 또는 Openstack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시 지원한다. Spinnaker 아키텍처 Deck: Deck 컴포넌트는 UI 컴포넌트로, Spinnaker의 UI 웹사이트 컴포넌트이다. Gate: Spinnaker는 MSA 구조로, 모든 기능을 API 로 Expose 한다, Gate는 API Gateway로, Spinnaker의 기능을 API로 Expose 하는 역할을 한다..
Tyk API Gateway 란 먼저 Tyk 를 알기전에 API Gateway 가 뭔지 개념을 알아보자. API Gateway API Gateway 란? MSA 구조에서는 대부분 필수적으로 API Gateway 를 활용하고 있다. 왜냐하면 MSA 는 큰 서비스를 여러개로 쪼개어 각각 역할을 분리하므로 즉, 포트 주소 등을 포함한 모든 주소정보가 달라지게 되며 생기는 문제점은 아래와 같습니다. 수많은 API 호출의 기록 관리가 용이하지 않음 (Ex. 컨테이너) 내부 비즈니스로직, 인프라 등 주소가 선명하게 노출되어 보안에 취약 각 서비스 마다 인증 등의 공통 로직을 중복 구현 해야 하는 문제점 발생 그러므로 API Gateway 를 적용하여 서버 앞단에서 모든 엔드포인트를 일원화 해주는 다른 하나의 서버 ..
Soft Limit, Hard Limit 각 계정 마다 하나의 프로세스가 가질 수 있는 file descriptor에 제한이 있다. Soft limit 는 새로운 프로그램이 생성되면 디폴트로 적용되는 제한 값 Hard limit 는 Soft limit 부터 늘릴 수 있는 최대 값 (root만 조정 가능) aws ec2 기준으로는 인스턴스 타입에 따라 limit가 조정된다. 즉, 서버 사양에 따라 limit를 증가시킬 수 있다. Java는 hard 옵션까지 파일오픈이되고 Python에서는 soft옵션까지만 file이 오픈되는 이유 openjdk에서는 -XX:+MaxFDLimit 옵션이 true 인 경우 setrlimit 으로 limit를 증가시키므로 hard 옵션까지 파일이 오픈된다. 설치된 java의 M..
로컬세팅시 자주 사용하는 명령들을 귀찮아서 한 번에 저장하였다. Docker 설치(CentOS8) sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce Elasticsearch + Kibana + Cerebro 설치 (Docker Compose 또는 Docker 중 선택) Docker Compose [docker-compose.yml] version: '3.6' services: elasticsearch: image: 'docker.e..
1. 좌측 메뉴에서 Settings > General 클릭 2. Merge requests 의 우측의 Expand 버튼 클릭 3. Merge suggestions > Default description template for merge requests 영역에 템플릿 작성 4. 다 완료하면 실제 Create Merge Requests 할 때 하기 이미지와 같이 내용이 보여지는걸 확인할 수 있다.