코딩 기록 저장소

[클라우드컴퓨팅] 5-1. 클라우드 아키텍처 설계원칙 본문

학교 공부/클라우드컴퓨팅

[클라우드컴퓨팅] 5-1. 클라우드 아키텍처 설계원칙

KimNang 2025. 2. 18. 19:45

1. 클라우드 아키텍처 설계 원칙

AWS 아키텍처 설계 원칙

- AWS 아키텍처를 설계할 때는 다음 세 가지 핵심 원칙을 반드시 고려해야 함

  • 확장성 (Scalability)
    - AWS는 사용자가 갑자기 많아져도 성능이 떨어지지 않게 시스템을 확장할 수 있음
  • 신뢰성 (Reliability)
    - AWS는 장애가 발생하더라도 서비스가 중단되지 않도록 설계되어 있음
  • 비용 효율성 (Cost Efficiency)
    - AWS는 자원을 미리 사두는 대신, 필요한 만큼만 사용하고 비용을 지불함

 

2. 확장성

- 클라우드의 확장성은 비즈니스 요구사항에 따라 IT 리소스를 유연하게 확장하거나 축소할 수 있는 핵심 특징

확장성 : 비즈니스 성장에 대비하는 핵심 전략

- 비즈니스 요구에 맞춰 컴퓨팅 리소스를 조정할 수 있는 핵심 기능

- EC2 인스턴스, EBS 볼륨, RDS 데이터베이스와 같은 핵심 리소스들을 비즈니스 상황에 맞춰 유연하게 확장하거나 축소 가능함

- 최적의 성능과 비용 효율성을 동시에 달성할 수 있음

 

확장성의 비즈니스 이점
  • 비용 절감 효과
    - 실제 사용한 만큼만 지불함
    - 필요한 시기에만 시스템을 확장하여 비용을 아낄 수 있음
  • 고객 만족도 향상
    - 접속자가 많을 때 자동으로 시스템 용량을 늘려 대기 시간을 줄이고 서비스 품질을 유지
  • 사업 기회 확대
    - 주문이 늘어나도 즉시 대응할 수 있어서, 새로운 사업 기회를 놓치지 않음

 

EBS (Elastic Block Store)

- AWS에서 제공하는 디스크 드라이브

  • 개인 전용 저장소
    - EBS는 당신만 사용할 수 있는 개인 전용 저장고
    - AWS에서 사용하는 전문 디스크 드라이브
  • 안전한 보관
    - AWS에서는 EBS가 창고 역할로 데이터를 안전하게 보관해줌
  • 안전한 데이터 저장
    - AWS 가상 컴퓨터(EC2)의 컴퓨터가 꺼지면 데이터가 삭제되는 임시 저장공간과 달리, EBS는 컴퓨터가 꺼져도 데이터를 안전하게 보관함

 

Volume이란?

- EBS로 만든 저장 공간 하나하나를 말함

  • 용도 구분하여 저장
    - 데이터를 용도에 따라 구분해서 저장함
  • 크기 조절 가능
    - 필요에 따라 크기를 조절할 수 있음
  • 다양한 종류
    - "일반 저장", "빠르게 꺼낼 수 있는 저장", "오랫동안 보관하는 저장" 등 필요한 용도에 따라 선택 가능

 

EBS 용량 확장

