ft_services (1) 과제 및 용어 정리

chanykim·2021년 4월 14일
0

ft_services

목록 보기
1/4

과제

과제에 나와 있는 내용을 읽어보면서 기술용어들을 찾아보고 어떻게 만들어지는 것인지 확인해보았습니다.

이 프로젝트는 다양한 서비스의 인프라 설정으로 구성됩니다. 이를 수행하려면 Kubernetes를 사용해야합니다. 다중 서비스 클러스터를 설정해야합니다.
각 서비스는 전용 컨테이너에서 실행되어야합니다.
각 컨테이너는 관련 서비스와 동일한 이름을 가져야하며 성능상의 이유로 컨테이너는 Alpine Linux를 사용하여 빌드해야합니다.

• Kubernetes 웹 대시 보드. 이렇게하면 클러스터를 관리하는 데 도움이됩니다.
• 서비스의 외부 액세스를 관리하는로드 밸런서. 클러스터의 유일한 진입 점이됩니다. 서비스와 관련된 포트를 유지해야합니다 (Grafana의 경우 IP : 3000 등). 
  Load Balancer는 단일 IP를 갖습니다.
• MySQL 데이터베이스에서 작동하는 포트 5050에서 수신하는 WordPress 웹 사이트. 두 서비스 모두 별도의 컨테이너에서 실행되어야합니다.
  WordPress 웹 사이트에는 여러 사용자와 관리자가 있습니다. 
  Wordpress에는 자체 nginx 서버가 필요합니다. 로드 밸런서는이 서비스로 직접 리디렉션 할 수 있어야합니다.
• phpMyAdmin, 포트 5000에서 수신 대기하고 MySQL 데이터베이스와 연결됩니다. Php- MyAdmin에는 자체 nginx 서버가 필요합니다.
  로드 밸런서는 이 서비스로 직접 리디렉션 할 수 있어야합니다.
• 포트 80 및 443에서 수신 대기하는 annginx 서버가있는 컨테이너. 포트 80은 http에 있으며 https에있는 301에서 443 유형의 체계적인 리디렉션이어야합니다.
  표시되는 페이지는 http 오류가 아닌 한 중요하지 않습니다.
  이 컨테이너는 IP : WPPORT로 리디렉션 307을 만드는 / wordpress 경로에 대한 액세스를 허용합니다.
  또한 IP : PMAPORT에 대한 프록시와 함께 / phpmyadmin에 액세스 할 수 있어야합니다.
• 포트 21에서 수신 대기하는 FTPS 서버.
• InfluxDB 데이터베이스와 연결된 포트 3000에서 수신 대기하는 Grafana 플랫폼. Grafana는 모든 컨테이너를 모니터링합니다.
  서비스 당 하나의 대시 보드를 만들어야합니다. InfluxDB와 grafana는 두 개의 별개 컨테이너에 있습니다.
• 두 데이터베이스 컨테이너 중 하나가 충돌하거나 중지되는 경우 데이터가 유지되도록해야합니다.
• 모든 컨테이너는 구성 요소 중 하나가 충돌하거나 중지되는 경우 다시 시작해야합니다.

Node Port 서비스, Ingress Controller 객체 또는 kubectl port-forward 명령의 사용은 금지됩니다.
Load Balancer는 클러스터의 유일한 진입 점이어야합니다.

클라우드 제공 업체에서 제공하는 부하 분산기를 사용하는 것은 쓸모가 없습니다. MetalLB를 봐야합니다.

그런데 아래의 metrics 라는 것을 모르겠다. 이 과제를 넘어간 사람에게 물어보니 influxDB에 들어가는게 Grafana 하나라고 한다.
그리고 과제가 바뀌었는데 그림은 똑같아서 정정하자면 저 Nginx의 포트 22번은 예전 과제에서 필요했던 포트번호이므로 없어도 된다.

Kubernetes

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다.

