Skip to content

Commit

Permalink
Merge branch 'tiaz0128/1'
Browse files Browse the repository at this point in the history
  • Loading branch information
tiaz0128 committed Mar 2, 2025
2 parents 3cca993 + 95a36ed commit 4f06732
Showing 1 changed file with 187 additions and 3 deletions.
190 changes: 187 additions & 3 deletions content/tiaz0128/1주차.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,189 @@
### CI/CD
# EC2 기초

CI/CD는 현대 소프트웨어 개발에서 핵심적인 개발 방법론입니다. CI(Continuous Integration)는 개발자들이 코드 변경사항을 주기적으로 메인 브랜치에 병합하는 과정을 자동화하는 것을 말하며, CD는 Continuous Delivery(지속적 제공)와 Continuous Deployment(지속적 배포)를 의미합니다.
#AWS #EC2

![ci/cd](/content/tiaz0128/img/image.png)
## Billing and Cost Management

### 하위 유저 활성화

- Billing and Cost Management > Account
- IAM user/role access to billing information
- Activated

### Free Trie

- 서비스 종류 / 사용량 확인 가능

### Budgets

- 예산 설정
- 알람 받기 가능

## [[Amazon EC2]]

### bootstrapping

- 머신이 시작 될때 명령을 실행
- 처음 한번만 실행
- 설치 및 업데이트 등 초기화 진행
- `root` 권한으로 실행 됨 = `sudo` 로 실행

## EC2 생성

### Networkd Setting

- Auto-assign public IP 기본 세팅
- VPC > Subnets > Edit subnet settings
- Auto-assign IP settings - Enable auto-assign public IPv4 address 체크
- Allow SSH traffic from → SSH 접속
- Allow HTTP traffic from the internet → 웹서버 용

### EBS Volumes

- Delete on termination : EC2 종료시 EBS도 같이 삭제

### Advanced details

- User data : 처음 EC2가 생성될때 동작하는 스크립트

```text
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
```

### EC2 Start / Stop / Restart

- 인스턴스 재시작하면 Public IP가 변경 됨

### EC2 Instance Types

![[섹션 5. EC2 기초#^frame=dXpuB2BTsUStg6tdbUnMA| 600]]

### General Purpose

- 컴퓨팅, 메모리, 네트워크 균형
- `T` / `M` 클래스

### Compute Optimized

- 고성능을 필요로 하는 작업
- 게임, 미디어, 웹 등
- HPC
- Compute → `C` 클래스

### Memory Optimized

- 메모리에서 대규모 데이터셋을 처리하는 경우
- 데이터베이스 / 캐시
- RAM → `R` 클래스

### Storage Optimized

- 스토리지 최적화 인스턴스
- NoSQL
- 분사 파일 시스템
- `I` / `D` 클래스

## Security Groups

- EC2 안팎의 트레픽을 제어함 → 리소스 차원의 방화벽
- IP 주소를 기반으로 규칙을 설정 또는 다른 SG 참조
- 포트에 대한 엑세스를 규제
- **Allow(허용)** 규칙만 존재
- 나가는 것에 대해서는 default로 전부 허용
- StateFull
- 들어오면 → 나갈 수 있음

- 여러 인스턴스를 포함 가능
- SSH를 위한 보안 그룹을 따로 만드는것을 추천
- 기본적으로
- 모든 Inbound는 차단
- 모든 Outbound는 허용

- 다른 SG 연결
- IP에 상관없이 다른 EC2와 직접 통신 가능
- SG 한쪽에 허용하면 한쪽만 통신이 가능하고
- 반대쪽도 허용해줘야 양쪽에서 통신이 가능

- 실제로는 Primary ENI(eth0)에 보안 그룹이 할당됨
- EC2 인스턴스 자체가 아닌 ENI에 보안 규칙이 적용되는 것
- 각 ENI는 독립적으로 자신에게 할당된 보안 그룹의 규칙을 따름

### Connect to instance

- EC2 Instance Connect
- Session Manager
- SSH client
- EC2 serial console

### EC2 - [[AWS Identity and Access Management(IAM)|IAM]]

### EC2 요금 모델

- On-Demand : 초단위 이용 비용 지불
- Reserved Instances : 1년 / 3년 단위 계약
- Savings Plan : 1년 / 3년 사용량을 약정
- Spot Instances : 스팟 인스턴스 : 가장 저렴 → 언제든지 종료 될수 있음
- Dedicated Host / Instances
- 물리적 전용 인스턴스를 임대
- 라이센스 법률 등 / 인스턴스는 내부적인 정보?를 추가적으로 확인가능

### On-Demand

- 초당 / 시간당 사용 비용 지불
- 약정 필요 없음
- 수요 예측이 어렵거나 유연하게 사용시

### Reserved Instances

- 일정 기간 약정하여 요금을 할인 받는 방식
- 1년 / 3년 단위 계약
- 최대 72% 저렴

### Savings Plan

- 컴퓨팅 파위의 사용량을 약정하여 사용
- Compute Saving Plan
- EC2 Instance Saveing Plan
- 최대 72%

### Spot Instances

- 남는 EC2를 저렴한 가격으로 제공
- 최대 90%
- 가격은 상황에 따라 변동, 항상 On-Demand 보다 싸게 제공
- 인스턴스가 언제 종료될지 예측 불가

### Dedicated Host / Instance

- 물리적으로 인스턴스 / 호스트 단위로 격리된 EC2를 제공
- 라이센스 / 성능 문제를 위해 사용


## Spot Instances 실습

- 최대 스팟 가격 지정 > 현재 가격 을 만족하는 경우에 인스턴스를 유지
- 2분 유예 기간이 존재
- 작업 인스턴스 중지 → 이후 다시 작업
- 완전히 종료 → 새로 시작
- Spot Block : 지정 기간 동안 스팟 인스턴스 종료를 차단 (1 ~ 6시간) → 100%는 아님 → 2022년 12월 31일 이후 없어진 상태
- 배치 / 데이터 분석 / 회복력이 높은 작업에 사용
- 데이터 베이스 / 중요한 작업에는 부적합

### Spot 인스턴스 종료 방법

- Spot requests를 먼저 중지
- 이후에 Instances를 제거

### Spot Fleets(집단)

- 사용자가 지정한 기준으로 목표 용량을 유지 하려
- 여러 개의 런치 풀과 여러 인스턴스 유형을 정의 가능
- 스팟 인스턴스를 추가로 절약할 수 있음
- 스팟 플릿은 스팟 인스턴스의 집합이며, 선택적으로 온디맨드 인스턴스입니다. 스팟 플릿은 가장 낮은 가격으로 스팟 인스턴스를 자동으로 요청할 수 있게 해줍니다.

0 comments on commit 4f06732

Please sign in to comment.