카테고리 없음

AWS

tp134679 2025. 4. 14. 14:57

<목차>

1. AWS

2. EC2 설정

 

1. AWS

AWS ( Amazon Web Services) 아마존닷컴이 운영하는 클라우드 컴퓨팅 서비스로 세계적으로 가장 많이 사용되는 클라우드 플렛폼입니다.

1. **초기 아마존 (전자상거래 중심)**  

   - 아마존은 원래 온라인 서점에서 출발했고, 이후 전자상거래 플랫폼으로 성장함.  
   - 물리적인 재고 관리, 결제 시스템, 물류 운영 등 다양한 IT 인프라가 필요해짐.  

2. **사업 확장 → 내부 인프라 구축 필요**  

   - 쇼핑몰뿐만 아니라, 전자책(Kindle), 동영상 스트리밍(Prime Video), 음악 스트리밍(Amazon Music) 등 서비스 확장.  
   - 이런 다양한 서비스를 운영하기 위해 안정적인 서버, 데이터베이스, 스토리지 관리가 필요해짐.  

3. **효율적인 IT 인프라 구축 → 클라우드 등장**

   - 개별 서비스마다 IT 자원을 따로 운영하는 것은 비효율적이었음.  
   - 그래서 **내부적으로 공용으로 사용할 수 있는 IT 인프라(서버, 스토리지, 데이터베이스, 네트워크)를 구축**하기 시작함.  
   - 이 과정에서 클라우드 개념이 도입됨.  

4. **내부용이던 클라우드, 외부 서비스로 확장 → AWS 탄생**  

   - 아마존은 내부 인프라를 최적화하면서, 다른 기업들도 이 시스템을 사용할 수 있게 하면 비즈니스 기회가 될 것이라 판단.  
   - 2006년, 기업들을 위한 클라우드 컴퓨팅 서비스 **AWS(Amazon Web Services)**를 출시.  
   - 이후 AWS는 클라우드 시장의 선두주자로 성장.

 

대표적인 서비스

전자상거래
    - Amazon.com
    - 아마존 프라임
    - 아마존 프레시 & 울 푸즈

엔터테인먼트
    - 아마존 프라임 비디오
    - 아마존 뮤직
    - Audible
    - 트위치(인수)
스마트 디바이스
    - 아마존 에코
    - 파이어 티비
    - 킨들
물류/배송
    - 아마존 풀필먼트 & 로직스틱스
    - 아마존 에어

 

 

AWS의 특징 

1. 인터넷을 통해 서버, 스토리지, 데이터베이스 등의 IT 자원을 제공합니다

컴퓨팅: EC2 (가상 서버), Lambda (서버리스 컴퓨팅)  
스토리지: S3 (파일 저장소), EBS (블록 스토리지)  
데이터베이스: RDS (관리형 DB), DynamoDB (NoSQL DB)  
네트워크 보안: VPC (가상 네트워크), IAM (접근 제어)  

2. 사용한 만큼만 비용을 지불합니다
3. 필요한 리소스를 필요한 만큼 늘리거나 줄일 수 있습니다
4. 트래픽이나 수요 증가에 대응할 수 있습니다

 

 

2. EC2 

EC2 (Elastic Compute Cloud)

 

아마존에서 제공하는 가상의 컴퓨터(서버)로서 

우리가 사용하고자 하는 운영체제(Ubintu, windows )등을 선택해서 설치가 가능합니다.

그 위에서 Node.js(express)등 과 같은 프로그램을 실행할 수 있습니다.

필요하면 서버를 여러 개로 확장이 가능합니다.

 

Elastic  

여기서 탄력적인 이라는 의미로 쓰이는데 이는 컴퓨팅 리소스를 수요에 따라 동적으로 늘리거나 줄일 수 있기 때문입니다.

트래픽이 많아지면 서버를 자동으로 확장(scale-out) 하고 트래픽이 줄어들면 서버를 축소(Scale-in)할 수 있습니다. 이러한 구조때문에 탄력적이다 === 유연하다(쉽게 늘어나고 줄어듬) 라는 표현으로 사용되게되었습니다.

 

 

 

