Infra
-
[프론트 배포] index.html 에 버저닝과 nginx 프록시로 브라우저 캐시문제 해결Infra 2025. 2. 2. 16:55
nginx 를 활용한 프론트 배포 시스템을 구축하였다. 내가 구축한 시스템구조는 다음과 같다. 우리는 B2C 인 특성 상 적은 트래픽에 많은 사이트를 운영하고 있어서 부하에 견디기 보다는 비용적인 이점을 더 챙기는 구조이다. 여기서 만약 한 서비스에 트래픽이 몰린다면 nginx를 제거하고 ELB 를 사용해서 다른 ec2 인스턴스를 생성하여 스케일 아웃을 하면 된다. 내가 이번에 겪은 문제는 프론트 빌드 결과물인 index.html 을 보면 이런 식이다. 이 때 저 css 와 js 를 가져오는 경로를 보면 https://ryeoryeo.com/css/style.css 와 https://ryeoryeo.com/js/javascript1.js 이렇게 요청하게 되는데 매번 저 위치로 새로 배포한 js 나 ..
-
[GitLab] 깃랩 CI/CD 캐시Infra/gitlab 2024. 12. 11. 18:43
깃랩은 배포 시의 캐시를 지원한다.여기서의 캐시는 파일 시스템에 저장이 되고프로젝트별로 관리가 되어캐싱할 부분은 매번 빌드하지 않고다시 사용하여 배포 시간을 단축시킬 수 있다. 필자는 깃랩 캐시를 사용해서 배포 시간을 줄였다. 캐시를 활용해서 4분 22초대였던 배포 시간을 줄일 수 있었다. 그럼 깃랩 캐시가 무엇인지 자세히 확인해보자. https://docs.gitlab.com/ee/ci/caching/ Caching in GitLab CI/CD | GitLabGitLab product documentation.docs.gitlab.com https://gitlab-docs.infograb.net/ee/ci/caching/ GitLab 공식 기술 문서 한글판 by 인포그랩 | 인포그랩 | GitLab ..
-
[Gitlab] 도커 컴포즈로 깃랩 구축 + 백업 + 복원 + 사용 사례Infra/gitlab 2024. 12. 3. 18:53
깃랩을 구축 및 사용법을 공유하려고 한다. 먼저 docker-compose 코드이다. version: '3.6'services: console: container_name: gitlab-console image: 'gitlab/gitlab-ce:14.7.3-ce.0' restart: always hostname: 'domain' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://domain' gitlab_rails['backup_keep_time'] = 604800 gitlab_rails['gitlab_email_from'] = 'abcd@mail.com' gi..
-
[Monitoring] Prometheus + google chat 으로 알림받기Infra/devOps 2024. 11. 6. 05:42
Prometheus는 SoundCloud사에서 만든 오픈소스 시스템 모니터링 및 경고 툴킷이다.지금은 독립형 오픈소스 프로젝트이며 많은 회사들이 사용 하고 있고, 또한 kubernetes에서도 Prometheus를 사용하여 매트릭 수집 및 대시보드 구축하는 방식을 장려하고 있다. 저기 보이는 exporter 들은 값을 수집하는 프로세스라고 보면 된다. 이 exporter가 매트릭을 수집하고 HTTP 통신을 통해 매트릭 데이터를 가져갈 수 있게 /metrics 라는 HTTP 엔드포인트를 제공한다.그러면 프로메테우스가 Get 요청으로 받아온다고 한다. 필자는 도커로 프로메테우스를 설정하였다. 먼저 prometheus.yml 설정을 확인해보자.global: scrape_interval: 15s eva..
-
[웹 사이트 성능 향상시키기] gzip 을 적용해보자.Infra/devOps 2024. 10. 22. 21:29
Lighthouse 란 무엇인가Lighthouse는 구글에서 개발한 오픈 소스 자동화 도구로, 웹 페이지의 품질을 개선하는 데 사용된다. 공개된 웹 페이지뿐만 아니라 인증이 필요한 페이지에서도 사용할 수 있다. 페이지 로딩 시간, 상호작용 시간, 시각적 안정성 등을 측정한다. 웹 페이지가 다양한 사용자, 특히 장애를 가진 사용자들에게 접근 가능한지를 검사한다. 웹 표준을 준수하고 있는지 확인한다.chrome dev tool 에서는 개발자도구에 Lighthouse 탭을 사용하면 들어갈 수 있다. 이렇게 들어갈 수 있고 우리가 운영하는 사이트의 성능을 측정하면 다음과 같이 나온다. 오른쪽은 화면 미리보기인데 모자이크 한거다ㅎㅎ측정 항목은 다음과 같다. 전엔 First Contentful Paint 가 중요했..
-
[Keycloak] 키클락 import error 해결Infra 2024. 10. 21. 02:56
디비 이전으로 인해 keycloak 을 이전할 일이 생겼다.이 때 기존에 사용하던 렐름 정보를 새로운 키클락 서버로 이전을 해야하는데script 를 활용한 upload 가 실패하는 문제가 생겼다. 위와 같은 에러가 발생한다.이는 인터넷에서 쉽게 찾을 수 있었는데authorization setting 값을 빈 객체로 설정하면 위와 같이 에러 없이 가져오기를 할 수 있다. 이는 client 의 authorization 세팅을 없애고 가져온 것이다. 들어가보면 이와 같이 default 로 설정되어있을텐데이전 설정을 기반으로 다시 세팅해줘야 한다. 하지만 키클락 ui 를 활용한 export 로는 유저 정보를 같이 가져갈 수 없다.그렇게 하기 위해서는 내가 운영중인 컨테이너에 bash 접속하여 docker ..
-
[AWS] private subnet에 있는 ec2 인스턴스의 ip 확인하기Infra/aws 2024. 10. 9. 22:21
외부 api 사용을 위해 우리 서비스의 ip를 알려줘야할 일이 있었다.지금은 ifconfig 라는 서비스을 알게 되어서 1초컷할 수 있지만(팀장님 감사합니다ㅎㅎ) curl ifconfig.me 그 때는 어떻게 해야하나 고민이었다.퇴근 직전이었기에...검증은 못하고전에 공부를 해둔 지식으로private subnet 의 아웃바운드 요청은NAT gateway를 통해서 나가게 된다는 것을 알고있어서이를 확인하여 알려드렸다. https://ryeoryeoryeo.tistory.com/6 VPC 란 무엇인가공부하기에 앞서..필자는 인프라 구축을 담당하고 있다.그러던 중 멀티 리전간의 통신을 가능하게 하기 위해VPC Peering 설정을 하려던 중무언가 잘못건드려 인터넷 통신을 끊어버렸던 전적이 있ryeoryeory..
-
[Network] Virtual HostInfra 2024. 8. 20. 09:42
Virtual Host(가상 호스트)는 하나의 물리적 서버에서 여러 개의 웹사이트를 호스팅할 수 있게 해주는 기술이다. 쉽게 말해, 하나의 컴퓨터로 여러 개의 웹사이트를 운영할 수 있게 해주는 방법이다.그래서 여러 웹사이트를 위해 각각 서버를 구매하는 것보다 경제적이다. Virtual Host는 주로 두 가지 방식으로 작동한다a) Name-based Virtual Hostingb) IP-based Virtual Hosting이 중 Name-based Virtual Hosting이 더 일반적으로 사용되고 있다. virtual host 를 적용하게 된 계기는 다음과 같다. https://aws.amazon.com/ko/blogs/korea/new-aws-public-ipv4-address-charge-pub..