클라우드 컴퓨팅
클라우드 IT리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 방식
- 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, AWS와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스
- 장점 : 민첩성, 탄력성, 비용 절감, On demand, 관리 용이성
- 클라우드 유형
- On Premiss : 클라우드를 이용하지 않고 본인이 처음부터 끝까지 모든 환경을 구축하는 방식
- IAAS(Infrastructure As A Service) : virtual machine과 같이 최소한의 인프라만 제공하는 방식
- PAAS(Platform As A Service) : IAAS가 제공하는 것 + 미들웨어와 OS까지 제공
- SAAS(Software As A Service) : 모든 환경을 제공하는 방식
기본용어
- 가상화 : 물리적 컴퓨터 하드웨어를 보다 효울적으로 활용할 수 있도록 해주는 프로세스
- 가상 머신 : 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션 하는 가상환경, 스냅샷 제공
- 스냅샷 : 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술
- 데이터 센터 : 수많은 서버들을 모두 모아 네트워크로 연결해 놓은 시설
- Region : Data Center가 위치한 지역
- Availablity Zone(가용 영역) : 하나의 Region은 두 개 이상의 AZ로 구성됨
AWS EC2
AWS에서 가장 보편적으로 사용되는 서비스 중 하나로, 서버를 할당 받을 때 사용됨
기능
- 인스턴스 : 가상 컴퓨팅
- Amazon 머신 이미지(AMI) : 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있음
- 인스턴스 유형 : 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러가지 구성 제공
- 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
- 인스턴스 스토어 볼륨 : 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨
- Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장
- 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP범위를 지정하는 방화벽 기능
- 탄력적 IP주소(EIP) : 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
- 태그 : 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타 데이터
- Virtual Private Clouds(VPC) : AWS클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크
EC2 Instance 만들기
1. 키 페어 만들기
내가 만든 인스턴스에 접속할 수 있는 유일한 키를 생성하는 과정
1. 네트워크 및 보안 > 키 페어 > 키 페어 생성
- 이름 : 아무 이름
키 페어 이름 : 암호화 알고리즘 선택
프라이빗 키 파일 형식 : ppk(windows), pem(Linux, mac)
생성된 키 페어 파일을 저장할때 원하는 위치에 .ssh폴더를 만들고 그 안에 만들기를 권장
2. Instance 만들기
- EC2 대시보드 or 인스턴스 > 인스턴스에 들어가서 '인스턴스 시작' 누르기
- 이름과 키페어만 설정해주고 나머지는 default로 시작
- 인스턴스 유형은 나중에 큰 규모의 프로젝트를 진행할때 더 확장된 유형을 선택
- 네트워크 설정 > 방화벽(보안 그룹) : 나중에 변경될 수 있으므로 '보안 그룹 생성'으로 시작
- 모든 설정이 끝났으면 '인스턴스 시작' 버튼을 눌러서 인스턴스 생성
- 인스턴스는 자동적으로 IP가 할당됨. 퍼블릭 IPv4를 통해 인스턴스에 접속
- 퍼블릭 IPv4는 서버를 내렸다가 다시 올리면 변경되므로 고정하고 싶을때는 탄력적 IP주소를 고정
- 쓰지 않는 인스턴스는 아예 삭제 or 종료 (중지는 과금 가능성 있음)
- 포트 22번이 기본적으로 열려있음
- 만약 사용자에게 공유해야 한다면 포트를 따로 설정해주어야 함. 보안그룹의 링크에 들어가서 설정
3. Elastic IP 고정
- 네트워크 및 보안 > 탄력적 IP
- 탄력적 IP주소 할당
- '할당' 클릭
- '이 탄력적 IP주소 연결' 클릭
- 인스턴스에 내가 만든 인스턴스 연결한 후 '연결' 클릭
4. windows에서 Instance접속
puTTY 사용
-
Host Name에 IPv4주소 넣기, 포트번호는 고정
-
Connection > SSH > Auth > Credentials에서 키페어를 생성하면서 저장했던 key file 불러온 후 'Open'
-
접속 완료
Elastic Beanstalk
Elastic Beanstalk을 사용하면 AWS클라우드에서 애플리케이션을 신속하게 배포하고 관리 가능
- 선택 또는 제어에 대한 제한 없이 관리 복잡성을 줄일 수 있음
- Go, Java, .NET, Node.js, PHP, Python, Ruby에서 개발된 애플리케이션 지원
- 애플리케이션을 업로드하면 용량 프로비저닝, 로드 밸런싱, 조정, 오토 스케일, 상태 모니터링을 자동으로 해결해줌으로써 환경을 구성하고 조정 가능
Elastic Beanstalk 생성