AWS3 Elastic Compute Cloud 2
1. Billing (root 에서만 권한이 있다)
AWS Billing은 AWS 계정 사용량과 비용을 모니터링하고, 요금 청구 정보를 제공하는 서비스입니다. AWS 사용량과 비용을 모니터링하고 분석함으로써, 비즈니스에서 AWS 비용을 최적화할 수 있습니다.
AWS Billing은 다음과 같은 기능을 제공합니다.
- 사용량 모니터링: AWS에서 제공하는 모든 서비스에 대한 사용량을 모니터링할 수 있습니다. 사용량 정보는 서비스별로 제공되며, 월간, 일간 또는 실시간 데이터를 확인할 수 있습니다.
- 비용 분석: AWS에서 제공하는 서비스에 대한 비용을 분석하고, 서비스별, 리전별, 태그별 또는 사용자별로 비용을 확인할 수 있습니다. 또한 예상 비용을 분석하여, 비용을 줄이는 방안을 찾을 수 있습니다.
- 청구 정보 확인: AWS 계정에 대한 요금 청구 정보를 확인할 수 있습니다. 청구 정보에는 사용량, 비용, 청구 일자 등이 포함됩니다.
- 예산 설정: AWS에서 제공하는 예산 설정 기능을 사용하여, 비용을 제어하고 예산 초과를 방지할 수 있습니다.
AWS Billing은 AWS Management Console, API 또는 CLI를 통해 사용할 수 있으며, 사용자가 원하는 방식으로 사용할 수 있습니다. 또한 AWS 계정 설정을 통해 알림 설정을 할 수 있어, 예산 초과나 다른 문제 발생 시 즉시 알림을 받을 수 있습니다.

2. EC2 기초
Elastic Compute Cloud
클라우드 서비스의 종류
- IaaS (Infrastructure as a Service) : 하드웨어 인프라를 인터넷을 통해 제공하는 서비스를 말합니다. IaaS는 가상화된 하드웨어, 스토리지, 네트워크, 운영체제 등을 제공하며, 사용자는 이를 이용해 자신의 애플리케이션을 실행할 수 있습니다. AWS EC2, Microsoft Azure, Google Compute Engine 등이 IaaS 서비스를 제공합니다.
- PaaS (Platform as a Service) : 애플리케이션을 개발, 실행, 관리하기 위한 플랫폼을 인터넷을 통해 제공하는 서비스를 말합니다. PaaS는 IaaS에서 제공하는 하드웨어 인프라와 미들웨어를 이용하여, 애플리케이션 개발, 배포, 운영 등에 필요한 환경을 제공합니다. 예를 들어, AWS Elastic Beanstalk, Heroku, Google App Engine 등이 PaaS 서비스를 제공합니다.
- SaaS (Software as a Service): SaaS는 사용자에게 완전한 애플리케이션을 제공하며, 이 애플리케이션은 클라우드 제공업체의 서버에서 실행됩니다. 사용자는 애플리케이션에 대한 제한된 제어권을 가지며, 클라우드 제공업체가 모든 인프라, 운영 체제, 백엔드 애플리케이션 및 데이터 관리를 담당합니다. SaaS는 대부분의 사용자에게 필요한 소프트웨어 서비스를 제공합니다. 예를 들어, 구글 드라이브, 마이크로소프트 오피스 365, Salesforce 등이 SaaS 서비스의 예입니다.
AWS EC2 (Elastic Compute Cloud)는 클라우드 컴퓨팅 서비스 중 하나로, 가상 서버 인스턴스를 제공합니다. EC2를 사용하면 필요한 시간만큼 가상 서버를 생성하고 사용할 수 있으며, 필요에 따라 스케일 업 또는 스케일 다운할 수 있습니다.
이 환경은 실제로는 하드웨어 리소스를 가상화하여 사용하고 있기 때문에, 하드웨어 상에서 실행 중인 물리적인 서버와는 다릅니다. 따라서, 이러한 가상화된 컴퓨터 환경을 "인스턴스(instance)" 라고 부르게 되었습니다.
각 인스턴스는 독립적으로 실행되고 관리됩니다. 이러한 인스턴스들은 필요에 따라 생성, 시작, 중지, 종료 등이 가능합니다.
EC2 인스턴스는 다양한 운영 체제 (예: Linux, Windows)와 인스턴스 유형 (예: 범용, 컴퓨팅 최적화, 메모리 최적화)을 지원합니다.
EC2는 다양한 용도로 사용될 수 있으며, 주요 사용 사례는 다음과 같습니다.
- 웹 애플리케이션 호스팅
- 데이터베이스 호스팅
- 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝)
- 애플리케이션 테스트 및 개발
EC2는 유연하게 스케일링할 수 있으며, 필요에 따라 인스턴스를 추가하거나 제거하여 자원 사용량을 조절할 수 있습니다. 또한 AWS의 다른 서비스와 통합하여 다양한 용도로 사용할 수 있습니다.
EC2의 다양한 옵션들
- 인스턴스 유형 (Instance Types) - 인스턴스 유형은 서버에 할당되는 CPU, 메모리, 스토리지 및 네트워크 리소스와 같은 기본 성능 특성을 결정합니다. 예를 들어, 일부 인스턴스 유형은 컴퓨팅 작업에 적합하고, 다른 유형은 메모리 집약적인 작업에 적합합니다.
- 운영 체제 (Operating System) - EC2 인스턴스는 다양한 운영 체제를 지원합니다. 예를 들어, Amazon Linux, Ubuntu, Windows 등이 있습니다.
- 스토리지 옵션 (Storage Options) - EC2 인스턴스에는 인스턴스 스토어, Amazon EBS 및 Amazon S3와 같은 다양한 스토리지 옵션이 있습니다.
- 보안 그룹 (Security Groups) - 보안 그룹은 인바운드 및 아웃바운드 트래픽을 제어하는 방화벽 규칙입니다. 각 보안 그룹은 포트 범위, 프로토콜 및 허용되는 IP 주소 범위를 정의할 수 있습니다.
- 키 페어 (Key Pair) - 키 페어는 EC2 인스턴스에 대한 SSH 액세스를 허용합니다. 키 페어를 만들면 EC2 인스턴스를 시작할 때 키 페어를 선택할 수 있습니다.
- 탄력적 IP 주소 (Elastic IP Address) - 탄력적 IP 주소는 EC2 인스턴스에 고정 IP 주소를 할당합니다. 이는 EC2 인스턴스를 중지하거나 시작할 때마다 IP 주소가 변경되는 것을 방지할 수 있습니다.
- 사용 가능한 영역 (Availability Zones) - EC2 인스턴스는 여러 가용 영역에서 실행될 수 있습니다. 이는 장애 대응 및 고가용성을 위해 중요합니다.
https://aws.amazon.com/ko/ec2/instance-types/?nc1=h_ls

