전체 글 (220) 썸네일형 리스트형 [Packer]AWS Session Manager를 통한 EC2 인스턴스 연결: github action에서 packer 실행하기 Packer를 사용하여 Amazon EC2 이미지를 빌드하는 과정에서, 내부 네트워크만 허용하는 환경에서 AWS의 Session Manager를 활용하는 방법을 소개합니다. 이 방법은 GitHub Actions를 사용하여 Packer 빌드를 수행할 때 특히 유용합니다. Session Manager 연결 설정 Packer의 Amazon EBS 빌더를 사용할 때, ssh_interface를 "session_manager"로 설정하면 AWS Systems Manager를 통한 SSH 터널을 생성합니다. 이를 위해서는 인스턴스 프로필에 Systems Manager 권한이 필요합니다. # file: example.pkr.hcl # In order to get these variables to read from t.. [Packer]AWS AMI Build with Ansible provisioner 아래 글에서는 Packer와 Ansible을 사용하여 Nginx를 포함한 t2.micro Amazon EC2 AMI를 빌드하는 방법을 소개합니다. Packer란? Packer는 HashiCorp에서 개발한 오픈 소스 도구로, 클라우드나 가상화 플랫폼에서 사용할 이미지를 자동으로 생성합니다. Packer는 여러 플랫폼을 지원하며, AWS EC2 AMI와 같은 이미지를 생성할 수 있습니다. Installing Packer https://developer.hashicorp.com/packer/downloads brew tap hashicorp/tap brew install hashicorp/tap/packer brew upgrade hashicorp/tap/packer Verifying the Installa.. [Database]Buffer Cache Hit Ratio 감소 "Buffer Cache Hit Ratio"는 데이터베이스에서 캐시된 데이터를 얼마나 효율적으로 활용하는지를 나타내는 중요한 지표입니다. 이 비율이 감소하는 것은 여러 원인에 의해 발생할 수 있으며, 각 원인에 따라 적절한 해결 방법을 적용해야 합니다. 다음은 Buffer Cache Hit Ratio 감소의 일반적인 원인과 해결책입니다. 캐시 크기 부족: 데이터베이스 시스템이 캐시에 저장할 데이터의 양보다 더 많은 데이터를 요청할 때 발생합니다. 이 경우 일부 데이터는 디스크에서 직접 로드해야 하므로 캐시 히트 비율이 낮아집니다. 해결 방법: 이 문제는 캐시 크기를 늘리거나 효율적으로 관리하여 해결할 수 있습니다. 인덱스 부재: 적절한 인덱스가 없거나 올바르게 작성되지 않은 경우 데이터를 검색할 때 더 .. [Terraform]파일(file, templatefile)을 활용한 리소스 구성하기 테라폼(Terraform)을 사용하여 리소스를 구성할 때 외부 파일을 데이터 소스로 활용하는 방법에 대해 알아보겠습니다. 테라폼에서는 IAM 역할의 정책, EC2의 사용자 데이터(User Data) 등을 정의할 때 JSON, Shell 스크립트 같은 파일을 사용하여 리소스를 보다 효율적으로 관리할 수 있습니다. 왜 파일을 사용하나요? 가독성 향상: 긴 설정 코드를 별도의 파일로 분리하면 테라폼 코드의 가독성이 향상됩니다. 재사용성 증가: 동일한 설정을 여러 리소스에 걸쳐 재사용할 수 있습니다. 관리 용이성: 복잡한 설정 값을 별도의 파일에서 관리함으로써 유지보수가 용이해집니다. 사용 예시: file 함수 사용하기 IAM Role Policy: IAM 역할에 대한 정책을 JSON 파일로 작성하여 테라폼 코.. [Loki]Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream 증상: loki-write 컴포넌트의 메모리가 지속적으로 증가함 로그: err="rpc error: code = Code(429) desc = entry with timestamp 2023-11-14 06:37:29.320051283 +0000 UTC ignored, reason: 'Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream 예상 원인: 높은 로그 볼륨: 소스에서 생성되는 로그의 양이 매우 많을 때 이 오류가 발생할 수 있습니다. 이는 특히 많은 양의 로그 데이터를 짧은 시간 내에 Loki로 전송할 때 발생합니다. 그리고 Loki는 속도 제한에 도달했을 때 로그를 버퍼링하고 나중에 재시도할 수 .. [Ansible]Nginx 설치하기 with tasks, handlers, templates, vars 앤서블(Ansible)은 구성 관리, 응용 프로그램 배포, 태스크 자동화 등을 위해 사용되는 오픈 소스 자동화 플랫폼입니다. 기본적으로 앤서블을 사용하면 인프라와 애플리케이션 설정을 자동화할 수 있으며, 복잡한 태스크와 워크플로우를 단순화할 수 있습니다. 사전 준비: Ansible이 동작할 AWS EC2 Instance 디렉토리 구성 전략 ansible/ ├── ansible.cfg # 앤서블의 기본 설정 파일. SSH 설정, 기본 인벤토리 파일 위치 등을 지정. ├── hosts # 인벤토리 파일. 관리할 호스트의 주소나 그룹 정보가 들어 있음. ├── main.yml # 메인 플레이북 파일. 어떤 역할이 어느 호스트에 적용될지 정의. ├── roles # 재사용 가능한 태스크 모음인 '역할'을 포함하.. [Ansible]CLI 사용법: Ansible을 활용한 서버 관리 기초 Ansible은 강력하고 사용하기 쉬운 IT 자동화 도구입니다. 오늘날 IT 환경에서 Ansible은 구성 관리, 애플리케이션 배포, 태스크 자동화 등에 널리 사용됩니다. 이 글에서는 macOS에서 Ansible을 설치하고 기본적인 Ansible 명령어 사용법을 설명합니다. macOS에서 Ansible 설치하기 macOS를 사용하고 있다면, Homebrew를 통해 Ansible을 쉽게 설치할 수 있습니다. 터미널에 아래와 같이 입력하세요. brew install ansible 이 명령어는 Homebrew를 통해 Ansible을 설치하고 필요한 모든 종속성을 자동으로 처리합니다. Ansible 플레이북의 기본 명령어들 Ansible을 사용할 때, 몇 가지 기본적인 명령어들을 알아두면 매우 유용합니다. 문법.. [Terraform]Userdata와 Provisioner 이해하기 Userdata와 Provisioner의 기본 개념 Userdata: AWS EC2나 다른 클라우드 서비스의 인스턴스 생성 시 자동으로 실행할 스크립트를 정의하는 부분입니다. 주로 초기 설정이나 패키지 설치 등에 사용됩니다. Provisioner: 테라폼이 리소스를 생성하거나 제거한 후에 실행되는 추가적인 도구입니다. Userdata Userdata는 클라우드 인스턴스가 처음 실행될 때 한 번만 실행됩니다. 예를 들어, AWS EC2 인스턴스가 시작될 때 필요한 소프트웨어를 설치하거나 설정 파일을 변경할 수 있습니다. 한계점: 이미 실행된 인스턴스에 대해 변경 사항을 반영하기 어렵습니다. 변경을 위해서는 인스턴스 재시작 또는 다시 생성이 필요합니다. Userdata 예시: versions.tf # 테라폼.. 이전 1 2 3 4 5 6 7 ··· 28 다음