본문 바로가기

개인공부

[AWS] 2. AWS 클라우드 운영 환경 이해하기

지난시간에는 AWS의 기본 개요에 대해 알아보았다.

이번에는 직접 AWS를 사용해보는 시간을 가져보자.


1. AWS Management Console 소개

AWS 접근 방법 4가지

AWS 리소스를 제어하는 방법은 크게 4가지다.

  • AWS API — 프로그래밍적 접근 (HTTP 요청)
  • AWS SDK — Python, Java 등 언어별 라이브러리
  • AWS CLI — 터미널 명령어 기반
  • AWS Management Console — 웹 GUI

AWS Management Console이란?

웹 브라우저에서 AWS 리소스를 시각적으로 관리하는 도구다. CLI나 코드 없이 클릭만으로 서비스 실행과 설정이 가능하다.

접속 URL: https://console.aws.amazon.com

AWS Management Console 홈 화면

로그인 방식

1) Root User 로그인

  • Email address + Password
  • AWS 가입 시 자동 생성되는 최상위 계정

2) IAM User 로그인

  • Account ID + IAM Username + Password
  • AWS Account 내에서 생성하는 하위 사용자

본인은 1번 방식으로 가입하고 로그인하였다.

최초 가입시 100달러 크레딧을 제공하니

이것을 실습에 사용하면 되겠다.

Console 주요 기능

  • EC2, S3, RDS 등 모든 AWS 서비스 접근
  • 리소스 검색, 생성, 삭제, 구성, 모니터링
  • IAM 사용자별 접근 권한 제한 (보안 강화)

2. 리전 변경과 대시보드 활용

리전(Region)이 중요한 이유

AWS는 전 세계 여러 Region에 리소스를 배치한다. 리전 선택에 따라 생성·조회되는 리소스가 달라진다. 서울 리전(ap-northeast-2)에서 생성한 EC2 인스턴스는 오하이오(us-east-2)에서 조회되지 않는다.

리전 변경 방법

콘솔 상단 우측의 리전 이름을 클릭 → 드롭다운에서 원하는 리전 선택.

리전 목록

언어 설정

콘솔이 영어로 보이면 우측 상단 ⚙️ 아이콘 → 언어를 한국어로 변경.

대시보드 활용

각 서비스별로 제공되는 현황판(요약 UI)이다.

대시보드 설명
EC2 인스턴스 상태, 시작/중지, 모니터링 지표
S3 버킷 리스트, 버전 관리, 접근 설정
IAM 사용자, 그룹, 역할, 정책 현황
Billing 월별 사용량, 서비스별 비용, 추세 그래프

3. EC2 서비스 탐색 (콘솔 데모)

EC2(Elastic Compute Cloud)는 AWS의 가상 머신 서비스다.

EC2 인스턴스 = 가상 머신 한 대.

이번 데모에서는 콘솔에서 EC2의 개략적인 메뉴를 살펴봤다. (상세 생성 방법은 차후 강의에서 배운다)

데모 절차

  1. EC2 인스턴스 생성
  2. 생성한 인스턴스의 상태 모니터링
  3. 인스턴스 정보 확인
  4. 인스턴스 종료

인스턴스 시작
키 페어 없이 (보안 없이) 진행
인스턴스 생성 완료
인스턴트 상세 정보

이제 인스턴스를 종료(삭제)해보자.

인스턴스 삭제 (중지가 아님!!)
삭제 완료!


💡 실습 중 느낀 점

  • 인스턴스를 생성할 때 "중지(Stop)"와 "종료(Terminate)"의 차이가 헷갈렸다. Stop은 일시 정지(EBS 볼륨 유지, 재시작 가능)이고, Terminate는 완전 삭제(기본적으로 EBS 볼륨도 함께 삭제)다. 실수로 Terminate를 누르면 복구가 안 되므로 주의가 필요하다.
  • 인스턴스 생성 직후 상태가 pendingrunning으로 바뀌는 데 약간의 시간이 걸린다. 처음엔 생성이 안 된 줄 알고 새로고침을 반복했는데, 상태 전환 중이었다.
  • 리전을 서울(ap-northeast-2)로 설정하고 인스턴스를 생성했는데, 다른 리전으로 전환하니 인스턴스 목록이 비어 있었다. 리전별로 리소스가 완전히 분리된다는 점을 직접 체감했다.

4. S3 서비스 탐색 (콘솔 데모)