EC2 설정 

실제 EC2를 설정

 

aws에서 EC2 를 검색합니다. 

 

해당 페이지처럼 대시보드가 보이게됩니다.

 

 

EC2 인스턴스 

 

가상의 컴퓨터를 몇대 사용하겠는지 인스턴스 개수로 정합니다. 

EC2 서비스 = 서버(컴퓨터)를 만들기 위한 설계도

EC2 인스턴스 = 실제 실행되고 있는 서버 (컴퓨터)

 

 

인스턴스란 구체적으로 개발환경에서 많이 쓰이는 단어인데  

일반적으로 구체적인 실행 단위를 의미합니다. 어떠한 개념이나 클래스를 실제 만들어서 실행할 때 이를 인스턴스라고 부릅니다.

 

인스턴스라는 용어를 사용하는 이유

하나의 가상 서버는 ES2 라는 개념 에서 생성된 실행 단위이기 때문입니다. 

우리가 EC2를 통해 여러 개의 서버를 만들면 각각 독립적으로 실행되는 

서버 인스턴스 이기때문에 이러한 용어를 사용하게 되었습니다. 

 

인스턴스 시작

 

가장 먼저 인스턴스의 이름을 설정해줍니다. 

애플리케이션 및 OS 이미지(Amazon Machine Image)

 

 

Amazon Machine Image(AMI)

AMI는 인스턴스를 시작하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버 및 애플리케이션)이 포함된 템플릿입니다. 

지금은 WSL 로 윈도우 운영체제에서 ubuntu 를 사용하고 있음으로 Ubuntu를 운영체제로 선택합니다.

 

선택하면 ubuntu 의 운영체제와 기본 설정이 포함된 템플릿을 설정할 수 있는데

- **Ubuntu Server 24.04 LTS** → 최신 Ubuntu 버전(LTS: 장기 지원)
- **가상화: HVM** → 최신 EC2 인스턴스와 호환됨
- **루트 디바이스 유형: EBS** → 데이터가 유지되는 EBS 스토리지 사용
- **아키텍처: x86 또는 ARM** → CPU 아키텍처에 따라 다름
- **AMI ID: ami-04b4f1a9cf54c11d0** → 특정 AMI를 가리키는 고유한 식별자

 

아키텍처

 

이키텍처는 프로세서가 명령을 처리하는 방식을 의미합니다.

 

64비트(x86) 아키텍처

 

- 기존의 일반적인 **데스크톱, 서버용 CPU** (Intel, AMD)
- 전통적인 컴퓨터에서 많이 사용
- 고성능을 요구하는 서버, 데이터베이스 운영에 적합
- 예: Intel Xeon, AMD EPYC

 

apm 아키텍처

 

- 모바일 기기 및 저전력 서버에서 사용
- AWS에서는 **Graviton 프로세서(ARM 기반)**를 사용
- **전력 소비가 적고, 비용이 저렴**
- 예: AWS Graviton 2, Graviton 3

 

차이점 

| 구분              | x86 (Intel, AMD)                              | ARM (AWS Graviton)                         |
| -------------      | --------------------------------                 | ------------------------------ |
| **성능**         | 강력한 성능 (고성능 서버에 적합)  | 저전력, 클라우드 환경에 최적화 |
| **비용**         | 상대적으로 비쌈                             | 비용 효율적 (최대 40% 저렴)    |
| **전력 소비** | 전력 소비 높음                               | 저전력, 효율적                 |
| **사용 예시** | 데이터베이스, 고성능 서버            | 웹 서버, 서버리스, 저비용 운영 |

 

인스턴스 유형

인스턴스 유형이란 가상의 컴퓨터의 성능을 선택할 수 있습니다. 

각 유형마다 성능과 요금이 다르고 주로 t2.micro 를 사용합니다.


 t2.micro 인스턴스 상세 정보