- AWS의 가상 하드 디스크로, 데이터를 저장하는 공간

  • 필요에 따라 용량을 늘리는 방법
    1. 볼륨 선택 및 수정
      - 확장할 볼륨을 선택하고 '볼륨 수정'옵션을 클릭함
    2. 용량 증가
      - 새로운 용량을 입력하고 변경 사항을 적용함
    3. 변경 사항 확인
      - 볼륨 상태가 '수정 완료'로 변경되는 것을 확인함
  • EBS 용량 확장 실습
    1. AWS 사이트 접속해 로그인 후 서비스-컴퓨팅-EC2클릭하여 접속
    2. 인스턴스 시작 버튼을 누른 후 다음과 같이 설정
      이름 : cloud_test01
      운영체제 : Ubuntu
      키 페어 : 키 페어 없이 계속 진행
    3. 인스턴스 생성 완료되면 방금 생성한 인스턴스에 연결함
      - EC2의 저장장치 정보를 조회함
      - 디스크 공간 사용량을 확인하기 위해 사용 -h 옵션은 바이트 대신 MB, GB 등 가독성이 높은 단위로 표시
      • /dev/root (주 저장소)
        - 컴퓨터의 "주 저장소"로 시스템 파일과 개인 파일이 저장됨
        - 전체 크기 : 6.8GB
        - 사용 중 : 1.7GB (26%)
        - 여유 공간 : 5.1GB
        - 마운트 위치 : / (루트 폴더)
      • tmpfs (임시 저장소)
        - 메모리 기반의 임시 저장 공간
        - 작은 크기의 임시 저장소
        - 컴퓨터 작동 중에만 사용
        - 시스템 문제해결용 공간
      • 추가 저장 장치
        - /dev/xvda16, /dev/xvda15 저장소 정보 :
        - xvda16 : 881MB 중 76MB 사용
        - xvda15 : 105MB 중 6.1MB 사용
    4. 새로운 창을 열어서 AWS 사이트 접속 후 EC2 클릭하고 '볼륨'을 선택함
    5. 볼륨의 체크박스를 선택한 후 볼륨 수정을 통해 기존 8G에서 10G로 볼륨 크기를 수정함
    6. 새로고침 후 볼륨 크기가 10GB로 수정 되었는지 확인 후, 3번 창으로 돌아가 df -h 명령어를 다시 한번 입력함
      - AWS 콘솔에서 EBS 볼륨크기를 수정했더라도, 운영체제 레벨에서 추가 설정이 필요함
      - 실제 파일 시스템에 새로운 용량이 반영되지 않은 상태이므로, 파일 시스템 확장 명령어를 실행해야 함
      - 그대로임
    7. lsblk를 입력해 저장장치 구성 확인함
      - 이 명령어는 컴퓨터에 연결된 저장 장치(디스크)가 어떻게 구성되어 있는지 보여줌
      - 현재 디스크 전체 크기는 10GB이지만, 주공간(xvda1)은 7GB로 제한되어 있어서 나머지 3GB가 비어 있음
      - 추가 용량을 사용하려면 xvda1을 10GB로 확장해야함
      • NAME (저장 장치 이름) : 이 컴퓨터에서 사용하는 주 저장 장치의 이름
        - xvda1, xvda14, xvda15, xvda16 : 이 저장 장치를 나눈 작은 공간(파티션)들
      • SIZE (저장 공간)
        -  xvda(디스크 전체) : 10G
        - xvda1 : 7GB - 운영체제(Ubuntu) 설치 공간
        - xvda14, xvda15, xvda16 : 각각 4MB, 106MB, 913MB - 부팅 관련 파일 저장
      • MOUNTPOINTS (연결 위치)
        - /(루트 디렉토리) xvda1에 연결
        - /boot/efi : xvda15에 연결
        - /boot : xvda16에 연결
      • 주요 파라미터
        - RM (탈착 가능 여부) : 0 = 고정장치, 1 = 분리가능(USB)
        - RO (읽기 전용 여부) : 0 = 읽기/쓰기 가능 1 = 읽기만 가능
        - TYPE : disk(물리 장치), part(파티션), loop(특정 프로그램이 사용하는 임시 저장소)
      • MAJ:MIN
        - MAJ : 장치의 종류를 나타냄. 하드디스크 장치는 202, 가상 디스크 장치는 7 등으로 고유 번호가 지정됨
        - MIN : 같은 종류 안에서 개별 장치를 구분하기 위한 고유 번호. 디스크(xvda)와 그 디스크의 파티션들(xvda1, xvda14 등)을 구별하기 위해 사용
    8. 저장 공간을 더 크게 사용하도록 설정함
      - 디스크 확장 후, 기존 사용하던 공간만큼 제한된 파티션을 새롭게 늘려주는 역할을 함
      - 파티션 크기가 146,771,983 섹터에서 188,722,287 섹터로 늘어남 (섹터1개의 크기는 약 4k)
      sudo growpart /dev/xvda 1
      • CHANGED
        - 작업이 성공적으로 이루어졌다는 표시
      • partition = 1
        - 첫 번째 파티션이 크기를 늘린 대상. xvda1
        - start=2099200 : 파티션이 디스크의 2099200번째 블록에서 데이터 저장을 시작하도록 설정됐다는 의미
      • old: size=14677183 end=167771182
        - size : 기존에사용하던크기 (작은저장공간)
        - end : 이전 파티션의 끝 위치
      • new: size=18872287 end=20971486
        - size : 새롭게늘어난크기 (더많은저장공간)
        - end : 변경된 이후 파티션의 끝 위치
    9. 다음 명령어를 통해 컴퓨터에게 사용 가능하다는 것을 알림
      sudo resize2fs /dev/xvda1
      - sudo : 컴퓨터 관리자 모드로 실행하라는 뜻. 중요한 작업을 할 때 관리자 권한이 필요하기 때문에 앞에 붙임
      - resize2fs : 디스크의 공간을 다시 정리해서 크기를 변경하라는 의미
      - /dev/xvda1 : 변경할 디스크 공간의 이름. /dev는 컴퓨터에서 장치를 의미, xvda1은 이 컴퓨터의 디스크에서 한 부분을 나타냄
      • 실행 결과
        - "Filesystem at /dev/xvda1 is mounted on /" xvda1이라는 공간이 /(루트디렉토리)에서 사용되고 있다는 의미
        - "on-line resizing required" 컴퓨터가 실행중인 상태에서 이 공간을 확장해야 한다는 메시지
        - "The filesystem on /dev/xvda1 is now ... blocks long" 이 메시지는 파일 시스템 크기가 성공적으로 확장 되었음을 보여줌
        - 2359035 (4k) blocks: 파일 시스템 크기를 블록단위로 표시한 값
    10. df -h로 저장용량이 확장 된것을 확인함

