22.04.04

HyeonKi Jo·2022년 4월 3일
0
post-thumbnail

이론

인프라 스트럭처 개요

인프라 스트럭처란?

  • 보통 '인프라'라고 표기한다.
  • 하드웨어적 측면, 소프트웨어(OS 등) 측면, 네트워크 측면 기본 구조를 말한다.
  • 인프라는 정보의 흐름과 처리를 지원하는 모든 것처럼 보여지기도 한다.

IT 인프라의 구성 요소

하드웨어

  • 하드웨어에는 서버, 데이터센터, PC, 라우터, 스위치, 기타장비 등 기타 장비 포함
  • 데이터센터를 보관 및 냉각(에어컨, 공기청정기 등)하고 데이터센터에 동력을 공급하는 시설 또한 인프라로 포함된다.

소프트웨어

  • 웹 서버, 콘텐츠 관리 시스템, OS(Linux) 등 기업에서 사용하는 애플리케이션을 의미한다.
  • OS는 시스템 리소스 및 하드웨어를 관리한다.

네트워킹

  • 네트워크 운영, 관리, 내 외부 시스템 간 커뮤니케이션
  • 인터넷 연결, 네트워크 활성화, 방화벽 및 보안을 비롯해 라우터, 스위치, 케이블 같은 하드웨어로 구성된다.

IT인프라의 유형

전통적인 인프라

  • 전통적 인프라는 데이터센터, 데이트 스토리지를 비롯한 구성요소를 모두 기업의 자체 시설에서 고유하고 관리했다.
  • 비용이 많이들고, 서버와 같은 하드웨어(랙, Rack), 전력 및 물리적 공간이 대량으로 필요했다.
  • 온프레미스 라고 불린다.
  • IDC (Internet Data Center)
    - 전력이나 보안시설이 잘 되어있다.
    • 물리적 위험이 적다.
    • 회사의 서버를 IDC로 보내 사용한 것
  • CDC (Cloud Data Center)
    - IDC에서 가상화 도구가 설치되어 더 발전한 형태이다.
    • 물리적 머신이 아닌, VM을 만들어서 서비스 하는 것.
      - 클라우드 서비스를 사용할 때는 IDC와 같은 물리적 서버는 별로 볼 일 없을 것이다.
      - IDC에서 CDC로 가면서 사용자는 많이 바뀌었지만 서버를 관리하는 관리자는 할 일이 많이 바뀌지 않았다.

클라우드 인프라

  • 클라우드 인프라(클라우드 네이티브)는 클라우드 컴퓨팅에 필요한 구성 요소와 리소스를 뜻한다.
  • 전용 리소스를 사용해 프라이빗 클라우드(사용자를 특정함, 사내 직원만 사용, 이해관계자들만 사용 등)를 자체적으로 구축하거나, AWS, Alibaba, google 등 클라우드 제공업체(CSP, Cloud Service Provider)의 퍼블릭 클라우드(사용자 특정 X, 누구나 사용가능한)를 사용할 수도 있다.
  • (메가존 클라우드: MSP, Manage Service Provider, 고객에게 클라우드를 설계해주고 수수료를 받는 서비스)
  • (ISP : Internet Service Provider)
  • 멀티 클라우드 전반에 대해 특정 수준의 워크로드 이식석, 오케스트레이션, 관리기능을 통합하여 하이브리드 클라우드(프라이빗 + 퍼블릭)를 구축할 수도 있다.

클라우드 서비스

  • 클라우드 내부에 Application, Platform, Infrastructure 를 사용할 수 있지만 인터넷에 연결 되어 있는 client(단말장치)가 있어야 한다.

하이퍼컨버지드 인프라(HCI)

  • 하이퍼컨버지드 인프라를 사용하면 단일 인터페이스에서 컴퓨팅, 네트워크, 데이터 스토리지 리소스를 관리할 수 있다.
  • 기존 장비를 가상화하여, 기존에 남아있던 낮은 성능의 컴퓨터들을 하나로 모아 좋은 성능의 컴퓨터 하나를 만들 수 있다.
  • 고가이지만, 만약 그정도의 가치가 있다면 사용할 법 하다.
  • nutanix라는 회사가 유명.