1.프리 티어 사용 가능** → **무료로 사용 가능 (월 750시간)**  
2.CPU:** **1 vCPU** (가상 CPU 1개)  
3.RAM (메모리):** **1 GiB (약 1GB)**  
4.현재 세대:** 최신 세대 인스턴스 (이전 세대보다 성능 개선) 

 

키 페어(로그인)

키페어는 EC2에 안전하게 로그인(SSH 접속)하기 위한 디지털 키 입니다.

 

키페어 이름 규칙

- 최대 255자 입력가능
- 공백(띄어쓰기) 불가 (이름 앞뒤에 공백 X)
- 알파벳(A-Z, a-z), 숫자(0-9), 일부 특수문자 가능 (my-key ,my_key 등등) 

 

 

키 페어 생성

 

키 페어는 암호화 방식에 따라 2가지 유형이 존재합니다.

 

RSA , ED25519


| 키 타입                    | 설명                                                                                    | 언제 사용하면 좋을까?        |
| ----------------            | ----------------------------------------------                                      | ---------------------------- |
| **RSA** (기본값)    | 가장 널리 사용되는 암호화 방식 (2048비트 이상)               | **일반적인 SSH 접속용 키**   |
 
| **ED25519**           | 더 빠르고 짧은 키 (보안성이 높음)                                       | **최신 SSH 키 방식 사용 시** |

 

프라이빗 키 파일 형식 

다운로드 할때 파일 확장자를 선택할 수 있습니다. 

PEM, PPK

| 파일 형식 | 설명                                                                          | 언제 사용하면 좋을까?                      |
| ---------      | ------------------------------------------                              | ------------------------------------------ |
| **.pem**  | OpenSSH, Linux/macOS에서 기본적으로 사용됨    | **Mac, Linux에서 SSH 접속할 때**           |
| **.ppk**  | Windows의 PuTTY 프로그램에서 사용됨                   | **Windows 사용자가 PuTTY로 SSH 접속할 때** |


Linux/Mac 사용자 → .pem선택
Windows에서 PuTTY 사용 → .ppk 선택

 

 프라이빗 키 파일 저장할 때 주의사항


- 키 페어를 생성하면 프라이빗 키 파일(.pem/.ppk)을 다운로드할 수 있습니다.
- 이 파일은 한 번만 다운로드 가능 (AWS는 다시 제공하지 않음)
- 잃어버리면 EC2 접속이 불가능하므로 안전한 곳에 저장하는 것이 좋습니다.
- 절때, 배포할 때, 파일을 같이 등록하면 안됩니다.

