[구축/운영] 3일차

djEjgrpgksmsrjwl·2024년 12월 27일

SK shieldus Rookies 23기

목록 보기
14/24

[구축/운영]

  • 순환도

기획 >> 요구 사항 정의 >> 개발설계 > 개발(구축) > 테스트 > 운영전환 > 유지보수 > 폐기

->> 프로젝트 (비용, 일정, 인력(업무:task), 범위 등..)
PM(리더),PL(리더보조),팀원 이 프로젝트를 전반적으로 관리

[구축]

구축 : Docker, Terraform, Kubernetes, CloudFomation, Ansible Playbook...
-> 자동화된, 중앙화를 선호
=> 구축에 있어 중요한 것은 네트워크! ( 접근제어, 통신 )
3 티어로 시스템을 구축
프론트 >> 백 >> 백

    ex) docker >>> 총 5개의 환경을 구성
    - 1 voting-app   >>> 5000 >> 80  public  (Front)
      2 redis    >> private (Backend)
      3 worker-app    >> private (Backend)
      4 db(postgres)    >> private (Backend)
      5 result-app   >>> 5001 >> 80  public   (Front)

전가상화, 반 가상화, 컨테이너

  • 용어와 개념을 명확하게 숙지할 것!

전가상화

  • 물리서버에 OS부분에 가상화 OS를 설치하여 대시보드를 통해 가상화 시스템 배포 관리
    PC : CPU Intel 14900K, MEM 128GB, SSD 4TB, HDD 8TB, VGA 4090RTX, ... -> H/W
    H/W 제어하기 위해 OS를 설치함(Windows)
    OS에 하드웨어 성능을 분배해서 사용할 수 있게 해주는 기술
    물리적인 하드웨어 스펙이 논리적으로 분리가 됨

ex) CPU가 16core -> 4core 4core 4core 4core 로 나누어 총 4개의 시스템 구성이 가능
exsi, KVM이 대표적인 프로그램

반 가상화

  • 물리서버에 OS를 설치하고 가상화 프로그램을 설치하여 가상환경 구축
    VMware, VirtualBox 가 대표적인 프로그램
    물리적인 성능을 논리적으로 나누어 사용됨

ex) CPU가 16core인데 가상머신에 8core을 할당하면 8core만 실서버가 가짐

전가상화, 반가상화 => 물리적인 성능으로 인한 문제가 있음
해결하기위해 컨테이너가 나옴

컨테이너

  • 기존의 가상화 기술의 물리적인 성능을 할당하는 문제를 해결하기 위해 나옴
    OS위에 폴더를 설치하여 독립적인 폴더 권한을 가지면서 통신 기술을 할당해주는 기법

ex) 폴더개념 ( 바탕화면에 폴더하나 자체가 OS가 되어 통신을 할당할 수 있음 )
-> 이로인해 가장 큰 장점은 경량화(기존 가상화는 가상환경에 OS를 올리면서 실제 OS설치하는 만큼 성능이나 저장공간이 필요)
-> 컨테이너는 용량이 커봐야 5GB 이내임.
-> 호스트와 리소스를 공유함(CPU, MEM, Storage)


host와 guest간에 통신 이해

host ( = local )

host : 물리적인 HW에 설치된 OS가 돌아가는 환경 = local
ex) 우분투에 도커를 설치해놧음 >> 어디가 호스트일까? 도커 입장에서는 우분투이고 우분투 입장에서는 윈도우

guest

가상화 환경( 가상화 or 컨테이너 모두 )을 보통 guest 환경이라고 함.

host와 guest간에 통신 이해

  • bridged : host에서 상속받음
  • NAT : 가상의 Network 할당 ( 사설 IP 대역으로 우선 할당됨 )
Host  <----> Guest  통신이 안된다
Guest <----> Guest  통신이 안된다
Bridged       NAT => 절대 안된다

-> 같은 NAT여도 IP대역이 달라지면 통신이 안됨.

Guest A <----------------> Guest B
192.168.111.150 ------ 192.168.22.33  >> 둘다 NAT 여도 통신 불가

=> 보통 인터넷이라는 것은 라우터나 스위치에서 테이블(라우팅)을 구성해줘야함. (해당 IP가 누구의 어디에 있는지 알아야 패킷을 전달해줌)

  • 해결방법
  1. Guest와 Guest간에 라우터나 스위치 구성
  2. Guset A에 네트워크 card를 한장 더 설치하여 B와 동일한 대역 설정
    • 2번이 구현이 훨씬 쉬움 ( 비용절감 구축빠름 )

응용)

Guest C <--------------> Guest A <----------------> Guest B
192.168.111.150---------192.168.111.150 ---------- 192.168.22.33
                        192.168.22.22

조건 : A 는 네트워크 card 2장
      192.168.111.X 외부 인터넷 가능
      192.168.22.X 외부인터넷 접속 불가능
  1. 퍼블릭 Zone은?
    = C , A
    왜? 외부 접속이 가능하니깐
  2. C와 B는 통신이 가능?
    = 불가능
    A가 라우팅 역활을 하면 가능
    ex) A가 server일 경우 socat 명령어(도구)를 통해 가능
    socat TCP4-LISTEN:80,reuseaddr,fork TCP4:192.168.22.33:80
    └> 80으로 들어오는 것을 192.168.22.33:80로 보내라
  • socat같은 경우는 영구적용이 안되고 socat이 꺼지면 포트포워딩도 종료된다.
  1. 프라이빗Zone은?
    = B

[운영]

->> 개발이 끝나고 테스트에 이상이 없어 운영계로 넘어와 실업무에 활용 하는 단계
실무에서 시스템(인프라) 운영 담당자 라고 부름

1) 시스템에 대한 안정성 확보

장애나, 재해 발생 시 우리 시스템은 안전하다! 보장
- 장애: 버그, 외부공격, 고장, 등
- 재해: 화제, 홍수, 등

대응방안 : 이중화, 시큐어코딩, 백업, 정기점검(log검사 등), 대응훈련 등

  • 이중화 : 200km 이상 떨어진 물리적인 장소
    • Hot site(좀 부족한것),
      Warm site(꾀 부족한것),
      Cold site(시설만 가지고있는것),
      Mirror site(똩같이)
  • 백업 : 풀백업(초기 전체 백업), 차등백업(수정사항만 백업)

2) 협조가 잘되어야 함

( 회사가 커질수록 타부서 협조를 잘 안해주려함 )

보안은 모든 분야의 지식을 많이 알고 있어야한다.


다음주는 테라폼 할 예정

profile
sunseonghwan

0개의 댓글