온-프레미스 인프라스트럭처

  • On-premise(구내, 사내, 건물 안) : 전산실
  • 반대 : Off-premise == 퍼블릭 클라우드

온-프레미스 인프라스트럭처란?

  • 보안적인 이유로 비즈니스에 중요하고 보안이 필요한 서비스와 데이터는 온프레미스 환경에서, 덜 중요한 것은 퍼블릭 클라우드 환경을 사용하는 하이브리드 IT인프라가 대세를 이루고 있다.
  • public / External / front-end
  • private / internal / Back-end (보안적인 이유, 보호하기 위해 백엔드)
  • Multi cloud : AWS, GCP, Azure, IBM, NCP, KT 들을 VPN을 이용하여 연결한다.


클라우드 컴퓨팅

클라우드 컴퓨팅이란?

"관리 노력과 서비스 공급자의 상호 작용을 최소화하면서 신속하게 제공하거나 해제할 수 있는 구성 가능한 컴퓨팅 리소스(CPU, RAM, 네트워크, 버서, 스토리지, 애플리케이션, 서비스 등)의 공유 풀에 어디서나 편리하게 필요한 시점에 네트워크 (인터넷)로 접근할 수 있게 하는 모델이다."
-미국 국립표준기술협회-

내 자원이 아니지만 남의 자원(CSP)을 돈을 주고 사용하는 것이 클라우드 컴퓨팅이다. 가상화 기반으로 구현된 서버가 주축이 되어 서비스 하는것.

클라우드 컴퓨팅 유형

퍼블릭 클라우드

  • 클라우드 컴퓨팅 배포의 가장 일반적인 유형

  • 클라우드 리소스(서버 및 스토리지)는 CSP(클라우드 서비스 공급자)가 소유하고 운영하며 인터넷을 통해 제공한다.

  • 클라우드 "테넌트"(가입자)와 같은 하드웨어, 스토리지, 네트워크 디바이스를 공유하며, 웹브라우저를 사용하여 액세스하고 계정을 관리함.

  • 장점
    - 비용 절감: 하드웨어 또는 소프트웨어 구매가 필요없고(무료가 아니라 비용에 포함), 사용한 서비스의 요금만 지불하면 된다. 또, 초기비용이 없다.

    • 유지 관리 불필요 : 서비스 공급자(CSP)가 유지 관리를 제공한다.
    • 무제한에 가까운 스케일링(조정) 성능 : 주문형 리소스를 사용하여 비즈니스 요구 사항을 충족할 수 있다.
      • 조정(Scailing) : 자원에 대한 조정, CPU, RAM, SSD등 컴퓨팅 자원을 늘릴 수 있으며 또 줄일 수 있다. 또, 자동으로 조정하는 것을 Auto Scaling이라 한다.
    • 높은 안정성 : 광대한 서버 네트워크를 통해 실패를 방지한다. (가용성), 신뢰성이 올라간다. -> 무중단 서비스

프라이빗 클라우드

  • Openstack(Toast, NHN) 으로 구축하게 될 것이다. AWS와 비슷하기 때문.
  • Cloudstck(KT)
  • 사용자를 특정할 수 있다.
  • 퍼블릭과 달리 용량(Capacity)에 대한 걱정 등 설계가 필요하며, 그 비용, 책임 등 리스크가 많다. 쉽지않지만 필요할 수 있다.
  • 장점
    - 유연성 향상 : 커스터마이징이 됨, 조직에서 특정 비즈니스 요구 사항을 충족하기위해 환경을 사용자 지정할 수 있다.
    • 제어 향상: 리소스가 다른 사용자와 공유되지 않으므로, 더 높은 수준의 제어 및 개인 정보가 가능하다.
    • 스케일링 성능 향항 : 프라이빗 클라우드는 온-프레미스 인프라와 비교했을 떄 대개 더 큰 스케일링 성능을 제공한다. (퍼블릭 클라우드보다 떨어지지만, 전통의 온-프레미스 인프라보다는 좋다.)

