티스토리 뷰
DataEngineer(DE)/AWS를 이용한 데이터 엔지니어링
AWS를 이용한 데이터 엔지니어링(3) - EC2 & EBS & ElasticIP & Security Group
코딩하는 제리코 2026. 3. 26. 16:484-1. EC2 소개
EC2

- Elastic Compute Cloud
- 컴퓨팅 리소스
- 원하는 스택의 서버를 생성할때 사용
- 특징
- 다양한 OS 지원
- 유연성과 확장성
예1) 스타트업 창업시 작은 스팩의 서버 -> 확장후 큰 서버로 스팩 변경
예2) 오토스케일링을 통한 자동으로 사용량 조정 - 비용 효율성
- 보안성
- 글로벌 인프라
과금 옵션
- On-Demand
사용한 양 만큼 과금을 진행 - Spot
AWS의 여유 컴퓨팅 용량을 사용하는 방식
즉, Spot을 사용하다가 AWS의 여유 용량을 없다면 사용이 중단 될 수 있다는 의미
지속적으로 사용해야하는 서버가 아니라 임시적으로 짧게 사용하는 상황에서 좋음 (데이터 분석과 같은 유연한 상황) - Reserved(RI)
예약 인스턴스 (1년 또는 3년 약정)
장기적인 관점으로 봤을때는 On-Demand 보다 약 75% 정도 비용을 절감할 수 있어 좋음 - Free-Tier Pricing --> 우리가 이번에 사용할 부분

4-2. Instance Type
CPU, 메모리, 스토리지 등 다양한 조합으로 구성된 리소스 조합

Instance Familiy



4-3. AMI
AMI

- Amazon Machine Images
- EC2 인스턴스를 부팅하는데 필요한 소프트웨어를 제공하는 이미지(컴퓨터를 실행하기 위해 필요한 모든 파일을 저장한 템플릿)
- AWS 자체 AMI / 커스터마이징 AMI


4-4. EBS
EBS

- Elastic Block Store
- EC2에서 연결해서 쓸 수 있는 블록 스토리지
- S3를 이용할 스냅샷
EBS는 영구적으로 데이터를 저장할 수 있지만 혹시 모를 손실을 위해 S3에 스냅샷을 저장하도록 설정 가능 - Instance Store
- 임시 스토리지
휘발성 즉, 인스턴스를 삭제하면 거기 데이터도 다 삭제됨 - 매우 빠른 I/O 성능
- 캐시데이터나 임시파일을 저장하는데 좋음
- 특정 EC2 인스턴스 타입을 지원
- 임시 스토리지

EBS Free-Tier Pricing

4-5. Elastic IP
Elastic IP

EC2를 생성하면 자동으로 IP주소가 생성되지만 해당 인스턴스를 종료하고 다시 실행하면 IP주소가 변경되게됨.
-> 따라서 고정 IP가 필요한 경우 이 Elastic IP를 사용하게 됨
- 탄력적 IP 주소
- 인스턴스에 연결해서 사용하는 정적 IPv4 주소
- 리전 당 5개 제한 (추가하고자 할 때는 요청)
무분별한 IP 추가 방지 - 인스턴스에 연결하면 무료
- 미사용중인 Elastic IP에 대해서 과금함
- 삭제할땐 연결된 인스턴스와의 연결을 해제해야함
4-6. Security Group
Security Group
- 인스턴스에 대한 트래픽을 제어하는 가상의 방화벽
- Inbound(인스턴스로 들어오는 트래픽) / Outbound(인스턴스에서 나가는 트래픽)

4-7. SSH를 이용한 인스턴스 접속(macOS)
나는 이번에 인스턴스를 만들때 아래와 같은 스펙으로 생성하였다.
- AMI: ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-20251212
1. 인스턴스 생성시 '키 페어(로그인)' 설정이 있는데,
이때 프라이빗 키 파일 형식을 `.pem`형식으로 키 페어 생성을 하고 이때 발급된 키 페어를 저장해둔다.
2. terminal을 키고 아래 명령어를 통해 키 페어의 열림 정도를 수정한다.
chmod 600 test-keypair.pem
3. 그 다음 아래 명령어를 실행시키면 되는데,
아래 명령어에서 `ubuntu@3.34.198.81`은 `인스턴스 환경@인스턴스의 퍼블릭 IPv4 주소`이다.
ssh -i test-keypair.pem ubuntu@3.34.198.81
4. SSH를 통해 인스턴스로 들어왔다.
ubuntu 환경에서는 python3 가 내장되어 있기 때문에 아래 같은 작업도 해볼 수 있다.
ubuntu@ip-172-31-38-93:~$ python3 -V
Python 3.10.12
ubuntu@ip-172-31-38-93:~$ python3
Python 3.10.12 (main, Nov 4 2025, 08:48:33) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("HELLO")
HELLO
>>> exit()

'DataEngineer(DE) > AWS를 이용한 데이터 엔지니어링' 카테고리의 다른 글
| AWS를 이용한 데이터 엔지니어링(6) - Athena & Athena 최적화 전략 (0) | 2026.03.30 |
|---|---|
| AWS를 이용한 데이터 엔지니어링(5) - Glue, Data Catalog, Glue ETL (0) | 2026.03.28 |
| AWS를 이용한 데이터 엔지니어링(4) - 스토리지 & 데이터 레이크 & 레이크 하우스 (0) | 2026.03.27 |
| AWS를 이용한 데이터 엔지니어링(2) - AWS 개념 및 기초 설정(MFA & IAM) (0) | 2026.03.26 |
| AWS를 이용한 데이터 엔지니어링(1) - 목표 설정 및 클라우드 개념 (0) | 2026.03.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- lakehouse
- Glue ETL
- lake house
- kafka
- DAG
- RDD
- AWS Glue Catalog
- DataSet
- Data Dngineering
- spark
- docker
- Backfill
- Consumer DAG
- Data engineering
- Prodcuder DAG
- de
- Data Engineerring
- elasticip
- 데이터파이프라인
- s3
- iceberg
- Data Pipeline
- Daynamic Task
- Databricks
- catchup
- AWS
- Unity Catalog
- Spark structured streaming
- Glue
- airflow
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
글 보관함
