본문 바로가기

# Development/DevOps

(17)
[Ubuntu] Swap 메모리 설정: AWS EC2 메모리 문제 Swap 메모리 설정: AWS EC2 메모리 문제Out of MemoryAWS EC2 서버가 응답을 하지 않아서 콘솔에서 인스턴스 스크린샷을 확인해보니 Out of meory로 서버가 죽어있었다.메모리가 모두 사용되어 프로세스가 중지 된 현상인데, 일단 인스턴스를 재부팅해서 손상되지 않은 상태로 복원했다. AWS에서는 해당 문제 발생 시, 메모리에 최적화된 인스턴스로의 변경을 권유하고 있다.https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/TroubleshootingInstances.html#MemoryOOM 상태 확인에 실패한 인스턴스 문제 해결 - Amazon Elastic Compute Cloud일부 시스템에서는 SELINUX=disabled 파..
[Ubuntu] 리눅스 메모리 사용량 모니터링: sysstat sar 리눅스 메모리 사용량 모니터링: sysstat sar AWS EC2 서버가 Out of memory 메시지를 띄우며 장렬히 전사했다. 인스턴스 모니터링 페이지에서 CPU 사용량은 확인 할 수 있지만, 메모리 사용량은 확인할 수 없다. 메모리 사용량 모니터링을 할 수 있는 별도의 방법이 필요하다. 언제 어떤 상황에서 시스템이 메모리를 많이 사용하는지 추적할 필요가 있다. sysstat 이란? 리눅스 성능을 측정하는 패키지 sar (system activity reporter) cpu, memory, network, disks io 등의 지표를 수치화하여 파일로 저장해주는 분석 툴이다. sar 구성요소 sadc (system activity data collector) 지표 데이터를 수집하며, 이를 /var..
[CI/CD] Github Actions로 Python CI 구축하기: Part2-Testing Github Actions로 Python CI 구축하기: Part2-Testing 테스트는 소프트웨어 개발과 배포에서 핵심적인 부분으로, 코드의 품질을 보장하고 안정성을 높이는 과정이다. 이 글에서는 테스트 코드를 작성하는 방법과, Github Actions을 통해 CI(지속적 통합)과정에서 테스트를 자동화 하는 방법을 정리했다. CI/CD와 Github Actions에 대한 개념이 확실하지 않다면, 아래의 링크들을 읽어보길 바란다. CI/CD [CI/CD] CI/CD란 무엇인가? CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 C..
[CI/CD] Github Actions로 Python CI 구축하기: Part1-Linting Github Actions로 Python CI 구축하기: Part1-Linting 본 글을 읽기전에  CI/CD와 Github Actions에 대한 개념이 확실하지 않다면, 아래의 링크들을 읽어보길 바란다.CI/CD [CI/CD] CI/CD란 무엇인가?CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 CI는 개발자들이 코드를yoon001.tistory.comGithub Actions [CI/CD] GitHub Actions란?Github Actions란? Github Actions는 소프트웨어 개발과 배포를 자동화하는 통합 서비스이다..
[CI/CD] GitHub Actions란? Github Actions란? Github Actions는 소프트웨어 개발과 배포를 자동화하는 통합 서비스이다. 소프트웨어 개발 라이프사이클 안에서 Pull Request, Push 등의 이벤트 발생에 따라 자동화된 작업을 진행할 수 있도록 도와준다. Github Actions 외에도 다양한 CI/CD 도구들이 존재하는데 그에 대한 간략한 설명은 아래의 포스트에서 확인 할 수 있다. [CI/CD] CI/CD란 무엇인가? CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 CI는 개발자들이 코드를 yoon001.tistory.com Gi..
[CI/CD] CI/CD란 무엇인가? CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 CI는 개발자들이 코드를 공유하는 과정에서 자동으로 코드 변경사항을 빌드, 테스트, 통합하는 프로세스를 의미한다. 개발자들이 코드를 수정하고 Github과 같은 버전 관리 시스템에 푸시하면, CI 서버가 이를 자동으로 감지하여 해당 코드를 빌드하고, 테스트를 실행하여 기존 코드와 통합하는 방법이다. 해당 프로세스를 통해 빠르게 코드를 통합하고, 충돌과 오류를 검출할 수 있다. 주요 특징 코드 통합 CI는 여러 개발자들이 동시에 개발하는 경우에도 각자 작성한 코드를 자주 통합하도록 장려..
[Nginx] 같은 도메인에 다른 어플리케이션(WAS) 연결: location 추가하기 같은 도메인에 다른 어플리케이션(WAS) 연결: location 추가하기 운영하고 있는 AWS EC2 인스턴스에 Flask 백엔드(어플리케이션A)가 돌아가고 있었는데, 동일한 도메인에 크롤링용 Flask 백엔드(어플리케이션B)를 하나 더 추가했다. 간단한 설정인데 본인은 삽질을 오래해서 다른 사람들은 편히 설정하길 바라는 염원을 담아 글을 썼다. 결론부터 얘기하자면, systemd에 추가하려는 어플리케이션B 등록한 다음, 기존에 돌아가고 있는 어플리케이션A의 nginx 설정 파일에 location을 추가해주면 된다. systemd 서비스 등록 우선 아래 글을 참조해서 새로 추가하고자 하는 어플리케이션B를 nginx 설정 전까지(git clone - python 가상환경 어플리케이션 설정 - uWSGI 설..
[Nginx] Ubuntu Nginx SSL 인증서 설정하기 (HTTPS 연결) Ubuntu Nginx SSL 인증서 설정하기 (HTTPS 연결) SSL 인증서란? SSL에 관한 설명은 아래의 글로 대체한다. [Network] HTTP, HTTPS 어떤 차이가 있지? HTTP, HTTPS 어떤 차이가 있지? HTTP(HyperText Transfer Protocol) 하이퍼 텍스트 전송 프로토콜(HyperText Transfer Protocol)의 약자로 웹에서 정보를 주고 받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고 받는데 yoon001.tistory.com Ubuntu Nginx 환경에 SSL을 적용하기 위해서는 SSL인증서를 받은뒤, Nginx 환경 설정 파일에 SSL 정보를 추가해주면 된다. 환경설정 파일 위치는 Ubuntu에 기본 설정된 버전(1.18.0)으로 a..