20230515 TIL - AWS EC2

ohyujeong·2023년 5월 16일
0

TIL

목록 보기
22/27
post-thumbnail

📖 오늘의 학습

  • AWS : EC2, ElasticBeanstalk

클라우드 컴퓨팅이란?

  • 컴퓨팅 리소스를 인터넷을 통해 on-demand로 제공하고, 사용한만큼 비용을 지불하여 탄력적이고 관리가 용이하다.
  • 물리적인 데이터 센터가 필요없이 AWS와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스를 사용할 수 있기 때문에 비용절감에 큰 도움이 된다.

클라우드 용어

  • 가상화 : 물리적 컴퓨터 하드웨어를 보다 효율적으로 활용할 수 있도록 해주는 프로세스.

  • 가상머신 : Virtual Machine, 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상환경이다. 일반적으로 VM의 구성, 가상 하드드라이브의 스토리지, 그리고 특정시점의 상태를 유지하는 VM의 일부 스냅샷을 포함한 다수의 파일들로 구성되어있다.

  • 스냅샷 : 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술이다. Windows OS의 복원 지점과 같이 장애나 데이터 손상 시 스냅샷을 생성한 시점으로 데이터를 복구한다.
    원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과는 달리, 스냅샷은 초기 생성 시 혹은 데이터의 변경이 있기 전까지는 스토리지의 공간을 차지하지 않는다. 메타데이터의 복사본에 해당하기 때문에 짧은 시간으로 생성할 수 있고 장애 상황이 발생해도 빠르게 데이터를 복원한다.

AWS(Amazon Web Service) 란?

  • 세계적으로 가장 많이 채택되고 있는 클라우드 플랫폼
  • 200개가 넘는 완벽한 클라우드 서비스를 제공한다.
  • 스타트업부터 규모가 큰 엔터프라이즈, 정부기간 까지 수백만명의 고객이 AWS를 사용중이다.
  • 비용을 절감하고 민첩성을 향상시켜 빠르게 혁신할 수 있다

대표적인 서비스

  • Amazon 머신 이미지 (AMI) : 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있다.

  • EC2 인스턴스 유형 : 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러가지 구성을 제공한다.

  • 키 페어 : AWS는 퍼블릭 키를 저장하고, 사용자는 개인 키를 안전한 장소에 본인이 보관하는 방식으로 인스턴스 로그인 정보를 보호한다.

  • 인스턴스 스토어 볼륨 : 임시 테이터를 저장하는 스토리지 볼륨으로, 인스턴스 중단, 최대 절전모드로 전환, 또는 종료시 삭제된다.

  • EBS (Amazon Elastic Block Store) : Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터를 저장한다.

  • 보안그룹 : 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능

  • 탄력적 IP 주소 (EIP) : 동적 클라우트 컴퓨팅을 위한 고정 IPv4 주소이다. 원래는 인스턴스를 중단시키고 재시작 시 IP 가 변경된다.
    - 생성 : EC2 - 네트워크 및 보안 - 탄력적 IP - 탄력적 주소 할당 (최대 5개까지 가능) - EC2 재시동

  • 태그 : 사용자가 생성하여 EC2 리소스에 할당할 수 있는 메타데이터

  • Virtual Private Clouds (VPCs) : AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편하게 연결할 수 있는 가상 네트워크

AWS 용어

  • 리전(Region) : Data center(수많은 서버들을 한데 모아 네트워크로 연결해 놓은 시설)가 위치한 지역으로 AWS에서 IT 리소스를 생성할 Region을 선택할 수 있다. 대상 고객의 지역과 자원을 생성할 Region이 최대한 가까워야 한다. 국가마다 자원 사용 비용이 다르다.

  • 가용영역 (AZ, Availability Zone) : 하나의 Region은 2개 이상의 AZ로 구성된다.

Elastic Beanstalk

  • Elastic Beanstalk 을 이용하게 되면 애플리케이션을 실행하는 인프라에 대해 자세히 알지 못해도 AWS클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있다.
  • 애플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부정보를 자동으로 처리한다.
  • Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원한다.
  • Elastic Beanstalk이 알아서 선택된 지원가능 플랫폼 버전을 구축하고 EC2 등의 AWS리소스를 하나 이상 프로비저닝 하여 애플리케이션을 실행한다.
  • 선택적으로 로드밸런싱을 통해 Auto Scaling이 가능하다 (트래픽이 많을 경우 인스턴스를 설정한 범위까지 늘렸다 줄였다 해준다)
  • 생성할 때 옵션으로 key와 VPC를 설정한다.
  • 앱을 올리게 되면 기본적으로 5000 번 포트로 통신한다.

앱 기본경로

/var/app/current : 디렉토리에 앱실행파일이 올라가게 된다.
/var/log/web.stdout.log : 앱의 로그가 쌓이는 곳
/var/log/eb.engine.log : ElasticBeanstalk의 로그가 쌓이는 곳
/var/log/nginx : 서버 로그 확인 가능

업로드 및 배포

java의 경우 jar 파일을 업로드 시 배포된다.


📝 주요메모사항

요금 계산하는 방법

AWS 홈페이지에서 내가 사용할 서비스의 요금을 미리 알아보자

1. 요금 탭의 요금계산기 클릭

2. 예상비용 생성

3. 서비스 선택하여 요금 계산


😵 공부하면서 어려웠던 내용

profile
거친 돌이 다듬어져 조각이 되듯

0개의 댓글