하이브리드 클라우드

  • 하이브리드 클라우드 플랫폼은 더 큰 유연성, 더 많은 배포 옵션, 보안, 규정 준수, 기존 인프라에서 더 많은 가치 얻기 등 많은 이점을 조직에 제공한다. 타사 데이터 센터에서 데이터 전체에 액세스 하지 않고도, 온=프레미스 인프라를 퍼블릭 클라우드로 원활하게 스케일업 하여 오버플로를 처리할 수 있는 기능을 제공한다.

  • 장점
    - 매우 중요한 데이터를 유지하면서 퍼블릭 클라우드에서 제공하는 유연성과 혁신을 이용할 수 있다.

    • 제어 : 짧은 대기시간이 필요한 중요한 자산이나 워크로드(작업량)를 위한 프라이빗 인프라를 유지 관리할 수 있다.
    • 유연성 : 필요할 때 퍼블릭 클라우드에서 추가 리소스를 활용할 수 있다.
    • 비용 효율성 : 퍼블릭 클라우드로 스케일링하는 기능을 통해 필요할 때만 추가 컴퓨팅 성능에 대한 비용만 지불하면 된다.
    • 용이성 : 시간을 두고 점차 워크로드를 단계별로 수행하여 점진적으로 클라우드로 넘어갈 수 있다. 온-프레미스에서 퍼블릭으로 (하이브리드형태로)조금씩 바꿔서 넘어갈 수 있다.
  • 하이브리드 클라우드
    private
    - 보안성 확보가 필요한 중요 업무
    - 고객 정보 등
    Public

    • 중요도가 낮은 업무
    • 백업 등

퍼블릭 클라우드 서비스 종류

Iaas(Infrastructure as a Service)

  • IaaS는 주문형과 종량제 방식으로 필수적인 컴퓨팅(EC2), 스토리지(s3), 네트워킹 리소스 등과 같은 기본적인 인프라를 제공하는 클라우드 컴퓨팅 서비스의 유형이다.

  • IaaS는 SaaS(Software as a Service), PaaS(Platform as a Service), 서버리스와 함께 네 가지 클라우드 서비스 유형 중 하나이다.
    - 서버리스

    • 물리적서버(PM) --(가상화)-> 가상서버(VM) --> 인스턴스 --> 컨테이너 --> 서버리스

    • 아마존에서 블랙프라이데이때만 급격하게 사용자가 늘어, 그날만 쓰이는 물리적 서버가 쓰이고 나머지는 쓰이지 않았다. 따라서, 클라우드 컴퓨팅 서비스를 진행하게 되었다.

    • 인스턴스는 인스턴트에서 나온 말이다. 블랙프라이데이때만 쓰이고 안쓸때는 버리는 방법을 말하게됨

    • 컨테이너 -> 서버리스
      그러나 결국 물리적서버가 없어지는 것이 아니라, 수가 줄어들 뿐, 계속 존재한고 있다.

    • 서버리스는 퍼블릭 클라우드 본연의 온디멘드 형식, 필요한 만큼만 사용하고, 비용을 지불하는, 실제 서버가 없는 것이 아니라 용량 걱정을 안해도 된다는 의미의 서버리스이다.


  • 아마존이 S3 서비스를 가장 먼저 만든 이유는, 블랙프라이데이때 상품의 이미지가 판매에 가장 중요했기 때문이다. 웹서버를 만들어 이미지를 링크화 해서, 클릭하면 고화질의 이미지를 볼 수 있게 했다.

  • EC2, S3다음으로 VM을 만들 수 있는 EC2 인스턴스가 만들어 졌다.

  • IaaS 솔루션은 IT 리소스를 수요에 맞게 유연하게 스케일 업(사용자가 많아질때 사양 업), 다운(사양 다운) 할 수 있게 해준다. (수직적 조정)

  • 또, 새 애플리케이션을 빠르게 프로비저닝(스케일 아웃/인)하고 기본 인프라의 안정성을 높이는데도 도움은 준다.

    • 스케일 아웃 : 스케일을 늘리는 것으로 끝나지 않는다면, 수평적으로 복제를 통해 확대한다.(수평적 조정)
    • 스케일 인: 사용량이 줄어들면, 스케일 아웃상태에서 수평적으로 축소한다.
  • IaaS를 사용하면 물리적 서버 및 데이터 센터 인프라를 구입하고 관리하는 비용과 복잡성을 피할 수 있다.

  • 즉, 접속이 끊기지 않게, 무중단 서비스를 유지하는 것이 목표이다.

  • 특정 리소스를 필요한 동안에만 비용을 지불하면된다. 클라우드 컴퓨팅 서비스 공급자(CSP)가 인프라를 관리하며 사용자는 자체 소프트웨어(OS, 미들웨어, 애플리케이션 등)을 관리한다.

