콘텐츠로 이동

Blog

ELK error 모음

1

증상

  • Error message
    Elastic Kibana did not load properly. Check the server output for more information
  • 인프라 구성 Kibana 접근을 위해 Nginx를 reverse proxy로 사용하는 구조

해결방법

Nginx 설정파일에서 proxy_buffer 부분을 수정합니다

  • AS-IS
    proxy_buffer_size 128k;
    proxy_buffers 4 256k; (AWS에서 제공하는 ES-Proxy용 nginx 템플릿 기본값)
    proxy_busy_buffers_size 256k;
    
  • TO-BE
    proxy_buffer_size 128k;
    proxy_buffers 8 1024k;
    proxy_busy_buffers_size 1024k;
    

ElasticSearch domain in VPC

사전정보

  • AWS에서 SaaS 형태로 제공하는 ElasticSearch(이하 ES)의 경우 domain을 VPC내부 또는 외부에 생성할 수 있다
  • 보안을 위해 VPC 내부에 생성을 권고하는데, ES domain이 private subnet에 위치하는 경우 public subnet에 Nginx를 프록시 서버로 생성하고 redirection 해주어야 한다
  • Redirection시 cognito를 이용한 사용자인증 유무에 따라 Nginx 설정이 다르다(아래 참조)

ElasticSearch 정리

Tip

변경 가능한 변수 부분은 "garden" keyword를 포함하고 있다

  1. 도큐먼트 삽입
    PUT ljw_index/_doc/1  {
        "name": "garden",
        "age": 29,
        "gender": "male"
    }
    
    도큐먼트 삽입으로 인해서 ljw_index가 신규 생성됨 -> ljw_index 인덱스 정보 확인
    GET ljw_index
    
  2. 도큐먼트 조회
    1. 도큐먼트 아이디로 조회
      GET ljw_index/_doc/1 
      
    2. DSL 쿼리를 이용한 조회 예시. match를 사용해 전문 검색하는 예시로 역인덱싱된 garden term을 검색하는 중이다.
      GET ljw_index/_search
      {
          "query": {
              "match": {
                  "name": "garden"
              }
          }
      }
      

Terraform AWS IAM

IAM User


  1. IAM 작업 디렉터리를 생성합니다

    mkdir iam
    cd iam
    
  2. 이제 자연스럽게 provider를 먼저 생성합니다

    다만 IAM서비스는 리전에 종속되는 서비스가 아닌 만큼 아무 리전이나 지정해도 됩니다

    vi provider.tf
    
    provider.tf
    provider "aws"{
            region = "ap-northeast-2"
    }
    

Terraform Backend

목표


  • Terraform의 Backend 기능을 이용해 state파일을 안전하게 관리해봅니다.
  • .tfstate를 로컬이 아닌 S3에 저장하고 DynamoDB를 이용해 파일을 Locking합니다
  • Backend를 이용함에 따른 이점

    • Locking

      협업시 원격 저장소를 사용하여 여러명이 동시에 같은 state 접근하는것을 막습니다

    • Backup

      원격저장소에 저장함으로써 데이터 유실을 방지합니다. 특히 S3에 저장하는 방법은 버전관리가 가능한 편리하고 안전한 방법입니다.

Terraform Practice

  • EC2에 SSH 접속을 위한 키페어 생성

    1. 비밀키를 생성합니다
    ssh-keygen -t rsa -b 2048 -f ~/dotoryeee.pem -q -N ""
    
    1. pem을 사용하려면 권한을 수정해야 합니다
    chmod 400 ~/dotoryeee.pem
    
    1. AWS에 넘겨줄 공개키를 생성합니다
    ssh-keygen -y -f ~/dotoryeee.pem > ~/dotoryeee.pub