3. 인스턴스 띄워보기
// T2 를 사용


( 보통 서번트 용으로 ubuntu 많이 사용 합니다)

rsa 가 더 많이 쓰입니다 , (나중에 설정 할겁니다).
(암호화 알고리즘)


만약에 Open address 했는데 무한 로딩 이면
(90 % 확률로)
방화벽 문제입니다.
보안 규칙을 위한 Security Group과 Ports
보안규칙
- 여러 인스턴스에 할당 가능
- time out → 보안규칙 이슈
- connection refuse → ec2 내부 이슈
- 모든 inbound는 디폴트로 막혀있습니다.
- 모든 outbound는 디폴트로 열려있습니다.
포트
- 22 = ssh(secure shell)로 인스턴스에 원격 접속
- 21 = FTP 파일전송 프로토콜
- 80 = http 웹 접속
- 443 = https 안전한 http 접속, 현재의 스탠다드




sudo apt-get update
sudo apt-get install nginx
echo "<h1>EC2로 띄워봤음! $(hostname -f)</h1>" > /usr/share/nginx/html/
sudo systemctl start nginx


크롬 보안 때문에 그냥 인터넷E 사용
* 잊지 말고 instance stop 해줘야 함. (켜져 있으면 돈이 나갑니다....)
* 참고로 재시작 하면 public ip 주소가 변경 됩니다. (Elastic ip 로 고정 되어 있는 ip 를 만들어 줄수 있음)

SSH 연결
chmod는 파일이나 디렉토리의 권한을 변경하는 유닉스 명령어입니다. 파일이나 디렉토리는 소유자, 그룹, 그리고 나머지 세 개의 사용자 카테고리를 갖습니다. 각 카테고리에 대해 읽기(read), 쓰기(write), 실행(execute)의 권한을 설정할 수 있습니다.
chmod 400
chmod 400은 파일 권한 설정 중 하나입니다. 이 권한을 설정하면 해당 파일에 대해 읽기 권한만 부여됩니다. 숫자 400은 소유자에 대한 읽기 권한을 의미합니다. 다른 사용자들은 읽기 및 쓰기 권한이 없습니다. 이 권한은 일반적으로 중요한 정보를 포함하는 파일이나 개인 키 파일과 같은 보안 파일에 적용됩니다.
chmod 644 명령은 file.txt 파일의 권한을 다음과 같이 변경합니다.
- 소유자: 읽기와 쓰기 권한
- 그룹: 읽기 권한
- 나머지: 읽기 권한
pem 파일 다운 (키 만들때 자동으로 다운 로드 됨)

