AWS-여러방법들

Kingyj·2025년 3월 14일
post-thumbnail

🐤 What Is AWS?

AWS는 (Amazon Web Services) 우리가 알고있는 아마존이라는 미국의 온라인쇼핑업체에서 서비스하고있는 클라우드 컴퓨팅 서비스이다. 아마존 전체 매출의 16%를 차지하고 항상 흑자를 기록하고있는 아마존의 캐시카우이다.
넷플릭스, 크래프톤, 모더나, 삼성전자, 한국투자증권, ADM 등 세계의 대기업들도 이용중이다.
고로, 세계에서 가장 인정받고 안정성있는 서버 시스템을 제공하고있다.


( 카카오톡이 먹통이 되거나, 온라인 게임에 갑자기 접속이 안되거나하는 것들이 대부분 서버 문제이다. )


🐤 AWS 다루는 여러 방법

1️⃣ AWS 콘솔

  • AWS 웹사이트에서 제공하는 GUI(그래픽 인터페이스)
    클릭 몇 번으로 EC2 인스턴스 생성, S3 버킷 설정 등 가능

2️⃣ AWS CLI (Command Line Interface)

  • AWS를 터미널에서 명령어로 제어할 수 있는 도구
    aws ec2 run-instances 같은 명령어로 서버 생성 가능
    자동화 및 스크립트 활용 가능

3️⃣ 테라폼 (Terraform)

  • AWS 인프라를 코드로 관리하는 IaC(Infrastructure as Code) 도구
    .tf 파일을 작성해서 EC2, S3 같은 AWS 자원을 코드로 정의
    명령어 한 줄(terraform apply)로 인프라 생성 및 배포 가능

🐤 장단점

1️⃣ AWS 콘솔 (웹 인터페이스)

비유: 직접 손으로 요리하기
AWS 콘솔은 웹사이트에서 클릭 몇 번으로 리소스를 생성하고 설정하는 방식이다.
즉, 요리를 할 때 직접 재료를 손으로 다듬고, 조리하고, 접시에 담는 것과 비슷하다.

✅ 장점
✔️ 사용하기 쉬움 → 초보자도 직관적으로 클릭하면서 설정 가능
✔️ 즉시 적용 가능 → 클릭하면 바로 반영되므로 빠르게 결과 확인 가능
✔️ 시각적으로 보기 편함 → 대시보드에서 현재 리소스 상태를 한눈에 볼 수 있음

❌ 단점
❌ 자동화가 어려움 → 서버를 여러 개 만들려면 일일이 클릭해야 해서 비효율적
❌ 재현성이 낮음 → 설정을 기억해서 다시 만들기가 어려움 (일관된 배포가 힘듦)
❌ 대규모 관리 어려움 → 여러 개의 리소스를 한꺼번에 관리하기 힘듦

2️⃣ AWS CLI (Command Line Interface)

비유: 요리 레시피를 보고 명령어로 요리하기
AWS CLI는 터미널에서 명령어를 입력해서 AWS 리소스를 관리하는 방법이다.
즉, 요리할 때 "양파 다지기", "고기 굽기" 같은 명령을 내리는 것과 비슷하다.

✅ 장점
✔️ 자동화 가능 → 스크립트(.sh 파일)로 여러 작업을 한 번에 실행 가능
✔️ 빠른 조작 → 클릭 없이 명령어 입력만으로 AWS 리소스를 관리 가능
✔️ 일관성 유지 가능 → 같은 명령어를 여러 번 실행해도 같은 결과 나옴

❌ 단점
❌ 명령어를 외워야 함 → GUI보다 익숙해지기 어렵고 학습 곡선이 있음
❌ GUI보다 직관성이 떨어짐 → 현재 설정을 한눈에 보기 어려움
❌ 복잡한 인프라 설정은 힘듦 → CLI는 단순 명령 실행이므로 복잡한 인프라 배포에는 한계가 있음

aws ec2 run-instances --image-id ami-12345678 --count 1 --instance-type t2.micro
///👉 이렇게 한 줄 입력하면 EC2 인스턴스가 만들어짐!

3️⃣ 테라폼 (Terraform)

비유: 레시피를 문서로 만들어서 자동으로 요리하기
테라폼은 AWS 인프라를 코드로 정의하는 방법이다.
즉, 요리할 때 "이 레시피대로 요리하세요"라고 종이에 적어 놓으면, 요리사가 그대로 만드는 것과 같다.

✅ 장점
✔️ 인프라를 코드로 관리 가능 (IaC) → 버전 관리 가능
✔️ 자동화와 재현성 뛰어남 → 같은 설정을 여러 번 실행해도 동일한 결과
✔️ 대규모 인프라 관리에 적합 → 여러 개의 서버를 한 번에 배포 가능
✔️ 변경 사항 추적 가능 → terraform plan으로 변경 사항 미리 확인 가능

❌ 단점
❌ 학습이 필요함 → 테라폼 문법(.tf 파일)과 상태 관리 개념을 익혀야 함
❌ 즉시 적용 어려움 → CLI처럼 바로 실행하는 게 아니라 terraform apply를 통해 반영해야 함
❌ 초기 설정이 필요함 → 백엔드 상태 저장 설정을 해야 함

resource "aws_instance" "example" {
  ami           = "ami-12345678"
  instance_type = "t2.micro"
}
// 👉 이 코드를 실행하면 같은 설정으로 여러 번 EC2 인스턴스를 만들 수 있음

🐤 결론

정리 테이블

  • 처음 AWS 배우는 중이라면? AWS 콘솔
  • 반복적인 작업을 자동화하고 싶다면? AWS CLI
  • 인프라를 코드로 관리하고 싶다면? 테라폼

만약 AWS 프로젝트를 운영하는 팀이라면, 테라폼으로 인프라를 코드화하고, AWS CLI로 운영 자동화, AWS 콘솔로 모니터링하는 방식이 가장 효율적이다.


🐤 혼란주의보

위의 방법들은 AWS를 다루는 방법의 종류이다. AWS에서 제공하는 서버랑은 다른 개념이다.
즉, 도구(방법)와 자원(대상)의 차이다.

  • "AWS를 조작하는 방식"과 "AWS에서 사용할 수 있는 서버 종류"의 차이

AWS에서 제공하는 서버 종류

AWS를 다루는 방법들

요리 비유로 이해해보겠다.

1️⃣ AWS에서 사용할 수 있는 서버 종류 (= 요리 재료)

EC2 → 소고기
Lambda → 치킨
ECS → 해산물
EKS → 채소
👉 어떤 재료(서버)를 사용할지 선택.

2️⃣ AWS를 다루는 방법 (= 요리를 만드는 방법)

AWS 콘솔 → 손으로 직접 요리 (프라이팬에 굽고, 직접 양념 넣기)
AWS CLI → 레시피를 보고 순서대로 요리 (명령어를 입력해서 실행)
Terraform → 자동 요리 기계에 레시피를 넣고 버튼만 누르기 (코드로 인프라를 정의하고 실행)
👉 같은 요리를 만들더라도, 요리 방법(도구)이 다를 수 있다.


0개의 댓글