PaaS(Platform as a Service)

  • Platform (OS, 미들웨어, 애플리케이션 등 소프트웨어적인 부분)
  • 아마존에서 IaaS에서 성공하자 OS로 유명한 MS에서 경쟁하기위해 PaaS를 시작했다.
  • IaaS뿐만 아니라, 미들웨어, 개발도구, BI(비즈니스 인텔리전스) 서비스, 데이터베이스 관리 시스템 등도 포함되어 있다.
  • 개발자가 소스코드만들어서 ZIP로 압축하여 SaaS로 보낸다.
    - (예 : AWS Beanstalk)가 분석하여 Apach(EC2), MySQL(RDS), PHP(EC2)모듈 같은 Production환경을 자동으로 운영해준다. 개발자는 개발만 하고, URL을 받으면 된다.
    아직 완전하지 않지만, 가까워지려 노력하고 있다. 이러한 서비스를 PaaS라고 할 수 있다.
    - 소스코드만 입력하면 알아서지원해주는 것.
  • PaaS는 빌드, 테스트, 배포, 관리, 업데이트의 완전한 웹 애플리케이션 수명 주기를 지원하도록 디자인 되어있다.
  • PaaS를 사용하면 소프트웨어 라이선스, 기본 애플리케이션 인프라, 및 미들웨어 컨테이너 오케스트레이터 (예 : Kubernates)

SaaS(Software as a Service)

  • SaaS를 사용하면 사용자는 인터넷을 통해 클라우드 기반 앱에 연결하여 이를 사용할 수 있다. 일반적 예로, 메일, 일정 및 Office도구 (예: MS Office 365)등 이 이싿.
  • SaaS는 클라우드 서비스 공급자로부터 종량제 방식으로 구매하는 완전한 소프트웨어 솔루션을 제공한다.

Lock In(종속)

  • 너무 클라우드에 의존하게 되면 종속이 되어버린다.
  • 사람들은 너무 종속되지 않기 위해 반발하게 된다.
  • 또한 비용도 너무 상승하게 된다.


운영체제

