📖 학습주제
가장 많이 사용되는 AWS 클라우드에 대해 실습 중심으로 학습 (1)
클라우드 컴퓨팅
-
클라우드 컴퓨팅 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한
만큼만 비용을 지불하는 방식
-
물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스
클라우드 컴퓨팅 이점
- 민첩성
- 탄력성
- 비용절감
- On demand
- 관리 용이성
클라우드 유형

Amazon Web Services(AWS)
- 전 세계적으로 분포한 데이터 센터에서 200개가 넘는 완벽한 기능의 서비스를 제공하는, 세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드 플랫폼
AWS 기본용어
가상화
- 물리적 컴퓨터 하드웨어를 보다 효율적으로 활용할 수 있도록 해주는 프로세스, 클라우드 컴퓨팅의 기반을 제공하는 기술 (논리적 구조로 되어 있음)
가상머신
- 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상 환경
- 일반적으로 VM의 구성, 가상 하드 드라이브의 스토리지, 그리고 특정 시점에 해당 상태를 유지하는 VM의 일부 스냅샷을 포함한 다수의 파일들로 구성
스냅샷
- 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술
- Windows OS의 복원 지점과 같이 장애나 데이터 손상 시 스냅샷을 생성한 시점으로 데이터를 복구
- 스냅샷은 원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과 달리 초기 생성 시 혹은 데이터의 변경이 있기 전까지는 스토리지의 공간을 차지하지 않음
- 메타데이터(데이터에 대한 부가적인 정보)의 복사본에 해당하기 때문에 생성하는 데 오랜 시간이 걸리지 않고, 장애 상황이 발생해도 빠르게 데이터를 복원
데이터 센터
- 수많은 서버들을 한데 모아 네트워크로 연결해 놓은 시설
Region(지역)
- Data Center가 위치한 지역
- IT 리소스를 생성할 Region은 선택 가능
- 대상 고객의 지역과 자원 생성할 Region이 최대한 가까워야 함
- 국가마다 자원사용 비용이 다름
Availability Zone(가용영역)
- 하나의 Region 은 두 개 이상의 Availability Zone 으로 구성
AWS EC2
기능
-
인스턴스 : 가상 컴퓨팅 환경
-
Amazon 머신 이미지(AMI) : 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있음
-
인스턴스 유형 : 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
-
키 페어 : 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
-
인스턴스 스토어 볼륨 : 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨
-
Amazon Elastic Block Store(Amazon EBS) : 영구 스토리지 볼륨에 데이터 저장
-
보안 그룹 : 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
-
탄력적 IP 주소(EIP) : 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
-
태그 : 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
-
Virtual Private Clouds(VPC) : AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크
구성도

실습
대시보드 좌측 네트워크 및 보안 하위 목록에 키 페어로 들어가 키 페어를 생성 할 수 있다.

Mac은 .pem, Window는 .ppk를 선택한다.
메인 대시볻에서 인스턴스 시작을 눌러 인스턴스를 생성할 수 있다.
터미널에서 ssh -i keypair.ppk user_name @aws_public_dns으로 인스턴스에 연결 할 수 있다.
Elasticbeanstalk
- Elastic Beanstalk를 사용하면 애플리케이션을 실행하는 인프라에 대해 자세히 알지 못해도 AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있음
- 선택 또는 제어에 대한 제한 없이 관리 복잡성을 줄여줌
- 애플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리
- Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원함