회사 지원으로 AWS 에 EC2를 생성했다.

4개 정도의 EC2 를 생성했고 총 5대 생성 해야 해서.. 나머지 한대도 6월 안중으론 해야 한다. 

3개는 kafka cluster 용, 1대는 prducer/consumer/부하 발생 용, 나머지 1대는 모니터링 구성용(grafana) 이다.

 

  • 리소스 선택
    우선 4대 리소스는 4C 16G 로 생성했는데, 얘네 flavor(리소스셋)이 너무 어려워서...
    맨처음 3대 구성할 땐 t2.xlarge 로 선택 했는데, 나머지 1대 구성할때 t3.xlarge로 했더라 나녀석...
    내 기준에 그냥 여기서 뚱땅뚱땅 하려면 4c8g면 충분한데... aws의 리소스셋 구성은 이해할수가 없다..(4g 다음 16g..)

**아래는 aws 출처.

이름 t2.xlarge t3.xlarge
vCPU 4 4
메모리(GiB) 16 16
기준 성능 /vCPU   40%
획득한 CPU 크레딧/시간 54 96
네트워크 버스트 대역폭 (Gbps) - 5
EBS 버스트 대역폭 (Mbps) - 최대 2,780
온디맨드 요금/시간* 0.1856 USD 0.1670 USD
1년 약정 예약 인스턴스 실질 시간당* 0.110 USD 0.099 USD
3년 약정 예약 인스턴스 실질 시간당* 0.074 USD 0.067 USD

 

사실 서버 구성 할 때 회사에서 약간 바이블(?) 처럼 만들어진 커널파라미터값들 적용 하는게 있는데,

그 커널 파라미터 값들을 정확하게 이해하고 적용한게 아니라서 현재 서버 구성 진행 시엔 진행하지 않았다.
아마 부하테스트 할 때 필요 한 것들은 적용 해야 할 것 같다.

 

  • 디렉토리 구성
    broker 3대에 각각 80G씩 할당 받아서 10G*1, 20G*3 씩 LVM 으로 디스크 구성후 mount 했다.
    ** lvm 패키지가 안깔려있어서 yum으로 설치했다.
    기본 마운트는 검은색 굵은글씨인 /kafka(10G), /kaf_data(20G), /zoo_data(20G), /svc_log(20G) 이다.
    AWS에서 디스크를 추가로 할당 받을 때, 100G 초과 해서 받으려면 돈을 내야 하는 것 같았다.

    기존에 구성도(https://abbf.tistory.com/48) 에서 디렉토리 구조가 조금 수정/추가가 아래와 같이 있었다.
      - src 는 /kafka 바로 아래로 depth 한단계 올림
      - zoo_data 에서 snapshot 에 대해 translog와 동일 depth로 변경
engine data log
 /kafka
 |-app
 |---configuration
 |---script
 |-kafka_2.13-3.7.0
 |---bin
 |-----windows
 |---config
 |-----kraft
 |---libs
 |---licenses
 |---site-docs
 |-src
 /kaf_data

 /zoo_data
 |-snapshot
 |-transdata
 /svc_log
 |-kaf_log
 |-zoo_log

 ** https://www.hahwul.com/2018/08/27/treeview-without-tree-command-as-ls/  통해 tree 명령어 없이 확인 개꿀b

 

  • JDK 관련
    일반 리눅스에서 yum search 로 openjdk 를 검색하면 바로 나왔는데,
    AWS는 자체적인 JRE 를 구성해서 corretto라는 이름(?)으로 오픈소스 java 를 제공한다.
    OpenJDK 설치파일을 들고와서 설치해볼까 라는 무서운 생각을 지금 갑자기 드는데
    생각해보니 4년전 프로젝트 할 때 내가 파일 잘 못 가져와서 결국 AP부서에서 다시 구해왔던 기억이.. 안하기로 한다.
    여튼 아래와 같이 aws linux에서는 corretto 라고 붙어있는걸 설치 했다.
Rocky linux [root@localhost ~]# uname -r
4.18.0-372.9.1.el8.x86_64


[root@localhost ~]# yum search openjdk
 ...
java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
 ...
Amazon linux [root@broker1 var]# uname -r
6.1.82-99.168.amzn2023.x86_64

[root@broker1 var]# yum search openjdk
 ...
No matches found.


[root@broker1 var]# yum search java-11
 ...
java-11-amazon-corretto.x86_64 : Amazon Corretto development environment.
 ...

 

 

 

  • 방화벽 관련
    네트워크쪽은 정말 문외한이라서, IP를 걸러서 받거나 할 대가리는 안됐다.
    처음에 서버별로 한대씩 하다가, 22번 port와 kafka 서비스 포트에 대한 보안그룹을 좀 나눠서 생성했다.
    그 다음 보안 그룹을 EC2 서버에 추가 했다.

    지금 생각해보니까, inbound / outbound를 하나의 보안 그룹으로 생성 했는데,
    향후 관리를 위해서는 inbound랑 outbound의 보안 그룹을 나눠서 관리 해야할지 고민해보면 될 것 같다.

 

  • 기타
    crontab에 뭘 좀 등록하려고 했는데, crontab tab키가 안먹힘.
    알고보니 cron이 안깔려있어서 설치.

    # yum install -y cronie
    # systemctl start crond
    # systemctl status crond
    # systemctl enable crond

     
728x90

'업무 > OS' 카테고리의 다른 글

서버 VIP 구성 관련  (0) 2020.08.09
CentOS 7 서버 기본 구성 하면서 있었던 일 (~20.03)  (0) 2020.05.05

+ Recent posts