회사 지원으로 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. ... |
- syslog
아무 생각없이 syslog좀 보려했다가 /var/log/messages 파일이 없더라...
서버 운영자였긴 했는데, 너무 무식한 나라서 검색했다.
https://repost.aws/knowledge-center/ec2-linux-al2023-find-log-files
- 방화벽 관련
네트워크쪽은 정말 문외한이라서, 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 |