S3(Simple Storage Service)는 AWS의 클라우드 스토리지 서비스다.

버킷을 생성하고, 버킷에 파일(객체)을 저장하는 구조.

  • Simple — 간편한 인터페이스
  • Storage — 클라우드 저장 공간
  • Service — 웹 서비스 형태

데모 절차

  1. S3 버킷 생성
  2. 생성한 버킷 정보 조회
  3. S3 버킷 삭제

EC2처럼 검색 후 만들기
퍼블릭 엑세스를 일부러 해제하고 생성해본다.
생성 완료 후 속성에서 ARN을 확인할 수 있다.
퍼블릭 엑세스를 차단하지 않았다
사진 객체 업로드

업로드 후, 객체 URL에 접근하려고 했으나 권한이 없어 접근이 제한된다.

즉, 퍼블릭 엑세스를 허용한다고 해서 누구나 접근할 수 있다는 것이 아니다.

버킷 정책에서 접근 권한을 편집 할 수 있다.

위와 같이 작성한 후 변경사항 저장
이후 접근 성공!!

삭제는 버킷 내의 모든 객체를 지운 후 버킷을 삭제해야한다.

삭제 완료

💡 실습 중 느낀 점

  • S3 버킷 이름은 전 세계적으로 고유(globally unique)해야 한다. 흔한 이름(예: test-bucket)으로 시도하면 이미 누군가 사용 중이라 생성이 거부된다. 팁: 자기 이름이나 날짜를 조합하면 중복을 피할 수 있다.
  • 버킷을 삭제하려면 버킷 안의 모든 객체를 먼저 비워야 한다. 객체가 남아 있는 상태에서 삭제를 시도하면 오류가 발생한다. 콘솔에서 "버킷 비우기(Empty)" → "버킷 삭제(Delete)" 순서로 진행해야 한다.
  • EC2와 달리 S3는 리전을 선택해도 콘솔에서는 전체 버킷이 보인다. 다만 버킷 자체는 생성 시 지정한 리전에 물리적으로 저장된다. 글로벌 서비스처럼 보이지만 실제 데이터는 특정 리전에 귀속되는 구조다.
  • 퍼블릭 엑세스를 차단하지 않은것은 누구나 사용할수 있는 권한을 주었다는게 아니라, 누구나 사용할 수 있는 권한을 부여받을 수 있다는 것이므로 헷갈리지 않아야한다.

5. IAM 서비스 탐색 (콘솔 데모)

IAM(Identity and Access Management)은 AWS 리소스에 대한 접근 권한을 제어하는 서비스다.

데모 절차

  1. IAM User 정보 조회
  2. IAM Group과 IAM Role 조회
  3. IAM Policy 조회

아직 아무 유저도 없다.

유저가 없으니 당연히 그룹도 없다. 역할과 정책을 조회해보자.

몇 개 기본적인 역할이 조회됐다.

역할은 정책을 가지고있는 "모자"같은 느낌으로, 유저에게 "씌워준다"

정책을 조회해보자.

많은 양의 정책이 조회됐다.

💡 실습 중 느낀 점

  • IAM은 리전에 종속되지 않는 글로벌 서비스다. 리전을 변경해도 동일한 User, Group, Role, Policy가 보인다. EC2처럼 리전별로 분리되는 서비스와 구분해서 이해해야 한다.
  • Root User와 IAM User의 차이가 중요하다. Root User는 모든 권한을 가진 계정 소유자이고, IAM User는 필요한 권한만 부여받는 하위 사용자다. 보안 관점에서 일상 작업에는 Root User를 쓰지 말고 IAM User를 생성해서 사용하는 것이 best practice다.
  • Policy 목록을 보니 AWS에서 기본 제공하는 managed policy가 수백 개 있었다. AmazonS3ReadOnlyAccess, AmazonEC2FullAccess 같은 식으로 이름만 봐도 어떤 권한인지 직관적으로 파악할 수 있다.

6. AWS CLI와 CloudShell

AWS CLI란?

AWS 리소스를 명령어로 제어하는 CLI 도구다. 콘솔(GUI) 없이 터미널에서 직접 리소스를 생성, 관리, 모니터링할 수 있다.

스크립트 자동화, 반복 작업, 대규모 리소스 관리에 유리하다.

AWS CloudShell

브라우저에서 직접 실행할 수 있는 AWS CLI 전용 터미널 환경이다.

