AWS는 Amazon Web Services의 약자로, 아마존이 제공하는 클라우드 컴퓨팅 플랫폼이다. AWS는 전 세계에 분산된 데이터 센터를 통해 고객에게 IT 인프라를 제공하며, 이를 사용하여 필요한 인프라를 빠르고 쉽게 설정하고 관리할 수 있다.
컴퓨팅: EC2 (Elastic Compute Cloud), Elastic Beanstalk 등
데이터베이스: RDS (Relational Database Service) 등
스토리지: S3 (Simple Storage Service), EBS (Elastic Block Store) 등
네트워킹: VPC (Virtual Private Cloud), CloudFront, Route 53 등
보안: IAM (Identity and Access Management) 등
이 과정에서는 AWS의 핵심 서비스들을 배워보겠다.
On-premise는 조직 내부에서 직접 설치하고 유지보수하는 서버를 의미한다. 물리적인 위치에 서버가 있으며, 조직의 IT 인프라를 관리하는 팀이 해당 서버를 관리한다. 반면, 클라우드 서비스는 인터넷을 통해 외부의 데이터 센터에서 제공되며, 이를 통해 조직은 자체 인프라 없이 서버를 사용할 수 있다.
Region: AWS 리전은 전 세계 곳곳에 위치한 AWS 데이터 센터의 물리적 위치를 의미한다. 각 리전은 여러 개의 가용 영역(Availability Zone, AZ)으로 구성되어 있으며, 각 AZ는 독립적인 전력 및 네트워크 인프라를 가지고 있다.
고가용성: 여러 AZ를 사용하면 한 데이터 센터에 장애가 발생해도 서비스가 중단되지 않고 운영할 수 있는 고가용성을 확보할 수 있다.
고가용성 (High Availability)
고가용성은 시스템이 장애나 중단 상황에도 지속적으로 작동하는 능력을 의미한다.
고가용성은 시스템이 장애나 중단 상황에도 지속적으로 작동하는 능력을 의미한다.
Identity Access Management (IAM): 계정과 권한을 관리하는 서비스다.
Elastic Cloud Compute (EC2): 클라우드 상의 가상 서버를 제공한다.
Elastic Load Balancer (ELB): 트래픽을 여러 인스턴스에 분산시켜 부하를 줄인다.
Relational Database Service (RDS): 관리형 데이터베이스 서비스를 제공한다.
Route 53: 도메인 이름을 관리하고 DNS 서비스를 제공한다.
Virtual Private Cloud (VPC): 클라우드 상의 가상 네트워크를 생성한다.
Simple Storage Service (S3): 클라우드 스토리지 서비스를 제공한다.
CloudFront: 콘텐츠 전송 네트워크(CDN) 서비스로, 전 세계에 빠르게 콘텐츠를 제공한다.
Elastic Beanstalk: 다양한 AWS 서비스들을 자동으로 설정해 애플리케이션을 배포한다.
IAM은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스다. IAM을 사용하면 AWS에서 사용자, 그룹, 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어할 수 있다. 보안과 규정 준수 요구 사항을 충족하는 데 중요한 역할을 한다.
IAM의 주요 기능
인증(Authentication): 사용자 이름과 암호를 통해 사용자를 인증할 수 있다.
권한 부여(Authorization): 사용자, 그룹, 또는 역할에 대한 권한을 설정할 수 있다.
권한 검증(Validation): 리소스에 대한 액세스 요청이 권한이 있는 사용자인지 검증한다.
사용자(User): AWS 리소스에 접근하는 개별 사용자다.
그룹(Group): 여러 사용자를 그룹화하여 공통된 권한을 부여한다.
정책(Policy): 리소스에 대한 접근 권한을 JSON 형식으로 설정한다. 각 정책은 필요한 권한만 최소한으로 부여하도록 한다.
정책의 기본 구조는 다음과 같다
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::example-bucket"]
}
]
}
MFA는 다중 인증 요소를 요구하여 보안을 강화하는 방식이다. 사용자는 ID와 비밀번호 외에도 스마트폰이나 보안 토큰을 사용해 추가 인증을 거친다. 루트 사용자와 IAM 사용자 모두에게 반드시 적용해야 한다.
EC2는 AWS의 가상 서버 서비스로, 다양한 인스턴스 유형과 운영 체제를 선택할 수 있다. EC2는 유연하게 서버 리소스를 스케일링할 수 있어, 필요에 따라 인스턴스를 추가하거나 제거할 수 있다.
IaaS (Infrastructure as a Service): 하드웨어 인프라를 가상화하여 제공하는 서비스다. EC2가 대표적이다.
PaaS (Platform as a Service): 애플리케이션 개발 및 배포를 위한 플랫폼을 제공한다. Elastic Beanstalk이 PaaS의 예다.
SaaS (Software as a Service): 소프트웨어를 클라우드에서 제공한다. Google Drive, Microsoft 365가 SaaS에 해당한다.
인스턴스 유형: 범용, 컴퓨팅 최적화, 메모리 최적화 등 다양한 유형을 제공한다.
운영 체제: Amazon Linux, Ubuntu, Windows 등 다양한 운영 체제를 선택할 수 있다.
스토리지 옵션: 인스턴스 스토어, EBS, S3와 같은 다양한 스토리지 옵션을 제공한다.
보안 그룹: 트래픽을 제어하는 방화벽 규칙을 설정한다.
키 페어: SSH 액세스를 위한 키 페어를 생성한다.
탄력적 IP 주소: 고정 IP 주소를 제공하여 인스턴스가 중지 후 다시 시작되어도 IP 주소가 변경되지 않는다.
가용 영역(AZ): 인스턴스가 실행되는 데이터 센터로, 고가용성을 위해 여러 가용 영역을 사용할 수 있다.
sudo apt-get update
sudo apt-get install nginx
echo "<h1>EC2로 띄워봤음! $(hostname -f)</h1>" > /usr/share/nginx/html/
sudo systemctl start nginx
RDS는 AWS의 관리형 관계형 데이터베이스 서비스로, 사용자는 데이터베이스 관리 작업을 AWS가 자동으로 처리해준다. MySQL, PostgreSQL, MariaDB, Oracle, SQL Server 등 다양한 데이터베이스 엔진을 지원하며, 백업, 복구, 스케일링 등을 자동화한다.
DNS는 도메인 이름을 IP 주소로 변환해주는 시스템이다. 인터넷 상에서 쉽게 기억할 수 있는 도메인 이름을 입력하면, DNS가 이를 서버의 IP 주소로 변환하여 접속을 가능하게 한다.
예를 들어,
www.google.com
은142.250.76.142
로 변환된다.
Route 53은 도메인 이름 등록과 함께 A 레코드, CNAME 레코드 등 다양한 DNS 레코드를 지원한다. DNS 레코드를 통해 도메인 이름을 서버 IP 주소에 매핑할 수 있다.
VPC는 가상 네트워크로, 사용자가 AWS 인프라에서 네트워크를 정의할 수 있도록 해준다. 사용자는 IP 주소 범위, 서브넷, 라우팅 테이블, 게이트웨이 등을 설정할 수 있다.
서브넷: VPC 내에서 IP 주소 범위를 지정한 가상 네트워크다.
퍼블릭 서브넷: 인터넷과 연결된 서브넷으로, 인스턴스가 인터넷에 접근할 수 있다.
프라이빗 서브넷: 인터넷과 직접 연결되지 않은 서브넷이다.
NAT 게이트웨이: 프라이빗 서브넷의 인스턴스가 인터넷으로 나갈 수 있도록 한다.
S3는 AWS의 객체 스토리지 서비스로, 무제한 확장성을 제공한다. 파일은 버킷 안에 저장되며, 각각 고유한 키로 식별된다. S3는 웹 애플리케이션 데이터 저장, 백업, 정적 파일 호스팅에 사용된다.
S3 사용 예시
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<title>S3에 배포한 사이트</title>
</head>
<body>
<h1>S3로 정적 웹사이트 배포</h1>
</body>
</html>
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
CloudFront는 AWS의 CDN(Content Delivery Network)
서비스로, 사용자와 가까운 엣지 로케이션에서 콘텐츠를 빠르게 제공한다. 웹사이트 속도를 개선하고, DDoS 공격에 대비할 수 있는 방어 기능을 제공한다.
CloudFront는 Route 53과 S3와 통합되어 더욱 빠르고 안전한 콘텐츠 배포가 가능하다. 정적 파일을 CloudFront로 캐싱하면 전 세계 어디서든 빠르게 제공된다.
Elastic Beanstalk는 AWS의 PaaS(Platform as a Service) 서비스로, 애플리케이션 배포와 관리를 자동화한다. EC2, RDS, S3 등 AWS 리소스를 자동으로 설정하고 확장하는 데 필요한 인프라 작업을 처리해준다.
자동 스케일링: 애플리케이션 트래픽에 따라 EC2 인스턴스의 수를 자동으로 조정한다.
관리형 환경: 기본 인프라 설정을 자동화하여 애플리케이션 개발에만 집중할 수 있다.
출처 :
All About AWS
https://teamsparta.notion.site/All-About-AWS-323b69fa80534210adb5e07e2bf14f74