☁️ AWS (Amazon Web Services)
인터넷을 통해 컴퓨팅 파워, 스토리지, 데이터베이스 등 다양한 IT 리소스를 제공하는 아마존의 포괄적인 클라우드 컴퓨팅 플랫폼
- 💳 종량 과금제: 필요한 만큼 자원을 빌려 쓰고, 사용한 만큼 비용을 지불
- 🏗️ 인프라 부담 해소: 기업과 개인이 물리적 인프라 구축 및 관리 부담 없이, 더 쉽고 빠르게 효율적으로 IT 인프라를 운영할 수 있도록 지원
- 🚀 장점: 초기 비용 절감, 유연한 확장, 높은 안정성 및 보안, 다양한 최신 기술 서비스 활용 가능
📦 주요 서비스 요약
| 서비스 | 설명 |
|---|
| 🔑 IAM | AWS 리소스에 대한 액세스를 안전하게 관리하는 서비스. 사용자 및 그룹을 만들고 권한을 할당하여 리소스에 대한 접근을 제어 |
| 💻 EC2 | 클라우드에서 컴퓨팅 파워를 제공하는 서비스. 가상 서버 인스턴스를 생성하고 필요에 따라 규모를 조정하여 다양한 워크로드를 실행 |
| 🗄️ RDS | 관계형 데이터베이스 관리형 서비스. 설정을 쉽게 하고 운영 및 확장을 지원하며 DB 관리 작업을 자동화 |
| 💾 S3 | 인터넷용 스토리지 서비스. 데이터 백업, 아카이빙, 웹사이트 호스팅 등 다양한 용도로 사용 |
| ⚡ ElastiCache | 인 메모리 캐시 서비스. Redis 및 Memcached를 지원하여 손쉽게 설정, 관리 및 확장 가능 |
| 🌱 Elastic Beanstalk | 웹 애플리케이션 배포 및 확장 서비스. 코드 업로드 시 용량 프로비저닝, 로드 밸런싱, 오토 스케일링 등을 자동 처리 |
🌱 Elastic Beanstalk
Java, PHP, Node.js, Python 등을 기반으로 개발된 웹 애플리케이션 및 서비스를 친숙한 서버에 간편하게 배포하고 확장할 수 있는 AWS의 PaaS.
- 특징: 배포에 필요한 인프라 프로비저닝, 로드 밸런싱, 오토 스케일링, 모니터링 등을 자동으로 처리
- 🎯 목적: 개발자가 애플리케이션 코드에만 집중할 수 있도록, 배포 및 운영에 필요한 인프라 관리의 복잡성을 추상화하고 자동화하는 것
📝 주요 용어
- 애플리케이션: Elastic Beanstalk에서 관리하는 구성 요소들의 논리적인 모음 (환경, 버전, 구성 등을 포함하는 최상위 컨테이너)
- 환경: 애플리케이션 버전을 실행하는 데 필요한 AWS 리소스 모음 (각 환경은 특정 애플리케이션 버전 하나만 실행)
🛡️ IAM (Identity and Access Management)
AWS 리소스에 대한 액세스를 안전하게 제어하기 위한 웹 서비스.
- 특징: 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어할 수 있음
- 🎯 목적: AWS 계정 내 사용자, 그룹, 역할 등을 생성하고 각 주체가 어떤 AWS 리소스에 대해 어떤 작업을 수행할 수 있는지 세분화된 권한 부여를 하여 안전하게 리소스 접근을 관리함
📝 주요 용어
- 역할: 특정 권한 집합을 가진 IAM 자격 증명 (사용자에게 직접 키를 발급하지 않고 임시 보안 자격 증명을 제공하여 보안을 강화)
- 정책: 어떤 주체가 어떤 리소스에 대해 어떤 작업을 할 수 있는지 정의하는 JSON 문서 형태의 권한 명세서
⚙️ IAM 역할 생성 가이드 (Elastic Beanstalk용)
- 'IAM' 대시보드 이동
- 역할 생성 -> AWS 서비스 -> EC2 체크
- 'awselastic' 검색 후 다음 항목 체크:
AWSElasticBeanstalkMulticontainerDocker
AWSElasticBeanstalkWebTier
AWSElasticBeanstalkWorkerTier
🖥️ EC2 (Elastic Compute Cloud)
AWS 클라우드에서 확장 가능한 컴퓨팅 파워를 제공하는 웹서비스.
- 특징: 사용자가 필요에 따라 가상 서버를 생성하고 컴퓨팅 리소스의 규모를 쉽게 조정할 수 있음
- 🎯 목적: 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 지원하며, 애플리케이션 개발 및 배포 속도를 높이고 비용 효율적인 서버 운영을 가능케 함
📝 주요 용어
- 인스턴스: AWS 클라우드에 있는 가상 서버 (다양한 CPU, 메모리, 스토리지, 네트워킹 용량 조합으로 제공)
- 인스턴스 유형: 인스턴스의 CPU, 메모리, 스토리지, 네트워킹 성능 등 하드웨어 사양의 조합
- 보안 그룹: 인스턴스로 들어오고 나가는 트래픽을 제어하는 가상 방화벽 역할 (포트 번호, 프로토콜, 소스 IP 주소 등을 기반으로 규칙 설정)
- Elastic IP 주소: 동적 클라우드 컴퓨팅을 위해 고안된 고정적인 공인 IPv4 주소 (인스턴스를 중지/시작해도 IP 주소가 변경되지 않도록 할 수 있음)
⚠️ 유의사항
application.properties를 더 이상 사용하지 않고, 환경 속성을 통해 설정을 추가한다.