- Linux
- Operating_System
- app
- Algorithm
- c++
- 티스토리챌린지
- codingTest
- 2023_1st_Semester
- Android
- Baekjoon
- Personal_Study
- Unix_System
- Univ._Study
- programmers
- datastructure
- Python
- tensorflow
- C
- Database_Design
- Java
- 리눅스마스터2급
- kubeflow
- 자격증
- SingleProject
- Kubernetes
- 오블완
- Image_classification
- cloud_computing
- Artificial_Intelligence
- study
코딩 기록 저장소
[클라우드컴퓨팅] 5-1. 클라우드 아키텍처 설계원칙 본문
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의 가상 하드 디스크로, 데이터를 저장하는 공간
- 필요에 따라 용량을 늘리는 방법
- 볼륨 선택 및 수정
- 확장할 볼륨을 선택하고 '볼륨 수정'옵션을 클릭함 - 용량 증가
- 새로운 용량을 입력하고 변경 사항을 적용함 - 변경 사항 확인
- 볼륨 상태가 '수정 완료'로 변경되는 것을 확인함
- 볼륨 선택 및 수정
- EBS 용량 확장 실습
- AWS 사이트 접속해 로그인 후 서비스-컴퓨팅-EC2클릭하여 접속
- 인스턴스 시작 버튼을 누른 후 다음과 같이 설정
이름 : cloud_test01
운영체제 : Ubuntu
키 페어 : 키 페어 없이 계속 진행 - 인스턴스 생성 완료되면 방금 생성한 인스턴스에 연결함
- 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 사용
- /dev/root (주 저장소)
- 새로운 창을 열어서 AWS 사이트 접속 후 EC2 클릭하고 '볼륨'을 선택함
- 볼륨의 체크박스를 선택한 후 볼륨 수정을 통해 기존 8G에서 10G로 볼륨 크기를 수정함
- 새로고침 후 볼륨 크기가 10GB로 수정 되었는지 확인 후, 3번 창으로 돌아가 df -h 명령어를 다시 한번 입력함
- AWS 콘솔에서 EBS 볼륨크기를 수정했더라도, 운영체제 레벨에서 추가 설정이 필요함
- 실제 파일 시스템에 새로운 용량이 반영되지 않은 상태이므로, 파일 시스템 확장 명령어를 실행해야 함
- 그대로임 - 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 등)을 구별하기 위해 사용
- NAME (저장 장치 이름) : 이 컴퓨터에서 사용하는 주 저장 장치의 이름
- 저장 공간을 더 크게 사용하도록 설정함
- 디스크 확장 후, 기존 사용하던 공간만큼 제한된 파티션을 새롭게 늘려주는 역할을 함
- 파티션 크기가 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 : 변경된 이후 파티션의 끝 위치
- CHANGED
- 다음 명령어를 통해 컴퓨터에게 사용 가능하다는 것을 알림
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: 파일 시스템 크기를 블록단위로 표시한 값
- 실행 결과
- df -h로 저장용량이 확장 된것을 확인함
- AWS 사이트 접속해 로그인 후 서비스-컴퓨팅-EC2클릭하여 접속
3. 신뢰성
- 시스템이 장애 상황에서도 지속적으로 작동할 수 있도록 보장함
신뢰성 : 안정적인 비즈니스 운영의 기반
- 기업 환경에서 신뢰성은 서비스 중단으로 인한 손실을 최소화하고, 고객 신뢰를 유지하는 데 필수적
- 자동 복구 메커니즘
- 시스템 장애 발생 시 자동으로 복구되는 메커니즘을 구현함 - 지속적인 모니터링
- 시스템 상태를 실시간으로 모니터링하여 잠재적 문제를 사전에 감지함
신뢰성과 비즈니스의 연속성
- 비즈니스 연속성 유지에 핵심적인 역할
- 시스템 장애나 자연 재해와 같은 예기치 못한 상황에서도 서비스를 지속적으로 제공
- AWS의 신뢰성 기능 활용으로 기업은 고객 신뢰를 유지하고, 브랜드 가치를 보호하며, 잠재적인 재정적 손실을 방지할 수 있음
- 위험 완화
- 다양한 장애 시나리오에 대비하여 비즈니스 리스크를 줄임 - 가동 시간 최대화
- 서비스 중단 시간을 최소화하여 고객 만족도를 유지함 - 성과 향상
- 안정적인 시스템 운영으로 비즈니스 성과를 개선함 - 신뢰 구축
- 안정적인 서비스 제공으로 고객과 파트너의 신뢰를 강화함
CloudWatch 실습
- AWS 리소스와 애플리케이션을 실시간으로 모니터링하는 핵심 서비스
- 이 도구를 통해 시스템 성능, 운영 상태 및 리소스 사용량을 종합적으로 관찰할 수 있음
- Auto Recovery : 자동 복구 기능 실습
- EC2 인스턴스 선택
- AWS 콘솔에서 Auto Recovery를 적용할 EC2 인스턴스를 선택 - CloudWatch 모니터링 활성화
- '상세 모니터링' 옵션을 활성화하여 인스턴스 상태를 지속적으로 모니터링함 - Auto Recovery 규칙 생성
- CloudWatch에서 새 경보를 생성하고, 장애 발생시 재부팅되도록 설정 - 테스트 및 확인
- 인위적으로 장애를 발생시켜 Auto Recovery 기능이 제대로 작동하는지 확인
- EC2 인스턴스 선택
- 실습
- EC2 인스턴스의 체크박스를 선택하고 모니터링 탭을 선택함
- CPU 사용률에서 지표에서 보기를 선택함
- 종 모양 아이콘을 선택하여 화면 아래로 스크롤 후 경보 설정
- 다음으로 넘긴 후 경보 발생시 이메일로 알림을 보내는 기능 제거
- CPU 사용량이 80% 초과하는 경우 자동으로 EC2를 재부팅하는 복구 작업 설정
- 경보 이름 설정 후 다음 클릭
- 화면 아래로 스크롤 한 후 '경보 생성' 버튼 클릭
- EC2 인스턴스에 연결한 후 소프트웨어 목록 새롭게 업데이트 함
- CPU, 메모리, 저장 장치 등의 장애를 테스트하는 프로그램을 설치함
sudo apt install stress -y - CPU 4개에 계산을 시켜서 사용률을 높임
stress --cpu 4 - AWS 사이트에서 서비스 - 관리 및 거버넌스 - CloudWatch 선택
- 모든 경보 - AlertTest를 선택해 CPU 사용량을 확인함
- 새로 고침 버튼 일정 시간마다 눌러 확인함
- CPU 사용량이 점점 증가하고, 5분 이상 CPU 사용량이 80% 초과면 경보를 발생함
- 이때 이 창을 닫지 말고 Ubuntu 창으로 이동함 - Ubuntu 화면으로 돌아가 재부팅 확인
- CloudWatch 화면도 새로고침 버튼으로 확인함
- EC2 자동으로 재부팅 되었기 때문에 CPU 사용량이 자동으로 감소됨 - 우분투 화면에서 uptime으로 EC2 시스템의 상태를 확인함
- 시스템 시간 (08:31:50) : 현재 컴퓨터의 시간을 나타냄
- 업타임 상태 (up 4 min) : 컴퓨터가 켜진 후 경과 시간, 4분 전에 부팅되었음을 보여줌
- 사용자 현황 (1 user) : 현재 1명의 사용자(계정)가 시스템에 접속 중
- CPU 로드 평균 (load average: 0.91, 0.40, 0.15)
- EC2 인스턴스의 체크박스를 선택하고 모니터링 탭을 선택함
4. 비용 효율성
- 사용한 만큼만 지불하는 종량제 과금 모델을 통해 초기 투자 비용 최소화
비용 효율성 : 컴퓨터 자원을 똑똑하게 사용
- 필요한 만큼만 컴퓨터 자원을 사용하고 그만큼만 비용을 내는 것
- 웹사이트를 운영할 때 방문자가 적은 새벽엔 적은 컴퓨터 자원을, 방문자가 많은 낮에는 더 많은 자원을 사용하고 그에 따라 비용을 지불하는 방식
- 필요한 만큼만 사용하기
- 방문자가 많으면 더 많이 쓰고, 적으면 적게 써서 불필요한 비용 아낌 - 미리 예약하고 할인받기
- 장기간 사용 계획이 있다면, 미리 예약해서 더 저렴한 가격으로 이용할 수 있음
- 1년이나 3년 약정으로 예약하면 큰 할인 받을 수 있음 - 사용량 체크하고 절약하기
- AWS에서 제공하는 도구로 얼마나 많은 자원을 사용했는지 확인하고 절약할 방법을 찾을 수 있음
AWS Cost Explorer 실습
- AWS Cost Explorer
- AWS Cost Explorer는 AWS 클라우드 비용을 쉽게 분석하고 모니터링할 수 있는 강력한 도구
- 과다 지출이 발생할 수 있는 영역을 신속하게 파악
- AWS 사용 최적화하고 비용을 보다 효과적으로 통제할 수 있음 - AWS Cost Explorer 실습
- AWS 사이트에 접속하여 로그인 후 오른쪽 위의 프로필 클릭 후 '결제 및 비용관리'를 선택함
- 왼쪽에서 'Cost Explorer'를 선택함
- AWS 비용 및 사용량이 조회됨- 비용 및 사용량 그래프
- 화면 상단에 위치한 그래프는 특정 기간의 클라우드 서비스 비용을 시각화함
- 현재 총 비용, 그래프 축에는 비용($)과 시간이 표시됨 - 월별 평균 비용 분석
- 그래프 오른쪽에 표시된 "월별 평균 비용"은 선택된 기간의 월평균 비용을 보여줌 - 비용 및 사용량 세부 분석표
- 화면 하단의 표에서는 총합계와 서비스별 세부 비용 데이터를 확인할 수 있음 - CSV 데이터 추출
- 표 하단의 "CSV로 다운로드" 기능을 통해 보고서 데이터를 외부 분석 도구에서 활용할 수 있음
- 비용 및 사용량 그래프
- 프리 티어를 선택함
- 클라우드 플랫폼의 Free Tier (무료 사용 계층) 사용량 모니터링 페이지가 조회됨
- 사용자가 제공받은 클라우드 서비스의 무료 사용 한도를 효과적으로 모니터링하고 관리하는 방법
- 화면 상단 : 요약 섹션
- MTD(Month-To-Date) 사용량 초과 서비스 확인 - 사용량 Free Tier 요약표
- 서비스별 무료 제공 한도
- 현재 사용량과 MTD 사용량 비율
- 막대 그래프로 시각화된 사용량 - 사용량 모니터링 핵심 포인트
- 빨간색 막대 : 무료 한도 초과
- 파란색 막대 : 한도 내 사용량
- 초과 서비스 즉시 확인 가능 - 권장 관리 방안
- 초과 서비스 사용량 관리
- 비용 발생 알림 설정
- 정기적인 모니터링 실행
- 화면 상단 : 요약 섹션
- 예산을 선택한 후 '예산 생성' 버튼 클릭
- 비용 초과 알림을 받을 이메일 주소를 입력하고 '예산 생성' 버튼을 선택
- 예상치 못한 비용 발생을 방지하기 위한 중요한 단계
- 설정이 완료되면, AWS 클라우드 서비스에서 비용이 발생할 때마다 지정된 메일로 실시간 알림이 전송됨
- 비용을 효과적으로 모니터링하고 관리할 수 있음 - EC2 페이지로 이동함
- 리소스의 상태와 사용량을 보여주는 페이지
- 현재 사용 중인 가상 서버와 관련된 정보를 확인하고, 비용 초과나 서비스 문제를 미리 파악할 수 있게 도와줌
- 스냅샷 저장소가 이미 100% 사용되어 있으면 추가 비용이 발생할 수 있으므로 즉시 조치가 필요함 - 사용 중인 리소스를 선택하여 삭제함 (cloud_test01 인스턴스를 삭제함)
- AWS 사이트에 접속하여 로그인 후 오른쪽 위의 프로필 클릭 후 '결제 및 비용관리'를 선택함
'학교 공부 > 클라우드컴퓨팅' 카테고리의 다른 글
[클라우드컴퓨팅] 5-3. RDS와 NoSQL (0) | 2025.02.26 |
---|---|
[클라우드컴퓨팅] 5-2. 클라우드 아키텍처 구성요소 (0) | 2025.02.19 |
[클라우드컴퓨팅] 4-8. 클라우드 스토리지 EBS (0) | 2025.02.17 |
[클라우드컴퓨팅] 4-7. 클라우드 스토리지 S3 (0) | 2025.02.17 |
[클라우드컴퓨팅] 4-6. 클라우드 스토리지 (0) | 2025.02.16 |