본문으로 바로가기
반응형


AWS EC2 (Amazon Elastic Compute Cloud) 

안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스

 

AWS AMI (Amazon Machine Images)

EC2 인스턴스를 시작하는 데 필요한 정보가 들어있는 이미지 즉 EC2의 복사본

사용 할 수 있는 대표적인 OS

  • Amazon Linux2
  • CentOS
  • Red Hat Enterprise Linux
  • Windows Server
  • Ubuntu

 

AWS 탄력적 IP

EC2 인스턴스를 중지하고 다시 시작해도 IP 주소는 유지 시켜줌.

 

AWS ELB (Elastic Load Balancing)

AWS에서 ELB라는 이름으로 제공하는 로드 벨런서

 

로드벨런싱

 

 

로드밸런싱, L2, L3, L4, L7 스위치, HAProxy 란?

회사에서 L4 스위치에서 L7 스위치로 변경하기 위해 사전 영향도 조사 관련 메일을 받았습니다. L4, L7 스위치에 관하여 알아보다가 로드밸런싱, HAProxy와 연관이 있어 같이 정리해보려고 합니다.

1995-dev.tistory.com

 

 

AWS ROUTE53

AWS에서 ROUTE53이라는 이름으로 제공하는 DNS


구성

1. EC2 3개 구성

2. EC2 탄력적 IP 할당

3. EC2 인스턴스에 Docker 설치 후 Elasticsearch, Kibana 컨테이너 생성

   - 인바운드 규칙 추가 (9200,9300-9305,5601)

  • EC2 (1) = Docker + Elasticsearch(es1, node = master + data) + Kibana
  • EC2 (1) = Docker + Elasticsearch(es2, node = master + data)
  • EC2 (1) = Docker + Elasticsearch(es3, node = data) + Elasticsearch(es4, node = data)

4. 각 EC2에 있는 Elasticsearch Cluster 구성

5. ELB (로드 벨런싱) 적용

6. Route53으로 로드 벨런싱 DNS 변경

7. ELB 정상 실행 확인

 

1. EC2 3개 구성

AMI는 Amazone Linux로 선택

 

2. EC2 탄력적 IP 할당

 

3. EC2 인스턴스에 Docker 설치 후 Elasticsearch, Kibana 컨테이너 생성

4. 각 EC2에 있는 Elasticsearch Cluster 구성

 

MobaXterm 으로 EC2 접근

 

AWS EC2 생성 후 SSH 22 포트 접근 Connection timed out

MobaXterm 설치 https://mobaxterm.mobatek.net/download.html MobaXterm free Xserver and tabbed SSH client for Windows The ultimate toolbox for remote computing - includes X server, enhanced SSH clien..

1995-dev.tistory.com

 

도커 설치

 

WLS 설치 및 WSL 위에 Docker 설치

WLS2 (Windows Subsystem for Linux) Linux용 Windows 하위 시스템을 사용하면 개발자가 기존 가상 머신의 오버헤드 또는 듀얼 부팅 설정 없이 대부분의 명령줄 도구, 유틸리티 및 애플..

1995-dev.tistory.com

 

EC2 (1) 

docker-compose.yml

  • EC2 (1) = Docker + Elasticsearch(es1) + Kibana
version: "3.3"
services:
  es1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
    container_name: es1
    network_mode: host
    environment:
      - node.name=es1
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=172.25.11.112,172.25.11.113
      - cluster.initial_master_nodes=es1,es2
      - node.roles=master,data,transform
      - network.publish_host=172.25.11.111
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /home/ec2-user/data01:/usr/share/elasticsearch/data
  kibana:
    image: docker.elastic.co/kibana/kibana:7.9.1
    links:
      - es1:es1
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      - server.name=kibana
      - server.host=0
      - ELASTICSEARCH_HOSTS=http://172.25.11.111:9200

 

  • EC2 (1) = Docker + Elasticsearch(es2)
version: "3"
services:
  es2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
    container_name: es2
    network_mode: host
    environment:
      - node.name=es2
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=172.25.11.111,172.25.11.113
      - cluster.initial_master_nodes=es1,es2
      - node.roles=master,data,transform
      - network.publish_host=172.25.11.112
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /home/ec2-user/data01:/usr/share/elasticsearch/data

 

  • EC2 (1) = Docker + Elasticsearch(es3) + Elasticsearch(es4)
version: "3"
services:
  es3:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
    container_name: es3
    network_mode: host
    environment:
      - node.name=es3
      - http.port=9200
      - transport.port=9300
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=172.25.11.111,172.25.11.112
      - cluster.initial_master_nodes=es1,es2
      - node.roles=data,transform
      - network.publish_host=172.25.11.113
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /home/ec2-user/data01:/usr/share/elasticsearch/data
  es4:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
    container_name: es4
    network_mode: host
    environment:
      - node.name=es4
      - http.port=9201
      - transport.port=9301
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=172.25.11.111:9300,172.25.11.112:9300
      - cluster.initial_master_nodes=es1,es2
      - node.roles=data,transform
      - network.publish_host=172.25.11.113
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /home/ec2-user/data02:/usr/share/elasticsearch/data

 

인바운드 규칙 생성

 

http://탄력적IP/_cat/nodes

172.25.11.111 44 51 0 0.00 0.06 0.07 dmt * es1
172.25.11.112 50 84 2 0.01 0.47 0.47 dtt - es2
172.25.11.113 50 73 1 0.00 0.16 0.26 dm  - es3
172.25.11.113 47 84 2 0.01 0.47 0.47 dt  - es4

 

 

5. ELB (로드 벨런싱) 적용

이름 + 네트워크 + 보안 + 리스너(9200) 작성

대상 그룹으로 ES2 3개 적용 

 

6. Route53으로 로드 벨런싱 DNS 변경

ROUTE53 이동

 

 

7. ELB 정상 실행 확인

Route53으로 등록한 도메인 접속 후 새로고침하여 es name 바뀌는지 확인

"name" : "es1"
"name" : "es2"
"name" : "es3"
"name" : "es4"
반응형