CLOUD
클라우드란?
- 인터넷(네트워크)으로 접근 가능한 가상화된 서버, 프로그램, 데이터베이스를 제공하는 IT 환경
- 클라우드를 사용하면 필요한 컴퓨팅 자원을 쉽게 가져와서 쓸 수 있다.
클라우드 컴퓨팅
- 클라우드를 이용하여 컴퓨팅 자원을 사용하는 기술적인 방법
- 서버, 스토리지, 네트워크 등의 자원을 가상화하여 제공
- 장점
- 탄력성 & 확장성 : 필요에 따라 이를 확장하거나 축소할 수 있다.
( 트래픽이 몰리는 경우 유동적으로 사양을 늘릴 수 있다. ) - 비용 : 사용자가 사용한 만큼 비용을 지불한다. ( 낭비되는 리소스가 적음 )
- 안정성 : 다운타임/유지보수시간을 최소화하고 서비스를 정상적으로 유지시킬 수 있다.
- 내구도 : 여러 개의 클라우드를 사용하면 오류 및 사고발생 시점에 데이터를 안전하게 저장할 수 있다.
- 탄력성 & 확장성 : 필요에 따라 이를 확장하거나 축소할 수 있다.
클라우드 컴퓨팅 종류
1. 퍼블릭 클라우드(Public Cloud)
- 인터넷을 통해 누구나 접근할 수 있는 클라우드 서비스
- 사용자는 클라우드 공급자가 제공하는 인프라를 공유한다.
2. 프라이빗 클라우드(Private Cloud)
- 제한된 네트워크 상에서 특정 사용자만을 대상으로 하는 클라우드 서비스
3. 하이브리드 클라우드(Hybrid Cloud)
- 퍼블릭 클라우드와 프라이빗 클라우드를 결합한 형태의 서비스
- 온프레미스(물리 컴퓨터) + 클라우드(가상 컴퓨터) 로도 쓰인다고 합니다.
클라우드 서비스
- 클라우드 컴퓨팅을 기반으로 제공하는 서비스 모델
- 컴퓨팅, 데이터베이스, 스토리지, 네트워크, 보안 등 클라우드 기반으로 다양한 분야를 제공할 수 있다.
클라우드 서비스의 종류
1. IaaS(Infrastructure as a Service, 인프라 기반 서비스)
- 기본적인 컴퓨팅 인프라를 제공하는 서비스
- 가상화된 기본 자원(서버, 스토리지, 네트워크 등) 제공
- AWS의 EC2
- 장점
- 비용을 효과적으로 관리할 수 있다.
=> IT 인프라 직접 구축할 필요가 없고, 요구에 따라 자원 사용량을 조정, 사용한 만큼 비용 지불 - 인프라 확장이 빠르고 용이하다.
- 비용을 효과적으로 관리할 수 있다.
- 단점
- 복잡하다
- 퍼블릭 클라우드의 경우 보안 문제가 발생할 수 있음
2. PaaS(Platform as a Service, 플랫폼 기반 서비스)
- IaaS에서 제공하는 인프라 위에 개발, 배포, 운영을 지원하는 플랫폼을 제공 ( 더 추상화 )
- 애플리케이션 개발 및 배포에 필요한 플랫폼(미들웨어, 데이터베이스 관리 시스템, 개발 도구, 라이브러리 등) 제공
- 애플리케이션을 개발해서 업로드 하면 신속하게 배포, 운영 가능
- AWS의 Elastic BeanStalk
- 장점
- 개발 생산성을 높일 수 있다.
- 단점
- 제한된 제어 수준을 제공한다. ( 인프라에 대한 정보 제어가 어렵다 )
- 제한된 커스터마이징을 제공한다. ( 제공 업체가 제한된 범위의 서비스를 제공하므로 )
3. SaaS(Software as a Service)
- 소프트웨어 서비스 제공 모델
- 인터넷을 통해 소프트웨어 애플리케이션에 접근할 수 있다.
- Notion, Netflix, Gmail 등
- 장점
- 편리하고 쉽게 접근이 가능하다. ( 인터넷만 있으면 애플리케이션 접근 가능 )
- 자동 업데이트 ( 소프트웨어 업데이트 알아서 해줌 )
- 단점
- 성능 문제가 발생할 수 있다. ( 네트워크 환경에 따라 성능이 결정됨 )
- 접근성 ( 인터넷 연결이 불량하거나 액세스할 수 없는 경우 애플리케이션에 접근할 수 없다. )
MSA(Microservices Architecture)
- 애플리케이션을 여러 개의 작은 서비스로 나누어 구성하는 아키텍처
- 각 서비스의 개발 및 배포 등 프로세스는 독립적이며, 서비스끼리 REST API, message stream등으로 통신하는 구조
- 장점
- 배포
- 서비스별 개별 배포가 가능하다.
- 특정 서비스의 요구사항만을 반영하여, 빠르게 배포할 수 있다. - 확장
- 서비스의 대한 확장성(sacle-out)이 유리하다.
- 클라우드 기반 서비스 사용에 적합하다. - 장애
- 일부 장애가 전체 서비스로 확장될 가능성이 적다. - 새로운 기술 적용이 유연하다
- 서비스 구조 파악 및 분석이 모놀리식 구조에 비해 쉽다.
- 배포
- 단점
- 설계가 어렵다
- 통신 장애, 통신 방법, transaction 유지 등을 설계하기 어렵다. - 성능
- 서비스 간 호출 시 API를 사용하여, 통신 비용이나 Latency에 대한 이슈 존재 - 데이터 관리
- 데이터가 여러 서비스에 분산되어 조회가 어렵다.
- 데이터를 관리하기가 어렵다.
- 설계가 어렵다
AWS 서비스
- EC2
- IaaS로 크기를 조정할 수 있는 컴퓨팅 용량을 제공하는 웹 서비스
- IAM
- AWS 서비스에 대한 엑세스를 안전하게 제어하는 웹 서비스
- 사용자, 액세스 키와 같은 보안 자격 증명, 사용자와 애플리케이션이 어떤 AWS리소스에 엑세스 할 수 있는지 제어하는 권한 관리
- Route53
- AWS의 DNS
- Route53을 사용하는 이유는 다른 AWS 인프라(ELB, S3 등)에 요청을 효과적으로 라우팅할 수 있다.
- DNS + 모니터링 등으로 안정성이 보장된다고 한다.
- Elastic Load Balancer
- AWS의 네트워크 부하 분산 서비스
- L7 : Application Load Balancer ( ALB )
- 응용 프로그램과 관련된 계층으로 HTTP, FTP, DNS 등 사용자와 직접 접하는 프로토콜의 특성을 이용하는 로드밸런서
- HTTP 헤더 정보로 부하 분산을 처리할 수 있다. - L4 : Network Load Balancer ( NLB )
- Transport Layer의 특성을 이용하는 로드밸런서
- TCP, UDP를 사용하는 요청을 받아들여 부하분산을 처리한다.
- HTTP 헤더를 해석하지 못하므로 헤더를 이용한 부하 분산은 불가능 - Classic Load Balancer ( CLB )
- 외부의 요청을 받는 리스너와 요청을 분산/전달할 리소스의 집합인 대상그룹으로 구성됨
- 대상 그룹 내 리소스들은 헬스 체크(Health Check)를 활용해 주기적으로 상태를 확인받는다.
- SSL 인증서를 탑재할 수 있어 대상 그룹의 EC2를 대신하여 SSL 암호화/복호화를 대신 진행할 수 있다.
- 로드 밸런서 노드
- 가용 영역마다 하나씩 존재하며, 가용 영역에 있는 부하분산 대상에 요청을 전달한다.
AWS EC2에 HTTPS 적용하는 과정
- 도메인 제공 업체에서 도메인을 구입한다. ex) 가비아
- AWS의 Route53에 호스팅 영역을 생성한다. ( AWS의 DNS인 Route53을 사용하기 위함 )
- Route53의 호스팅 영역을 생성하면 ns레코드가 생성된다. 가비아에 가서 구입한 도메인의 ns레코드를 등록한다.
- ACM을 사용하여 SSL인증서를 발급받는다.
- ELB를 생성하고 설정한다. (ELB의 가용 영역 설정, 리스너 추가 및 HTTPS 리스너에 SSL 인증서 설정, 대상 그룹에 EC2 인스턴스 연결 )
- Route53의 A레코드를 생성하고 ELB의 DNS 이름을 매핑
- EC2 인스턴스와 ELB 보안그룹에 사용자 요청을 받도록 설정해준다. ex) HTTP(80)와 HTTPS(443) 포트 열기
CSP 비교 ( AWS vs Azure vs Google Cloud )
AWS
- 서비스 범위가 가장 넓음
- 가장 오래된 성숙한 플랫폼
- 온디맨드(사용한만큼) 비용
- 난이도가 있고, 비용 산정이 유연한만큼 복잡하다
Azure
- 마이크로소프트의 클라우드 서비스 플랫폼으로 마이크로소프트 서비스와 관련한 서비스 제공
- Office365, Windows 서버 등 기업 기술에 대한 지원이 강력함
- 엔터프라이즈 환경에 강점이 있다. => 기존 엔터프라이즈 솔루션과 호환
- 학습곡선 존재, 글로벌 리전이 AWS에 비해 적다.
GCP
- 구글의 클라우드 컴퓨팅 서비스로 빅데이터나 머신러닝 분야에 강점이 있다.
- 사용자 친화적인 인터페이스를 제공함
- 서비스 종류가 상대적으로 적고 엔터프라이즈 기능이 부족할 수 있다.
출처
https://aws-hyoh.tistory.com/134
https://aws-hyoh.tistory.com/128
https://hahahoho5915.tistory.com/71
https://library.gabia.com/contents/infrahosting/9147/
https://ko.wix.com/blog/post/software-as-a-service-saas
https://www.samsungsds.com/kr/cloud-glossary/saas.html
https://www.samsungsds.com/kr/cloud-glossary/cloud-service.html
https://www.samsungsds.com/kr/cloud-glossary/what-is-cloud.html