- [Grafana] Unit, Decimals ( 단위, 소수점 ) 환경 Grafana v9.4.3 문제상황 데이터의 단위를 명확하게 정의하면 해당 단위에 맞게 표기형식을 변경해준다. 예를들어 데이터의 기본 단위가 bytes로 이뤄져 있다면 오른쪽 설정 중 Standard options의 Unit을 변경하면 된다. 예를들어 파일 용량을 담은 데이터가 있고 값의 기본 단위가 bytes면 Unit을 bytes로 변경해보자. 숫자 형식에 따라 Byte, KB, MB, GB 와 같이 형식에 맞게 값을 변경해준다. 더불어 단위가 변경되면서 소수점 자리가 생기게 되는데 아무것도 설정하지 않으면 정수의 형태로 출력된다. 이럴때는 Decimals를 사용하여 소숫점을 통해 더 자세하게 표현하거나 생략할 수 있다.
- [Continuous Deploy] Github actions .env 파일 관리하기 with Github private repository 목적 Continuous Deploy 과정에서 Dotenv 파일을 꽤 번거로운(?) 녀석이다. 보안상 Github repository에 push하긴 찝찝하다. 그래서 이 파일을 Continuous Deploy 과정에서 리눅스의 Echo & Cat 과 Github Actions Secret Key를 사용해서 만들어줬는데, 가독성과 관리면에서 "이게 맞나?" 싶다. 이를 해결하기 위한 첫번째 방법을 찾아서 기록해본다. 사용 된 아키텍처 Github Public & Private Repository는 빌드될 파일이 있는 레포지토리를 뜻하며 Github Private Repository는 .env 파일이 따로 보관되어 있는 Repository를 뜻한다. 위 두가지를 한개의 계정으로 진행할 수 있지만 본 글에서는..
- [Grafana] Legend의 Display Name 환경 Grafana v9.4.3 문제 상황 Grafana 에서 Legend가 정상적으로 표시되지 않을 때가 있다. 이 때 오른쪽 설정(grafana v9.4.3)의 Standard options > Display Name을 변경하면 값이 바뀐다. 다만, 원하는 Display name을 고정으로 작성하면 모든 Legend가 전체적으로 변경된다. 이를 방지하기 위해선 아래와 같이 작성해야한다. ${__series.name} ${__field.labels} ${__field.labels.__values} Display Name에 위와 같이 작성하면 유기적으로 변경할 수 있다. 관련내용을 Grafana Docs에서도 확인할 수 있다. 레퍼런스 https://grafana.com/docs/grafana/lates..
- [Microk8s] 쿠버네티스 기본 실습 쿠버네티스란? Kubernetes 클러스터는 안정적이고 확장 가능한 방식으로 컨테이너화된 애플리케이션을 호스팅합니다. DevOps를 염두에 두고 Kubernetes는 업그레이드와 같은 유지 관리 작업을 매우 간단하게 만듭니다. MicroK8s란? MicroK8s 는 워크스테이션이나 개인 장치에서 실행하기 위한 용도로 사용되며 K8s의 경량화 버전이라고 보면 쉽습니다. MicroK8s는 실제 쿠버네티스처럼 타 컴퓨터와도 연결이 가능하며 K8s에서 사용하는 대부분의 기능을 지원합니다. Linux Ubuntu는 MicroK8s와 호환성이 가장 좋은 OS이며 설치 또한 어렵지 않습니다. 테스트 환경 Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.15.0-1025-gcp x86_64..
- [GCP] Cloud Run과 Cloud Build를 사용하여 Spring Boot 배포하기 시스템 아키텍처 Local 설정 Spring Boot의 application-prod.yml 설정 Github에 DB 정보를 올릴 수 없고, 없으면 서비스를 실행할 수 없기에 보안 문제가 발생하지 않고 DB정보를 컨테이너에 담을 수 있을지 고민했다. 결과적으로 환경변수를 사용하기로 했다. 위와 같이 설정하면 application-prod.yml에 시스템 환경변수 값을 불러올 수 있다. Dockerfile 설정 Cloud Run의 경우 컨테이너 기반으로 서비스를 실행하기 때문에 도커를 활용하여 빌드하였다. FROM adoptopenjdk/openjdk11 COPY gradlew . COPY gradle gradle COPY build.gradle . COPY settings.gradle . COPY src..
- [ 졸업프로젝트 캡스톤 디자인 ] Seear 본 게시글은 졸업프로젝트 캡스톤 디자인에서 dt1917의 백엔드 팀원으로 참여하여 Seear 서비스를 개발한 과정과 소개를 담고 있습니다. Introduce 본 서비스는 배리어프리를 바탕으로한 사회공헌 서비스입니다. 대상은 시각장애를 갖고 있는 사람이며 시각적으로 처리하기 어려운 부분을 AI를 통해 청각적 요소로 변환하여 서비스를 제공하는 것이 핵심 목적입니다. 예를들어 HTML에서 제공하는 ALT속성은 사진을 설명하는 용도로 제공되고 있으나 사진의 세부 내용이 적혀있는 기사는 한정적입니다. 본 서비스는 이미지 자체를 직접 캡셔닝하여 읽어주며 어떠한 이미지라도 쉽게 접근할 수 있도록 합니다. 최종 목표은 시각적으로 얻을 수 있는 정보에 취약한 시각 또는 인지 장애인이 음성을 통해 비장애인과 동일한 수준의..
- AWS ECS Health-Check 증상 지속적인 HTTP 503 Service Unavailable 에러 발생. 규칙적인 발생이 아닌 불규칙 적인 발생. 별다른 Request가 없어도 주기적으로 503 발생. 로컬에서 작업 당시 전혀 문제없음. 시스템 아키텍처 삽질 과정 서버 코드 점검 먼저 Validation을 실패한 부분이 없는지 여러 가지 Test Input을 입력했다. 그럼에도 Local에서 지속적으로 작동이 잘 되는 것을 확인하였다. 같은 오류가 반복되자 Exception filters까지 사용하여 서버가 갑자기 중단되는 상황을 최소한으로 줄였다. 그럼에도 불구하고 지속적인 503 에러코드가 발생하였고, 끝없는 삽질 끝에 AWS를 확인하기 시작했다. AWS 점검 ECS 클러스터에서 Task의 상태를 확인했다. 상태는 ACTIVE..