클라우드 컴퓨팅
인터넷 통신 서비스를 활용한 컴퓨팅 서비스 종류의 하나로, 원격 컴퓨터를 활용하는 기술
장점
- 경제성 : 온프레미스의 경우 이용량을 예상하여 H/W, S/W를 구입해야 함. 반면, 클라우드는 사용하고 자하는 기간만 서비스로써 사용 가능
- 유연성 : 리소스 필요 시, 필요한 만큼만 확장
- 가용성 : 하드웨어에 장애가 발생하더라도 서비스를 지속적으로 사용가능 하도록 구성 되어 있음
- 빠른 구축 속도 : 온프레미스의 경우 설계 후 H/W, S/W 조달, 배치까지 시간이 걸림. 반면, 클라우드는 제공하는 H/W, S/W를 이용하여 빠르게 시스템 구축 가능
클라우드 서비스
IaaS
Infrastructure-as-a-Service
물리적 서버(CPU, Memory, OS), 네트워크, 스토리지를 가상화하여 다수의 고객을 대상으로 유연하게 제공하는 인프라 서비스
예시 : AWS EC2
Paas
Palttform-as-a-Service
Web 서비스 또는 애플리케이션 등의 개발 및 실행을 위한 표준 플랫폼 환경을 서비스 형태로 제공하는 서비스
예시 : AWS Lambda
SaaS
Software-as-a-Service
응용프로그램을 인터넷 및 웹 브라우저를 통해 제공하는 서비스
예시 : Netflix
클라우드 활용사례
- 빅테이터 처리
대용량 데이터 저장, 고성능의 데이터 처리가 필요한 빅데이터 처리에 필요한 자원을 클라우드 서비스를 활용하여 처리
- 업무 시스템 구축
기업의 업무용 인프라를 클라우드 서비스에서 제공하는 서비스와 융합하여 효율적인 개발 -> 개발기간 단축, 편의성 향상, 가용성 향상
- 백엔드
클라우드 서비스 선정 고려사항
- 기존 서비스에 대해 명확하게 파악, 분석 후 측정하여 예산에 반영
- 서비스의 용도에 따라 다양한 네트워크 서비스 최대한 활용
- 경험있는 파트너와 함께 비용산정, 서비스 모델 리뷰
AWS
Amazon Web Service
컴퓨팅 서비스
Amazon EC2(Elastic Compute Cloud)
사용량만큼 비용을 지불하는 컴퓨팅 서비스
Amazon Auto Scaling
서버의 조건에 따라 서버를 추가/삭제를 해주는 서비스. 사용량 많은 경우 추가 생성, 사용하지 않는 경우 자동으로 삭제 가능
Amazon Lightsail
간단한 가상화 프라이빗 서버가 필요한 개발자에게 웹과 웹 앱을 배포하고 관리하는 기능과 컴퓨팅, 스토리지, 네트워크를 제공
Amazon Lambda
서버를 프로비저닝 또는 관리하지 않고도 실제로 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있는 이벤트 중심의 서버리스 컴퓨팅 서비스
네트워킹 서비스
Amazon Route 53
높은 가용성과 확장성이 뛰어난 클라우드 Domain Name System (DNS) 웹 서비스
사용자를 AWS 외부의 인프라로 라우팅하는 데도 Route 53를 사용 가능
Amazon VPC(Virtual Private Cloud)
사용자가 정의한 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 시작할 수 있도록 하는 서비스 -> 보안성과 안정성 높음
AWS Direct Connect
기존 온프레미스의 인프라와 AWS를 연결하는 전용선, 낮은 지연으로 데이터 및 정보공유를 제공하는 서비스 -> AWS 리소스에 대한 최단 경로
Amazon ELB(Elastic Load Balancer)
하나 이상의 가용 영역(AZ)에 있는 여러 대상 및 가상 어플라이언스에서 들어오는 애플리케이션 트래픽을 자동으로 분산
스토리지 서비스
Amazon S3(Simple Storage Service)
객체 스토리지 서비스. 고객은 원히는 양의 데이터를 저장하고 보호하여 클라우드 네이티브 애플리케이션 및 모바일 앱과 같은 거의 모든 사용 사례를 지원 가능한 만능 스토리지 서비스
Amazon Glacier
사용빈도가 높지 않은 데이터를 저렴한 비용으로 장기 보관할 수 있게 해주는 서비스
Amazon EBS(Elastic Block Storage)
빠른 속도로 데이터를 저장 보관할 수 있는 서비스
서버에 디스크로 추가하여 데이터 보관 제공
데이터베이스 서비스
Amazon RDS(Relational Database Services)
RDBMS를 사용자가 직접관리하지 않고 Amazon에서 제공하는 서비스를 이용하여 DB 이용 가능하게 하는 서비스
Amazon DynamoDB
NoSQL용 서비스
Amazno ElastCache
In-memory 기반의 캐시 서비스로 높은 응답속도와 신뢰성을 필요로하는 서비스에 적합한 서비스
분석 플랫폼
Amazno Kinesis
대량의 데이터를 저장 분류하는 서비스
다양한 규모의 스트리밍 데이터를 효율적으로 처리 가능
실시간 데이터 수집 가능
Amazon Redshift
데이터 웨어하우스와 데이터 레이크 전체에 걸쳐 간단하고 효율적으로 비용 모든 데이터를 분석할 수 있는 데이터 웨어하우스
애플리케이션 서비스
Amazon CloudSearch
웹 사이트 또는 애플리케이션을 위한 검색 솔루션 구축하게 해주는 서비스
Amazon SES(Simple EMail Service)
외부로 대량의 메일을 발송하는 서비스
Amazno Elastic Transcoder
동영상 인코딩 서비스
AWS 리전
AWS 리전은 다른 AWS 리전에서 격리되도록 설계 -> 내결함성 및 안정성을 달성
리전별로 지원해주는 가상머신 종류가 다양 -> 특정 서비스 지원되는지 확인 필요
Availability Zone
가용영역, 데이터 센터
같은 리전이라도 지리적으로 떨어져 있음 -> 작동 불능이 되더라도 다른 AZ에서 서비스를 재개할 수 있게 하기 위해
Edge Location
CDN 서비스인 CloudFront를 위한 캐시서버들의 모임
AWS EC2
500개가 넘는 인스턴스, 그리고 최신 프로세서, 스토리지, 네트워킹, 운영 체제 및 구매 모델의 옵션과 함께 워크로드의 요구 사항에 가장 잘 부합할 수 있도록 가장 포괄적이고 심층적인 컴퓨팅 플랫폼을 제공
기능
- 글로벌 인프라
Amazon EC2 위치는 리전과 가용 영역으로 구성. 가용 영역은 다른 가용 영역에 장애가 발생할 경우 영향을 받지 않도록 구축된 개별 지점으로, 동일 리전 내의 다른 가용 영역에 저렴하고, 지연 시간이 짧은 네트워크 연결을 제공
- 사용한 만큼 지불
- Amazon EC2 Auto Scaling으로 원활하게 확장
- Amazon EC2 플릿을 사용하면 단일 API 호출로 EC2 인스턴스 유형, 가용 영역 및 구매 모델에 걸쳐 컴퓨팅 용량을 프로비저닝하여 규모, 성능 및 비용을 최적화
- 탄력적 IP 주소로 동적 클라우드 컴퓨팅 서비스 관리
- 고성능 컴퓨팅(HPC) 클러스터를 통한 높은 처리량 및 짧은 대기 시간
인스턴스
EC2 가상화 서버
인스턴스 종료 -> 인스턴스 완전 삭제
인스턴스 중지 -> 인스턴스 실행 중지
유형
- 범용(M, T 시리즈)
균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공, 다양한 여러 워크로드에 사용 가능. 웹 서버 및 코드 리포지토리와 같이 이러한 리소스를 동등한 비율로 사용하는 애플리케이션에 적합
- 컴퓨팅 최적화(C 시리즈)
고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합. 배치 처리 워크로드, 미디어 트랜스코딩, 고성능 웹 서버, HPC(고성능 컴퓨팅), 과학적 모델링, 전용 게임 서버 및 광고 서버 엔진, 기계 학습 추론 및 기타 컴퓨팅 집약적인 애플리케이션에 적합
- 메모리 최적화(R 시리즈)
메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계
- 스토리지 최적화(I 시리즈)
로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계. 애플리케이션에 대해 대기 시간이 짧은, 수만 단위의 무작위 IOPS(초당 I/O 작업 수)를 지원하도록 최적화
EC2 구매 옵션
- On-Demand : 필요할 때 바로생성해서 사용하는 방식으로 인스턴스에 대해 초 단위 지불
- Spot : 경매 방식의 인스턴스
- Reserved : 약정을 통해 사용하는 방식
- Dedicated : 고객 전용의 하드웨어에서 인스턴스 제공
EC2 인스턴스로 Window Server 가상환경 생성
- AWS 콘솔에서 EC2 선택
- 메뉴에서 인스턴스 선택
- 인스턴스 시작
- AMI(Amazon Machine Image) 선택
인스턴스를 시작하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버, 애플리케이션)이 포함된 템플릿
프리티어가 가능한 AMI 선택
- 인스턴스 유형 선택
- 인스턴스 세부 정보 구성
오토스케일링은 여러개 사용가능
- 스토리지 추가
추가 용량을 어떻게 할 것인가
- 태그 추가
가 어떻게 검색해서 컨트롤 할것인지 검색키워드를 구분하기 위해, 대소문자 구분
- 보안 그룹 구성
0.0.0.0/0은 모든 IP에 대한 접근 허용으로 고유한 관리자 IP로 설정하는 것이 보안상 유리
윈도우 서버이기때문에 RDP 유형 사용
- 검토 및 시작
- 연결을 위한 키 생성 및 다운로드, 인스턴스 시작
- 연결
- 원격 데스크톱 파일 다운로드
- 암호 가져오기
- ~.rdp 실행
- 복사한 암호 입력
- 인증관련 예 누르기
- 연결 완료
웹서비스 접속 설정
- 서버 매니저 실행
- 기능추가
- 전부 next -> Server Roles 에서 IIS 선택
- 계속 next -> 설치
보안 설정(방화벽 설정)
- 보안 그룹 선택
- 인바운드 규칙 편집
모든 IP에 대해 웹 서비스를 위한 80포트를 열음
- 퍼블릭 IP로 접속
EC2 인스턴스로 Linux 가상환경 생성
- AMI 선택
- 윈도우랑 동일
- 보안그룹 구성
리눅스는 SSH 유형 사용
- 접속을 위한 키 생성 및 다운로드
- 리눅스는 ssh 클라이언트 프로그램을 이용해야 함
download putty
putty를 이용
연결을 위한 putty.exe, 인증을 위한 puttygen.exe 다운
- puttygen을 실행하여 pem파일로 접속을 위한 ppk 추출
- save private key 클릭
- putty.exe로 접속
- ppk 파일 추가
- public IP 입력 후 open
- 리눅스 시스템 로그인
EC2에서는 root가 아닌 ec2-user
웹서비스 설정
- httpd 패키지 설치
- 인바운드 규칙에 80 포트 열어주기
ubuntu 리눅스 환경
우분투에서의 접속은 ec2-user가 아닌 ubuntu
AMI ubuntu : 사용자이름 ubuntu - 키인증
아파치 다운 및 테스트 페이지 생성
$ sudo apt-get update
$ sudo apt-get install -y apache2
$ systemctl status apache2 or service apache2 status
$ sudo cd /var/www/html
$ echo "TEST PAGE" > index.html