클라우드 서비스 개요
AWS란?
AWS(Amazon Web Services)는 전 세계적으로 분포한 데이터 센터에서 200개가 넘는 완벽한 기능의 서비스를 제공하는 세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드 플랫폼이다. 빠르게 성장하는 스타트업, 가장 큰 규모의 엔터프라이즈, 주요 정부 기관을 포함하여 수백만 명의 고객이 AWS를 사용하여 비용을 절감하고, 민첩성을 향상시킬 수 있다.
클라우드 컴퓨팅
IT 리소스를 인터넷을 통해 온디맨드(필요한 만큼)로 제공하고 사용한 만큼 비용을 지불하는 방식이다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신에 AWS와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, DB와 같은 기술 서비스에 엑세스 한다.
클라우드 컴퓨팅의 이점
- 민첩성
- 탄력성
- 비용 절감
- On demend
- 관리 용이성
클라우드 유형
- On premises(own server) : 클라우드를 사용하지 않는 일반 서버, 모든 것을 관리
- IaaS(virtual machines)
- PaaS(app service)
- SaaS(O365)
클라우드 기본 용어
가상화
가상화는 물리적 컴퓨터 하드웨어를 보다 효율적으로 활용할 수 있도록 해주는 프로세스이며, 이는 클라우드 컴퓨팅의 기반을 제공하는 기술이다.
가상 머신
가상 머신(Virtual Machines)은 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상 환경이다. 일반적으로 VM의 구성, 가상 하드 드라이브의 스토리지, 그리고 특정 시점에 해당 상태를 유지하는 VM의 일부 스냅샷을 포함한 다수의 파일들로 구성되어 있다.
스냅샷
스냅샷은 마치 사진 찍듯이 특정 시점에 스토리지 파일 시스템을 포착해 보관하는 기술이다. Windows OS의 복원 지점과 같이 장애나 데이터 손상 시 스냅샷을 생성한 시점으로 데이터를 복구할 수 있다. 스냅샷은 원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과 달리 초기 생성 시 혹은 데이터의 변경이 있기 전까지는 스토리지의 공간을 차지하지 않는다. 메타데이터의 복사본에 해당하기 때문에 생성하는 데 오랜 시간이 걸리지 않고, 장애 상황이 발생해도 빠르게 데이터를 복원할 수 있다.
데이터 센터
데이터 센터는 수많은 서버들을 한 곳에 모아 네트워크로 연결해 놓은 시설이다.
- Region(지역)
- 데이터 센터가 위치한 지역
- IT 리소스를 생성할 Region은 선택 가능
- 대상 고객의 지역과 자원 생성할 Region이 최대한 가까워져야 함
- 국가마다 자원사용 비용이 다름
- Availability Zone(가용영역)
- 하나의 Region은 두 개 이상의 Availability Zone으로 구성되며, 줄여서 AZ로 표시
EC2
용어
- 인스턴스 : 가상 컴퓨팅 환경
- Amazon 머신 이미지(AMI) : 운영체제와 소프트웨어들이 구성된 상태의 템플릿으로 인스턴스를 쉽게 만들 수 있음
- 인스턴스 유형 : 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
- 키 페어 : 인스턴스 로그인 정보 보호
- 인스턴스 스토어 볼륨 : 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제
- Amazone Elastic Block Store(Amazon EBS) : Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터를 저장
- 보안 그룹 : 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
- 탄력적 IP 주소(EIP) : 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
- 태그 : 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
- Virtual Private Clouds(VPC) : AWS 클라우드에서는 놀리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크
실습 - 인스턴스 생성 및 서버 접속
- AWS ec2 대시보드 접속
- 키 페어 생성 : .ssh에 Key 파일 저장
- ec2 인스턴스 생성 : 생성한 키 페어로 설정
- 커맨드 실행 : 윈도우라서 git bash를 사용
- Key file 권한 변경 : chmod 400 "key.pem"
- 서버 접속 : ssh -i Key.pem ec2-user@public_DNS
실습 - 탄력적 IP
IP를 고정적으로 사용해야할 경우 탄력적 IP를 사용할 수 있다.
- 탄력적 IP 배너 접속
- 탄력적 IP 생성
- 탄력적 IP 주소 연결 : 생성했던 인스턴스와 연결
- 서버 접속 : ssh -i Key.pem ec2-user@15.164.36.191
Elasticbeanstalk
Elastic Beanstalk를 사용하면 애플리케이션을 실행하는 인프라에 대해 자세히 알지 못해도 AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있다. 또한 선택 또는 제어데 대한 제한 없이 관리 복잡성을 줄일 수 있으며, 애플리케이션을 업로드하기만 하면 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리한다. Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원한다.
실습
진행하기에 앞서 강의를 따라 실습을 진행하던 중 Elasticbeanstalk를 생성하였지만, 상태가 Unknown이 되어버리고 환경이 종료돼 버렸다. 그 사이 슬랙에 이미 해결법을 올려주신 착한 분이 계셔서 해결할 수 있었다. 아래 사이트와 같이 IAM의 역할을 생성하고 환경을 재생성해 주니 올바르게 생성되었고, 강의처럼 ec2 인스턴스가 하나 생성되었다.
- 위의 링크의 설명에 따라 IAM 역할 생성 (신뢰 코드는 역할 생성 후 변경 가능)
- AWS Elasticbeanstalk 대시보드 접속
- Elasticbeanstalk 생성 : 키 페어와 역할을 올바르게 지정하여 생성
- Elasticbeanstalk가 생성되면 ec2 하나가 추가로 생성
- 서버 접속 : ssh -i Key.pem ec2-user@ 3.37.106.30, 서버 접속 방법은 ec2와 같음
'[프로그래머스] 데이터 엔지니어링 데브코스 3기 > TIL(Today I Learn)' 카테고리의 다른 글
[TIL - 28일 차] AWS 클라우드 (3) (0) | 2024.05.01 |
---|---|
[TIL - 27일 차] AWS 클라우드 (2) (0) | 2024.04.30 |
[TIL - 25일 차] 데이터 웨어하우스와 SQL과 데이터 분석 (5) (0) | 2024.04.26 |
[TIL - 24일 차] 데이터 웨어하우스와 SQL과 데이터 분석 (4) (0) | 2024.04.25 |
[TIL - 23일 차] 데이터 웨어하우스와 SQL과 데이터 분석 (3) (0) | 2024.04.24 |