3. 신뢰성

- 시스템이 장애 상황에서도 지속적으로 작동할 수 있도록 보장함

신뢰성 : 안정적인 비즈니스 운영의 기반

- 기업 환경에서 신뢰성은 서비스 중단으로 인한 손실을 최소화하고, 고객 신뢰를 유지하는 데 필수적

  • 자동 복구 메커니즘
    - 시스템 장애 발생 시 자동으로 복구되는 메커니즘을 구현함
  • 지속적인 모니터링
    - 시스템 상태를 실시간으로 모니터링하여 잠재적 문제를 사전에 감지함

 

신뢰성과 비즈니스의 연속성

- 비즈니스 연속성 유지에 핵심적인 역할
- 시스템 장애나 자연 재해와 같은 예기치 못한 상황에서도 서비스를 지속적으로 제공
- AWS의 신뢰성 기능 활용으로 기업은 고객 신뢰를 유지하고, 브랜드 가치를 보호하며, 잠재적인 재정적 손실을 방지할 수 있음

  • 위험 완화
    - 다양한 장애 시나리오에 대비하여 비즈니스 리스크를 줄임
  • 가동 시간 최대화
    - 서비스 중단 시간을 최소화하여 고객 만족도를 유지함
  • 성과 향상
    - 안정적인 시스템 운영으로 비즈니스 성과를 개선함
  • 신뢰 구축
    - 안정적인 서비스 제공으로 고객과 파트너의 신뢰를 강화함

 

CloudWatch 실습

- AWS 리소스와 애플리케이션을 실시간으로 모니터링하는 핵심 서비스
- 이 도구를 통해 시스템 성능, 운영 상태 및 리소스 사용량을 종합적으로 관찰할 수 있음

  • Auto Recovery : 자동 복구 기능 실습
    1. EC2 인스턴스 선택
      - AWS 콘솔에서 Auto Recovery를 적용할 EC2 인스턴스를 선택
    2. CloudWatch 모니터링 활성화
      - '상세 모니터링' 옵션을 활성화하여 인스턴스 상태를 지속적으로 모니터링함
    3. Auto Recovery 규칙 생성
      - CloudWatch에서 새 경보를 생성하고, 장애 발생시 재부팅되도록 설정
    4. 테스트 및 확인
      - 인위적으로 장애를 발생시켜 Auto Recovery 기능이 제대로 작동하는지 확인
  • 실습
    1. EC2 인스턴스의 체크박스를 선택하고 모니터링 탭을 선택함


    2. CPU 사용률에서 지표에서 보기를 선택함


    3. 종 모양 아이콘을 선택하여 화면 아래로 스크롤 후 경보 설정
    4. 다음으로 넘긴 후 경보 발생시 이메일로 알림을 보내는 기능 제거
    5.  CPU 사용량이 80% 초과하는 경우 자동으로 EC2를 재부팅하는 복구 작업 설정
    6. 경보 이름 설정 후 다음 클릭
    7. 화면 아래로 스크롤 한 후 '경보 생성' 버튼 클릭
    8. EC2 인스턴스에 연결한 후 소프트웨어 목록 새롭게 업데이트 함
    9. CPU, 메모리, 저장 장치 등의 장애를 테스트하는 프로그램을 설치함
      sudo apt install stress -y

    10. CPU 4개에 계산을 시켜서 사용률을 높임
      stress --cpu 4
    11. AWS 사이트에서 서비스 - 관리 및 거버넌스 - CloudWatch 선택
    12.  모든 경보 - AlertTest를 선택해 CPU 사용량을 확인함


    13. 새로 고침 버튼 일정 시간마다 눌러 확인함
      - CPU 사용량이 점점 증가하고, 5분 이상 CPU 사용량이 80% 초과면 경보를 발생함
      - 이때 이 창을 닫지 말고 Ubuntu 창으로 이동함
    14. Ubuntu 화면으로 돌아가 재부팅 확인
    15. CloudWatch 화면도 새로고침 버튼으로 확인함
      - EC2 자동으로 재부팅 되었기 때문에 CPU 사용량이 자동으로 감소됨
    16. 우분투 화면에서 uptime으로 EC2 시스템의 상태를 확인함
      • 시스템 시간 (08:31:50) : 현재 컴퓨터의 시간을 나타냄
      • 업타임 상태 (up 4 min) : 컴퓨터가 켜진 후 경과 시간, 4분 전에 부팅되었음을 보여줌
      • 사용자 현황 (1 user) : 현재 1명의 사용자(계정)가 시스템에 접속 중
      • CPU 로드 평균 (load average: 0.91, 0.40, 0.15) 

 