별도 설치 없이 콘솔 상단의 CloudShell 아이콘을 클릭하면 바로 사용 가능.

터미널 실행


7. AWS CLI 데모 — S3, EC2, IAM 조회

S3 버킷 조회

# 전체 버킷 목록
aws s3 ls

# 특정 버킷 내 객체 목록
aws s3 ls s3://버킷이름

# 하위 디렉터리까지 조회
aws s3 ls s3://버킷이름/folder-name/

# 버킷의 리전 조회
aws s3api get-bucket-location --bucket 버킷이름

아무것도 안뜸...

아까 버킷을 삭제해서 아무것도 뜨지 않았다. 지우기 전에 CLI 데모를 해볼껄 그랬다.

EC2 인스턴스 조회

# 전체 인스턴스 조회 (JSON 출력)
aws ec2 describe-instances

# 인스턴스 ID만 조회
aws ec2 describe-instances \
  --query "Reservations[*].Instances[*].InstanceId" \
  --output text

# 특정 리전에서 조회
aws ec2 describe-instances --region ap-northeast-2

ec2 인스턴스 조회

당연히 ec2인스턴스도 조회가 되지 않을 줄 알았는데, 아까 삭제했던 인스턴스가 조회되었다.

너무 긴 json 코드가 나오길래, id만 조회해보았다.

짧고 굵게 나온다!

IAM 정보 조회

aws iam list-users      # User 목록
aws iam list-groups     # Group 목록
aws iam list-roles      # Role 목록
aws iam list-policies   # Policy 목록

마찬가지로 아무것도 안뜸
역할과 정책 대한 json 코드가 마구마구;;

조회된 코드가 너무 많아서 일부만 가져왔다.

💡 실습 중 느낀 점

  • aws ec2 describe-instances를 옵션 없이 실행하면 JSON이 수백 줄 쏟아진다. --query--output text 조합이 필수다. 실무에서는 jq를 파이프로 연결해서 파싱하는 경우도 많다.
  • CloudShell은 콘솔에 로그인한 사용자의 권한을 그대로 상속한다. 별도로 aws configure를 할 필요가 없어서 편하다. 반면 로컬 CLI는 Access Key를 직접 설정해야 하므로 보안 리스크가 있다.
  • aws ec2 describe-instances --region us-east-1처럼 --region 플래그를 붙이면 CloudShell의 기본 리전과 다른 리전의 리소스도 조회할 수 있다. 콘솔에서는 리전 드롭다운을 바꿔야 하는 반면, CLI는 한 줄로 여러 리전을 순회할 수 있어서 자동화에 유리하다.
  • aws s3 lsaws s3api list-buckets는 비슷한 결과를 주지만, s3 커맨드는 고수준(파일 복사, 동기화 등), s3api는 저수준(API 직접 호출) 인터페이스다. 상황에 따라 구분해서 쓴다.

8. AWS CLI 설치 및 구성

설치

공식 가이드: https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

Linux, macOS, Windows 모두 지원.

초기 구성

aws configure

입력 항목:

  • AWS Access Key ID — IAM User의 Access Key
  • AWS Secret Access Key — IAM User의 Secret Key
  • Default region name — 예: ap-northeast-2
  • Default output formatjson / text / table

설정 파일은 ~/.aws/config~/.aws/credentials에 저장된다.

⚠️ 주의사항

  • 로컬에 설치하면 IAM User의 키가 파일로 저장된다
  • 공용 컴퓨터에는 절대 키를 저장하면 안 된다
  • 키 유출 위험이 있으므로 CloudShell 사용을 권장

CLI 레퍼런스

공식 문서: https://docs.aws.amazon.com/ko_kr/cli/


학습 정리

  • AWS Management Console은 클라우드 리소스를 시각적으로 관리하는 웹 인터페이스다
  • 리전 선택에 따라 보이는 리소스가 달라지므로 항상 현재 리전을 확인해야 한다
  • EC2, S3, IAM 등 주요 서비스를 콘솔에서 직접 생성하고 설정할 수 있다
  • AWS CLI는 명령어 기반으로 리소스를 자동화·대량 처리하는 데 적합하다
  • CloudShell을 사용하면 별도 설치 없이 브라우저에서 CLI를 바로 사용할 수 있다

다음 시간에는 AWS 플랫폼을 비용 관리 측면에서 공부해 보겠다.