본문으로 건너뛰기
페이지 목차
이 페이지에서 검색

AWS 실습 — AI 서비스 배포와 운영

이 페이지에 묻기

이 AWS 과정 본문에서만 찾아 답합니다. 답을 지어내지 않고 해당하는 대목을 그대로 보여 주며, 여기에 없으면 없다고 알려 드립니다.

생성형 AI가 아니라 이 페이지 본문을 찾아 그대로 보여 주는 방식입니다. 외부로 나가는 요청이 없습니다.

AWS 클라우드 아이콘

AWS · 클라우드 실습

AWS 실습 — AI 서비스 배포와 운영

작동하는 Reference Build에서 시작해, 자신의 AI 서비스를 AWS에 직접 배포하고 운영하는 역량을 익히는 과정입니다. Taylor의 가이드를 따라 배포, 운영, 리스크 관리를 함께 다룹니다.

생성 수정

01 · Build — 클라우드에 배포하기

로컬에서 동작하는 프로젝트의 구성과 실행 조건을 파악하고, AWS 환경에서 직접 실행하는 흐름을 학습합니다.

  • 계정·리전·네트워크의 역할과 서비스 구성 이해
  • EC2와 Docker를 활용한 애플리케이션 배포 흐름
  • S3를 활용한 파일 저장과 애플리케이션 설정 분리

02 · AWS EC2 개별 SSH 키 기반 다중 사용자 접속 가이드

개발자마다 키 쌍을 생성하고 개인키는 로컬에 보관합니다. 공개키만 관리자에게 전달해 EC2의 authorized_keys에 등록한 뒤 각자의 개인키로 SSH 접속합니다.

하나의 AWS EC2 인스턴스에서 개별 SSH 키를 사용하여 보안성을 유지하면서 여러 개발자가 안전하게 접속 환경을 구축하는 통합 가이드입니다.

2.1. 권장 구조 개요

동일한 *.pem 키 공유 방식 대신, 각 개발자가 자신의 노트북에서 독립된 SSH 키 쌍(Key Pair)을 생성하고, EC2 서버의 ~/.ssh/authorized_keys 파일에 각각의 공개키(Public Key)를 추가하는 구조를 적용합니다.

구분공유 PEM 키 방식 (비권장)개별 SSH 공개키 등록 방식 (권장)
보안성키 유출 시 전체 접근 권한 위험개별 키 무효화 및 유출 최소화 가능
접속 이력 및 추적사용자 추적 불가능키 식별자(Comment)를 통한 추적 용이
퇴사/권한 제거전체 PEM 키 재발급 필요해당 개발자의 공개키 1줄만 삭제

2.2. 1단계: 개발자별 SSH 키 쌍 생성 (개별 개발자 작업)

각 개발자는 본인의 로컬 터미널(Mac/Linux Terminal 또는 Windows PowerShell/Git Bash)에서 아래 명령어를 실행하여 전용 SSH 키 쌍을 생성합니다.

ssh-keygen -t ed25519 -C "developer_name@email.com"
# 또는 RSA 방식을 사용할 경우:
# ssh-keygen -t rsa -b 4096 -C "developer_name@email.com"
  • 키 저장 경로 묻기: 기본값 사용 (Enter 입력)
  • Passphrase 묻기: 추가 보안을 위한 비밀번호 설정 (선택 사항)

생성 완료 후 .pub 확장자가 붙은 공개키 파일의 내용을 확인합니다.

cat ~/.ssh/id_ed25519.pub
# 출력 예시: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... developer_name@email.com

주의: .pub 파일(공개키)만 서버 관리자에게 공유해야 하며, 확장자가 없는 개인키 파일(예: id_ed25519)은 절대로 외부에 공유해서는 안 됩니다.

2.3. 2단계: EC2 서버에 개발자 공개키 등록 (관리자 작업)

초기 관리자(기존 PEM 키 소지자)가 EC2 인스턴스에 접속하여 각 개발자의 공개키를 등록합니다.

Step 1: EC2 인스턴스 접속

ssh -i /path/to/original-key.pem ubuntu@<EC2-PUBLIC-IP>
# OS에 따라 계정명이 달라질 수 있습니다. (예: ubuntu, ec2-user, debian 등)

Step 2: authorized_keys 파일 편집

nano ~/.ssh/authorized_keys

Step 3: 개발자 공개키 추가

각 개발자로부터 전달받은 공개키(id_ed25519.pub 또는 id_rsa.pub 파일의 전체 내용)를 줄바꿈 형태로 authorized_keys 파일 하단에 각각 붙여넣습니다.

# 기존 접속 키
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... original-aws-key

# 개발자 1 공개키
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... dev1@company.com

# 개발자 2 공개키
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... dev2@company.com

# 개발자 3 공개키
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... dev3@company.com

Step 4: 권한 및 설정 확인

보안 권한 설정이 올바르게 맞춰져 있는지 확인합니다.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2.4. 3단계: 각 개발자 접속 및 로컬 SSH Config 설정

기본 접속 명령

각 개발자는 자신의 로컬 터미널에서 다음 명령어로 EC2 인스턴스에 바로 접속할 수 있습니다.

ssh ubuntu@<EC2-PUBLIC-IP>

접속 편의성을 위한 SSH Config 설정 (선택 사항)

매번 IP 및 계정명을 입력하는 불편함을 줄이기 위해 각 개발자의 로컬 PC에 있는 ~/.ssh/config 파일을 설정합니다.

nano ~/.ssh/config

다음 내용을 작성합니다:

Host my-ec2-server
    HostName <EC2-PUBLIC-IP>
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519

설정 후에는 아래의 단축 명령어로 바로 접속할 수 있습니다:

ssh my-ec2-server

2.5. 보안 관리 및 유지보수 가이드

  • 개발자 퇴사 또는 키 변경 시: ~/.ssh/authorized_keys 파일에서 해당 개발자의 공개키 줄만 삭제하면 즉시 접근 권한이 차단됩니다.
  • OS 계정 분리가 필요한 경우: 모든 개발자가 하나의 공용 계정(ubuntu 또는 ec2-user)을 공유하는 대신, 필요 시 adduser 명령어로 개별 계정을 생성하여 각각의 /home/user_name/.ssh/authorized_keys에 공개키를 배치할 수 있습니다.

03 · Operate — 상태를 관찰하고 개선하기

  • CloudWatch로 로그·지표를 확인하고 오류 원인 추적
  • 변경 사항 재배포, 이전 버전 복구, 데이터 백업 계획
  • 사용 기록을 바탕으로 지식·Prompt·Tool·Workflow 개선

04 · Manage Risk — 권한·데이터·비용 관리

  • IAM 권한과 비밀정보 관리, 외부 공개 범위 점검
  • AWS Budgets로 예산과 알림 설정, 실습 자원 정리
  • 공개·더미 데이터로 학습하고, 실제 데이터는 보안 조건을 검토한 뒤 자신의 환경에서 직접 연결

05 · 공식 문서