운영체제란?

  • 운영체제, 혹은 오퍼레이틴 시스템 (Operating System, OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
    (App <-> OS(Kernel) <-> H/W
  • 최근, 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저(가상 머신)위에서 실행되기도 한다.


실습

VM 다시 만들기

VM 생성

  • Oracle Vm Virtual 다시 키고 기존에 있던 VM을 삭제한다.
  • 다시 새로만들기를 눌러 이름을 CentOS7GNOME으로 생성해준다. (버전은 Virtual Box에서 자동으로 Red Hat으로 만들어준다.)
  • 메모리 : 4Gb (4096)
  • 새 가상 하드디스크를 동적할당으로 128Gb를 설정해준다
    - (리눅스는 용량을 적게 사용하기 때문에 추천 용량은 8Gb이다.)
    • 가상디스크(Dist Provisioning)
    • Provisioning : 미리 설정, 사전 설정, 사전 정의, 사전 배치.
    • 동적할당(Thin Provisioning, 실습용, 공간을 효율적으로 사용할 수 있다. 비교적 느리다.)
    • 고정크기(Thick Provisioning, 실무용, 공간을 먼저 잡아먹는다. 그러나 비교적 빠르다.)
    • 둘 다 크기가 늘어날 수는 있어도 크기가 줄어들지는 않는다.
    • 용량이 128Gb로 시작하는게 아니라 2mb로 시작함을 볼 수 있다.

VM 설정

  • VM의 설정을 눌러 설정을 시작한다.
  • 시스템
    • 플로피 체크 해제
    • 프로세서 CPU : 2
  • 디스플레이
    - 비디오 메모리는 우리가 GUI를 사용할 것이기 때문에 128Mb(최대)로 쓴다.
  • 저장소
    - 컨트롤러 : IDE 비어있음 부분에서 광학드라이브 버튼 클릭
    • 광학 디스크 선택 /만들기 를 클릭해서 CentOS-7-x86_~~ DVD-2009.iso를 선택해준다.
  • 오디오 해제
  • 네트워크 NAT확인
  • 직렬포트 체크안된거 확인
  • USB사용안함, 써도 매우 느린버전, 유료해야 빠름
  • 시작

VM실행 후, 초기 설정

  • 언어는 English US로 해야 에러가 나지 않는다.

  • 시간은 Seoul Asia로 설정

  • Manual Partitioning설정에서 가상 하드디스크를 클릭하고 I will configuration partitioning 버튼을 체크해주고 Done

  • 이런 화면이 나오는데, 위에 /home이 따로 있다면 클릭하고 -버튼을 눌러 제거해준다.

  • 아래 Available Space만큼 남은 용량을 /을 클릭하교 Desire Capacity에 더해준다.

  • 또, SOFTWARE SELECTION 설정에서 GNOME DESKTOP으로 설정해준다.


  • 마지막으로 NETWORK & HOST NAME에서 랜카드를 on 해준다.



    -Root Password 정한다. 일정한 패턴, 미리정한 패턴으로 하고 잊어버리지 않는다.

  • 설정이 완료되어 설치가 끝나면 Reboot버튼이 나올때까지 기다리고, 버튼을 누른다.

  • 사용자 license동의 후, 오른쪽 아래 버튼을 눌러 실행한다.

  • 설정을 진행하고, SKip 후, root계정이 아닌 일반 계정을 하나 생성 후 시작하게 된다.

VM 또 다시 만들기

VM생성

  • CentOSMinimal로 생성,
  • 메모리 : 2Gb
  • 새 가상하드디스크 만들기, 동적할당, 128Gb
  • 비디오메모리 9Mb
  • CPI : 1
  • NET : NAT
  • 광학 디스크에 CentOS-7... minimal을 올려준다.
  • (MAC : 공유기는 IP를 부여하는데, 그 IP를 받기 전에, 모든 기기에서 MAC주소가 있다. 이 주소를 가지고 DHCP에게 IP를 요청한다.)
  • 처음엔 DVD(Desktop)과 같은 UI가 나온다.
  • SOFTWARE SELECTION 만 빼고, 아까랑 똑같다.
  • 똑같이 NETWORK & HOST NAME 설정 들어가서 랜카드에 전원을 올린다. 다만, 전 DVD VM과 IP가 똑같은 것을 볼 수 잇다. 원래 이러면 안됨, 충돌난다.

Minimal

  • Minimal 버전은 용량이 적어 CPU등의 자원이 적게 소모되며 설치도 빠르다. 이렇게 비용 효율성이 좋은 클라우드 인프라를 만드는것이 아키텍트의 일이다.
  • 설치가 완료된 후 Reboot를 진행한다.

CentOS7Minimal 사용

  • id : root
    pw : 설정한 PW
    로 진행한다.
  • Linux에서는 ifconfig을 쓰지만, CentOS에서는 ip a를 사용한다
  • 또, ping google.com을 보내면 답이 잘 온다.
  • 업데이트 : yum update -y
  • 종료 : poweroff

CentOS7Minimal Backup하기

  • ova(Open Virtual Appliance; 설치가 끝난 OS + App) 파일로 백업하게 된다.
  • ova : image의 종류, 이미 설치가 끝난 상태의 이미지라고 할 수 있다. (iso : 설치가 필요한 이미지)
  • vmdk : 압축파일, 결국 ova는
  • image의 종류 : (iso;설치가 필요), (ova, ovf, vid, vmdk, qcow2, ami, vhd; 설치가 끝남)
  • 클라우드 이미지 (AMI) 가 ova와 비슷하다.
  • 백업할 VM을 클릭 후, 위쪽 메뉴바에서 파일을 클릭, 가상 시스템 내보내기로 백업한다.
  • d드라이브에 vbox에 있는 OS파일을 압축하여 ova파일로 만든 것 과같다.

만약 삭제할 때, 모두 지우기가 아닌 그냥 지우기를 누르면

  • 내부 폴더가 아직 존재한다.
  • VirtualBox 메뉴바 중 머신 -> 추가를 누른다. -> 폴더에서 *.vbox인 파일로 다시 불러올 수 있다.

백업

  • 백업은 다른 컴퓨터로 옮길 수 있어야 한다.
  • 또 이것을 운영자가 받아서 배포하게 된다.

스냅샷

  • 타임머신 기능 (한 시점으로 돌아감)
  • 마치 백업과 같지만, 조금 다르다. 버전을 복원하는의미이다. 현재 프로그램이 꼬여있을 때, 괜찮았던 상태로 복원하는 의미이다.
    스냅샷을 찍으면 찍는순간 과거가 된다.
  • 스냅샷을 찍고, 현재상태를 누르고, VM을 실행시켜본다.
  • 부팅이 되면 touch test.txt명령어로 test.txt를 생성시킨다.
  • 여기서 스냅샷에서 test.txt라는 변동사항이 생겼다.
  • 스냅샷을 복구하고 다시 실행해보면 test.txt가 사라진다.
  • 백업의 기능이 조금 있지만, 내보낸 후, 다른 컴퓨터에서 시작할 수 없다.

복제

  • 굳이 ova파일을 가져올 필요 없이 기존에 있는 VM을 복제하여 다른 VM을 만들 수 있다.
  • 완전한 복제
    - 공간활용이 떨어진다. 모든 것이 똑같은 VM이 복제되는 것이다.
    • 실무에서는 특별한 상황이 아니면 안전한 복제를 사용하게 될 것이다.
  • 연결된 복제
    - 완전한 복제는 똑같은 용량을 가지지만, 연결된 복제는 스냅샷을 찍어, 스냅샷과 연결해주는 것이다. 원본을 어설프게 흉내내어 복제, 완전한 복제는 서로 연결성이 떨어지지만, 연결된 복제는 원본이 소스가 되고 복제본은 소스가 없어지거나 깨지면 복제본도 깨지게 된다. 다만 완전 복제가 아니니, 공간 사용이 적다.
    • 원본 스냅샹에 복제의 연결된 기반이라는 스냅샷이 생긴다.
    • 소스가 깨지거나 지워지면 복제도 사용할 수 없다.
    • 실제로 삭제해보니, 리스트에는 지워졌지만, 소스파일이 삭제가 되지 않는다.
    • 소스파일을 직접 삭제하니, 세션을 열 수 없어진다.

SSH

  • 현재 VM을 사용하고 있지만, PC에서 VM으로 복사 붙혀넣기가 안된다. 또한 지금 우리는 Redhat을 단말기로 하여 VM에 접속하여 볼 수 있지만, AWS에서는 볼 수 없다. 따라서 명령프롬프트(CMD)에서 SSH라는 도구를 이용해서 접근해야 한다.
  • SSH로 IP로 접근을 해서 VM을 조작해 보자.
  • 여기서 VirtualBox가 조금 낙후되어있다. NAT로 받은 IP가 외부 통신을 위한 IP가 아니다. 핑처럼 안에서 밖, 밖에서 안으로 들어오는 통신은 되는데, 처음부터 밖에서 안으로 들어오는 접속은 안된다.
    이것은 VirtualBox의 특징이다.
  • 그렇다면 어떻게 접속해야 하는가? 0405에 계속한다.
profile
Talking Potato

0개의 댓글