4. 비용 효율성

- 사용한 만큼만 지불하는 종량제 과금 모델을 통해 초기 투자 비용 최소화

비용 효율성 : 컴퓨터 자원을 똑똑하게 사용

- 필요한 만큼만 컴퓨터 자원을 사용하고 그만큼만 비용을 내는 것

- 웹사이트를 운영할 때 방문자가 적은 새벽엔 적은 컴퓨터 자원을, 방문자가 많은 낮에는 더 많은 자원을 사용하고 그에 따라 비용을 지불하는 방식

  • 필요한 만큼만 사용하기
    - 방문자가 많으면 더 많이 쓰고, 적으면 적게 써서 불필요한 비용 아낌
  • 미리 예약하고 할인받기
    - 장기간 사용 계획이 있다면, 미리 예약해서 더 저렴한 가격으로 이용할 수 있음
    - 1년이나 3년 약정으로 예약하면 큰 할인 받을 수 있음
  • 사용량 체크하고 절약하기
    - AWS에서 제공하는 도구로 얼마나 많은 자원을 사용했는지 확인하고 절약할 방법을 찾을 수 있음
AWS Cost Explorer 실습
  •  AWS Cost Explorer
    -  AWS Cost Explorer는 AWS 클라우드 비용을 쉽게 분석하고 모니터링할 수 있는 강력한 도구
    - 과다 지출이 발생할 수 있는 영역을 신속하게 파악
    - AWS 사용 최적화하고 비용을 보다 효과적으로 통제할 수 있음
  • AWS Cost Explorer 실습
    1. AWS 사이트에 접속하여 로그인 후 오른쪽 위의 프로필 클릭 후 '결제 및 비용관리'를 선택함
    2. 왼쪽에서 'Cost Explorer'를 선택함
      - AWS 비용 및 사용량이 조회됨
      • 비용 및 사용량 그래프
        - 화면 상단에 위치한 그래프는 특정 기간의 클라우드 서비스 비용을 시각화함
        - 현재 총 비용, 그래프 축에는 비용($)과 시간이 표시됨
      • 월별 평균 비용 분석
        - 그래프 오른쪽에 표시된 "월별 평균 비용"은 선택된 기간의 월평균 비용을 보여줌
      • 비용 및 사용량 세부 분석표
        - 화면 하단의 표에서는 총합계와 서비스별 세부 비용 데이터를 확인할 수 있음
      • CSV 데이터 추출 
        - 표 하단의 "CSV로 다운로드" 기능을 통해 보고서 데이터를 외부 분석 도구에서 활용할 수 있음
    3. 프리 티어를 선택함
      - 클라우드 플랫폼의 Free Tier (무료 사용 계층) 사용량 모니터링 페이지가 조회됨
      - 사용자가 제공받은 클라우드 서비스의 무료 사용 한도를 효과적으로 모니터링하고 관리하는 방법
      • 화면 상단 : 요약 섹션
        - MTD(Month-To-Date) 사용량 초과 서비스 확인
      • 사용량 Free Tier 요약표
        - 서비스별 무료 제공 한도
        - 현재 사용량과 MTD 사용량 비율
        - 막대 그래프로 시각화된 사용량
      • 사용량 모니터링 핵심 포인트
        - 빨간색 막대 : 무료 한도 초과
        - 파란색 막대 : 한도 내 사용량
        - 초과 서비스 즉시 확인 가능
      • 권장 관리 방안
        - 초과 서비스 사용량 관리
        - 비용 발생 알림 설정
        - 정기적인 모니터링 실행
    4. 예산을 선택한 후 '예산 생성' 버튼 클릭
    5. 비용 초과 알림을 받을 이메일 주소를 입력하고 '예산 생성' 버튼을 선택
      - 예상치 못한 비용 발생을 방지하기 위한 중요한 단계
      - 설정이 완료되면, AWS 클라우드 서비스에서 비용이 발생할 때마다 지정된 메일로 실시간 알림이 전송됨
      - 비용을 효과적으로 모니터링하고 관리할 수 있음
    6. EC2 페이지로 이동함
      - 리소스의 상태와 사용량을 보여주는 페이지
      - 현재 사용 중인 가상 서버와 관련된 정보를 확인하고, 비용 초과나 서비스 문제를 미리 파악할 수 있게 도와줌
      - 스냅샷 저장소가 이미 100% 사용되어 있으면 추가 비용이 발생할 수 있으므로 즉시 조치가 필요함
    7. 사용 중인 리소스를 선택하여 삭제함 (cloud_test01 인스턴스를 삭제함)