추천 저장 방법 (디렉토리)
개인 컴퓨터의 안전한 폴더 (`~/.ssh/` 또는 `C:\Users\사용자이름\`)  
백업용으로 USB 또는 외장하드에 보관  

 

네크워크 설정

EC2 인스턴스를 만들 때는 네트워크 설정이 필요합니다 EC2가 어떤 네트워크(VPC)에서 동작할 지,인터넷에 연결하지 보안그룹 을 설정할지 정할 수 있습니다. 

 

방화벽 설정 EC2 인스턴스는 보안그룹을 통해 어떤 트래픽 요청을 허용할지 방화벽 역활을 합니다.

 

기본 보안 그룹 설정

| 프로토콜 | 포트 | 설명 |
|----------|------|------|
| **SSH** | 22 | 터미널(SSH) 접속 허용 |
| **HTTP** | 80 | 웹 서버 접속 허용 |
| **HTTPS** | 443 | 보안 웹 서버(SSL) 접속 허용 |
**0.0.0.0/0 → 모든 IP에서 접근 허용**  
보안을 위해 **특정 IP만 SSH 접속 허용하는 것이 좋습니다**

 

스토리지 구성

aw에서 EC2 인스턴스를 만들때 필요한 공간(저장 공간) 설정을 하는 란입니다. 

EC2에 설치된 운영체제 (os)와 데이터를 저장할 디스크를 설정하는 과정을 나타냅니다.

 

 

기본 스토리지 설정 

| **1x 8GiB**             | **8GB 크기의 스토리지(디스크)를 하나 사용**       |
| **gp3**                 | 최신 SSD 타입의 스토리지 (고성능)                 |
| **3000 IOPS**           | 초당 최대 3000번의 읽기/쓰기 가능                 |
| **암호화되지 않음**      | 기본적으로 암호화되지 않음 (필요하면 암호화 가능) |
| **프리 티어 사용 가능**  | 무료 티어에서는 최대 **30GB까지 무료 사용 가능**  |

 

스토리지 옵션 


 | 볼륨 타입        | 설명                | 특징                                  |
| ---------------- | ------------------- | ------------------------------------- |
| **gp3** (기본값) | 최신 SSD            | 빠르고 비용 효율적                    |
| **gp2**          | 구형 SSD            | 이전 세대, gp3보다 속도 조정이 어려움 |
| **io1 / io2**    | 고성능 SSD          | 데이터베이스, 고속 처리 서버에 적합   |
| **st1**          | HDD (처리량 최적화) | 대용량 저장 용도로 적합               |
| **sc1**          | HDD (가장 저렴함)   | 자주 사용하지 않는 데이터 저장        |

 

추가 볼륨 선택 (스토리지 확장 가능)

- "새 볼륨 추가" → EC2에 **추가 스토리지를 연결 가능**
- 예를 들어, 운영체제용(8GB)과 **데이터 저장용(100GB) 스토리지 분리 가능**
- 이후 필요하면 스토리지 크기를 조정하거나 새로운 볼륨을 추가할 수도 있음

 

 

인바운드 규칙 or 아웃바운드 규칙 

1. 인바운드(inbound) 규칙

**"EC2 서버로 들어오는(수신) 트래픽을 허용할 것인가?"**

- 클라이언트 → EC2 인스턴스로 **요청을 받을 때** 설정하는 규칙.

### 예시

| 규칙                    | 설명                                                    |
| ----------------------- | ------------------------------------------------------- |
| `22번 포트 (SSH)`       | 내 PC에서 EC2 서버에 **SSH 접속(원격 접속)**할 때 필요  |
| `80번 포트 (HTTP)`      | 웹 브라우저에서 `http://your-ec2-ip` 로 접근하려면 필요 |
| `443번 포트 (HTTPS)`    | 보안 연결(SSL) 웹사이트(`https://your-ec2-ip`)를 허용   |
| `3000번 포트 (Express)` | Node.js(Express) 백엔드를 EC2에서 실행할 경우 필요      |
| `3306번 포트 (MySQL)`   | EC2 내 MySQL 데이터베이스에 원격으로 접속할 경우 필요   |
인바운드 규칙:
프로토콜: TCP
포트 범위: 80
소스: 0.0.0.0/0  (모든 IP 허용)

 

2. 아웃바운드(outvound) 규칙

**"EC2에서 외부로 나가는(송신) 트래픽을 허용할 것인가?"**

- EC2 인스턴스 → 외부 서버(API, DB, 인터넷 등)로 나갈 때 설정하는 규칙.

### 예시

| 규칙             | 설명                                              |
| ---------------- | ------------------------------------------------- |
| `80번 (HTTP)`    | EC2에서 외부 웹사이트로 요청을 보낼 때 필요       |
| `443번 (HTTPS)`  | 외부 API 또는 패키지(npm, pip) 다운로드할 때 필요 |
| `3306번 (MySQL)` | EC2 내 MySQL이 외부 DB에 접근해야 할 경우         |
| `587번 (SMTP)`   | 이메일 발송 서버를 EC2에서 운영할 경우            |
아웃바운드 규칙:
프로토콜: TCP
포트 범위: 443
대상: 0.0.0.0/0  (모든 외부 주소로 전송 가능)

 

 

정리

인바운드 아웃바운드 


| 구분           | 설명                            |
| -------------- | ------------------------------- |
| **인바운드**   | 외부 → EC2로 들어오는 요청 허용 |
| **아웃바운드** | EC2 → 외부로 나가는 요청 허용   |

따라서, **필요한 인바운드 규칙을 반드시 추가해야 EC2에 접근 가능**함!