쿠버네티스가 제공하는 것

  1. 서비스 디스커버리와 로드 밸런싱
    쿠버네티스는 DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출할 수 있다. 컨테이너에 대한 트래픽이 많으면, 쿠버네티스는 네트워크 트래픽을 로드밸런싱하고 배포하여 배포가 안정적으로 이루어질 수 있다.
  2. 스토리지 오케스트레이션
    쿠버네티스를 사용하면 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재 할 수 있다.
  3. 자동화된 롤아웃과 롤백
    쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있다. 예를 들어 쿠버네티스를 자동화해서 배포용 새 컨테이너를 만들고, 기존 컨테이너를 제거하고, 모든 리소스를 새 컨테이너에 적용할 수 있다.
  4. 자동화된 빈 패킹(bin packing)
    컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드를 제공한다. 각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 쿠버네티스에게 지시한다. 쿠버네티스는 컨테이너를 노드에 맞추어서 리소스를 가장 잘 사용할 수 있도록 해준다.
  5. 자동화된 복구(self-healing)
    쿠버네티스는 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체하며, '사용자 정의 상태 검사'에 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 끝날 때까지 그러한 과정을 클라이언트에 보여주지 않는다.
  6. 시크릿과 구성 관리
    쿠버네티스를 사용하면 암호, OAuth 토큰 및 SSH 키와 같은 중요한 정보를 저장하고 관리 할 수 있다. 컨테이너 이미지를 재구성하지 않고 스택 구성에 시크릿을 노출하지 않고도 시크릿 및 애플리케이션 구성을 배포 및 업데이트 할 수 있다.

Alpine Linux

용량이 80M인 초경량화된 배포판이므로 Embbeded 나 네트웍 서버등 특정 용도에 적합하며 특히 도커(docker)에 채택되어 5M 크기의 리눅스 이미지로 유명하다.
alpine linux는 CentOS 나 Ubuntu 처럼 Main OS로 사용하지 않고 도커 컨테이너의 OS로 많이 사용한다.
경량화를 추구하면서 보안을 강화한 이미지로 꼭 필요한 라이브러리와 시스템 데몬이 포함되어 있기 때문에 일반적인 OS이미지에 비해서 그 사이즈가 매우작다. 기본적으로 타 리눅스 배포판보다 훨씬 가볍고 깔끔한 것이 장점이기 때문에 Docker 컨테이너에 사용되는 예는 매우 많고 유명하다.
이러한 가벼움 덕분에 Docker를 사용하여 많은 패키지를 가상화하여 올리는 경우나 정말로 서버에 올리고 싶은 것만 깔끔히 올리고 싶은 경우에 Alpine Linux를 사용한다.

MetalLB - Load Balancer

https://ko.wikipedia.org/wiki/%EB%B6%80%ED%95%98%EB%B6%84%EC%82%B0
https://jflip.tistory.com/10
https://prohannah.tistory.com/62

부하분산 또는 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.
즉, 한번에 트래픽이 몰릴 때 몰리는 것을 막아 가용성을 보존하고, 트래픽 병목 현상을 막을 수 있다. 최근 분산 처리 시스템에서도 필수 요소라고 한다.
사용할 수 얻을 수 있는 이점으로는, 실행 속도를 높일 수 있고 다운타임 최소화와 서비스에 대한 병목현상 예측, 비용 절감이 있다.(네트워크의 이중구성을 최소화할 수 있다.)

Grafana

https://medium.com/finda-tech/grafana%EB%9E%80-f3c7c1551c38

시계열 데이터에 대한 대시보드를 제공해주는 Data Visualization Tool인 Grafana란 다양한 DB를 연결하여 DB의 데이터를 가져와 시각화 할 수 있으며, 그래프를 그리는 방법도 간단히 마우스 클릭으로 완료할 수 있다.
Grafana는 시계열 매트릭 데이터 수집에 강한 모습을 보이는 만큼, 활용하는 부분도 서버 리소스의 매트릭 정보나 로그 같은 데이터를 시각화는 데 많이 사용한다.

FTPS

FTPS(FTP Secure, FTP-SSL, FTPES, S-FTP)는 일반적으로 쓰이는 파일 전송 프로토콜(FTP)의 확장으로, 기존의 FTP에 전송 계층 보안(TLS)과 보안 소켓 계층(SSL) 암호화 프로토콜에 대한 지원이 추가되었다.
FTPS는 SSH 파일 전송 프로토콜(SFTP)나 파일 전송 프로토콜(Secure FTP)와는 다르다. File Transfer Protocol로 말 그래도 파일을 전송하는 통신 규약이다.
FTP는 기본 포트는 21이지만 바꿔서 사용하는 경우도 있다고 한다. 옛날엔 좀 사용했는데 지금은 보안 좋지 않아 실무에서는 사용하지 않는다고 한다.
FTPS는 https와 동일 개념이다. 공개키 암호화 방식을 이용하여 통신 라인을 거쳐 21번, 20번 포트를 안전하게 암호화 한다.

influxdb

https://mrsence.tistory.com/66

influxdb 란 시계열 데이터를 저장하고 활용하는데에 특화된 database이다.
용도로는 (timestamp 기반의 모든 데이터의 백업 저장소로 용이함) DevOps 모니터링, 응용 프로그램 메트릭, IoT 센서 데이터 및 실시간 분석이 있다.

profile
오늘보다 더 나은 내일

0개의 댓글