작업할 폴더로 이동

Terminal 로 해당 폴더 이동 +
unix 기반 Linux나 mac 같은 경우는 chmod 400 을 통해 읽기전용으로 지정해주면 된다고 하지만 윈도우에서는 chmod가 없습니다.
그래서 incals.exe 사용!

EBS (EC2 인스턴스 백업 하기 위한 서비스)
Amazon Elastic Block Store (EBS)는 Amazon EC2 인스턴스에 연결할 수 있는 블록 수준 스토리지 볼륨입니다. EBS 볼륨은 네트워크를 통해 Amazon EC2 인스턴스에 연결되므로 데이터 지속성, 스냅샷 백업 및 다른 인스턴스에서 쉽게 사용할 수 있습니다. EBS 볼륨은 데이터의 지속성을 보장하기 위해 AWS 내에서 복제 및 백업되므로 안정적이고 내결함성이 높은 스토리지 옵션입니다.
인스턴스를 terminate 한 후에도 데이터를 유지할 수 있습니다.
특정 AZ에 한정됩니다.
인스턴스의 usb 메모리라고 생각할 수 있습니다.
하나의 인스턴스에서 떼어서 다른 인스턴스에 꽂을 수 있습니다.
하나의 EBS는 하나의 인스턴스에만 연결될 수 있지만 하나의 인스턴스에는 여러개의 EBS가 연결될 수 있습니다.


EBS 만들기




그러고 나면 추가 된것이 확이
default 볼륨이 종료시 삭제
새론 반든것이 종료시 삭제 하지 않음

Snap shot 추가 하기

AMI 소개
Amazone Machine Image
- EC2 인스턴스를 생성할 때 사용되며 운영 체제와 애플리케이션(우리는 Ubuntu 사용중), 라이브러리 등이 포함되어 있습니다.
- 이러한 이미지를 사용하면 개발자는 이미 구성된 환경을 더 쉽게 설정할 수 있습니다.
- AMI는 Amazon에서 제공하는 것뿐만 아니라 개발자가 직접 생성할 수도 있습니다.
- 개발자는 자신이 구성한 인스턴스를 이미지로 만들어서 사용할 수 있으며, 이를 다른 사람과 공유할 수도 있습니다.
EBS와 AMI의 차이
Amazon Elastic Block Store (EBS)와 Amazon Machine Image (AMI)는 Amazon Web Services (AWS)에서 사용되는 서비스입니다.
Amazon EBS는 EC2 인스턴스에서 사용되는 스토리지 볼륨입니다. 이 볼륨은 인스턴스에 연결되어 인스턴스에 데이터를 저장하고 보존하는 데 사용됩니다. EBS는 인스턴스를 종료해도 볼륨에 저장된 데이터를 보존합니다.
반면, Amazon Machine Image (AMI)는 EC2 인스턴스를 시작할 때 사용되는 이미지입니다. AMI는 이미 설치된 운영 체제와 애플리케이션을 포함하여 인스턴스를 구성하는 데 필요한 모든 정보를 포함합니다. 이를 통해 AMI를 사용하여 손쉽게 EC2 인스턴스를 시작하고, 중지하고, 삭제하고, 복제하고, 복원할 수 있습니다.
AMI는 EBS 스냅샷을 사용하여 생성될 수 있습니다. EBS 스냅샷은 EBS 볼륨의 이미지입니다. AMI를 생성할 때 EBS 스냅샷을 사용하면 인스턴스를 시작할 때 EBS 볼륨이 생성되고, 해당 볼륨에는 이전 인스턴스와 동일한 데이터가 저장됩니다.
따라서 AMI는 EC2 인스턴스를 시작할 때 사용하는 이미지이며, EBS는 인스턴스에 연결되어 데이터를 저장하고 보존하는 데 사용되는 스토리지 볼륨입니다. AMI를 생성하는 데 EBS 스냅샷을 사용할 수 있습니다.
AMI 만들기
