On-premise : 조직 내부에 설치되고 유지보수되는 서버, 클라우드 서비스와 대조적
IAM(AWS Identity and Access Management) : AWS에서 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어
MFA(Multi-Factor Authentication) : 다중 인증 요소 인증 방식. 일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화
클라우드 서비스의 종류
EC2의 다양한 용도 : 웹 애플리케이션 호스팅, 데이터베이스 호스팅, 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝), 애플리케이션 테스트 및 개발
포트
chmod : 파일이나 디렉토리의 권한을 변경하는 유닉스 명령어
EBS(Amazon Elastic Block Store) : EC2 인스턴스에 연결할 수 있는 블록 수준 스토리지 볼륨. 네트워크를 통해 Amazon EC2 인스턴스에 연결되므로 데이터 지속성, 스냅샷 백업 및 다른 인스턴스에서 쉽게 사용할 수 있음. AWS 내에서 복제 및 백업되므로 안정적이고 내결함성이 높음. 인스턴스를 terminate 한 후에도 데이터를 유지가능. 특정 AZ에 한정.(인스턴스의 usb 메모리같은 것), 하나의 EBS는 하나의 인스턴스에만 연결될 수 있지만 하나의 인스턴스에는 여러개의 EBS가 연결될 수 있음.
AMI(Amazon Machine Image) : Amazon Machine Image (AMI)는 EC2 인스턴스를 시작할 때 사용되는 이미지. AMI는 이미 설치된 운영 체제와 애플리케이션을 포함하여 인스턴스를 구성하는 데 필요한 모든 정보를 포함. 이를 통해 AMI를 사용하여 손쉽게 EC2 인스턴스를 시작하고, 중지하고, 삭제하고, 복제하고, 복원할 수 있음.
Scalability vs Availability
Scalability : 시스템이 커지거나 작아질 수 있는 능력. 사용자 수, 데이터 양, 처리량 등이 증가할 때 시스템의 성능과 처리 능력을 유지하거나 향상시키는 것을 말함.
Availability : 시스템이 정상적으로 작동하고 사용 가능한 상태를 유지하는 능력. 사용자가 요청하는 서비스를 항상 이용 가능한 상태로 유지하는 것.
ELB(Elastic Load Balancer) : 다수의 EC2 인스턴스를 사용하여 트래픽을 분산. 주로 Application Load Balancer를 사용.
SSL(Secure Sockets Layer) : 인터넷 상에서 정보를 안전하게 전송하기 위한 프로토콜
TLS(Transport Layer Security) : SSL 업그레이드 버전
SSH와 SSL
공통점 : 네트워크 보안을 제공하는 프로토콜
차이점
SSH (Secure Shell)
SSL (Secure Sockets Layer) / TLS (Transport Layer Security)
주요 목적: 웹 브라우저와 서버 간의 통신을 암호화하여 보안 제공. 주로 HTTPS에서 사용됨.
주요 기능: 데이터 전송의 무결성 및 보안 보장, HTTPS(SSL 인증서를 통한 안전한 웹사이트 연결) 사용, 이메일, 메시징 등 다양한 애플리케이션에서 데이터 암호화
사용 방식: 주로 웹사이트에서 사용되며, 클라이언트(브라우저)와 서버 간의 민감한 정보(예: 비밀번호, 신용카드 정보) 보호.
포트: 기본적으로 443번 포트 사용.
SSH는 주로 원격 서버 관리에 사용되며, SSL은 웹사이트나 애플리케이션에서 데이터를 안전하게 전송하는 데 사용.
SSH는 서버 로그인 및 명령어 실행을 위한 것이고, SSL은 데이터 암호화 및 웹 보안을 위한 프로토콜.
EC2 인스턴스 내에 직접 데이터베이스를 설치하고 구성하는 대신, RDS 서비스를 사용하여 데이터베이스를 생성, 관리 및 확장
EC2 상에 DB만들기보다 RDS가 나은점
하지만 SSH로 접속 불가능하다..
DNS 서비스 계층 구조
1. Root DNS Server
DNS 레코드 타입은 다음과 같습니다.
CNAME vs Alias
TTL(Time to Live) : DNS 레코드가 캐싱될 수 있는 최대 시간을 나타내는 값
VPC(Virtual Private Cloud) : AWS에서 제공하는 클라우드 컴퓨팅 리소스를 사용할 수 있는 가상의 사설 네트워크. 사용자는 VPC 내에서 IP 주소 범위, 라우팅 테이블, 서브넷 및 보안 그룹을 설정. 가상 서버, 스토리지 및 데이터베이스와 같은 다양한 AWS 리소스를 시작하고 관리할 수 있음.
Subnet : VPC 내에서 IP 주소 범위를 지정하는 가상의 네트워크. VPC 내에서 다른 서브넷과 격리된 가상 네트워크를 생성함으로써 다양한 서비스를 실행하는 데 필요한 보안 요구 사항을 충족시킬 수 있음.
S3 : 인터넷 스토리지 서비스
용례
CDN(Content Delivery Network) : 콘텐츠 전송 네트워크를 의미해. 주된 목적은 웹사이트나 애플리케이션의 콘텐츠(이미지, HTML, JavaScript, CSS, 비디오 등)를 사용자에게 가장 빠르게 제공.
Cloudfront는 CDN서비스의 한 종류
Elastic Beanstalk : 3-tier 아키텍처를 쉽게 구축하고 관리할 수 있도록 도와주는 서비스
3-tier 아키텍쳐
프레젠테이션 계층(public subnet,로드밸런서): 웹 서버(Nginx, Apache 등)를 Elastic Beanstalk에서 자동으로 관리해줌. 사용자는 UI를 요청하고, 이 웹 서버가 그 요청을 애플리케이션 서버로 전달.
애플리케이션 계층(private subnet): 애플리케이션 서버(Node.js, Java, Python 등으로 작성된 코드)를 Elastic Beanstalk가 관리하고 실행. 비즈니스 로직을 처리하는 서버.
데이터 계층(data subnet): AWS의 RDS나 DynamoDB 같은 데이터베이스 서비스와 연결하여 데이터를 저장하고 관리. Elastic Beanstalk는 이 데이터 계층과 애플리케이션 계층 간의 통신을 쉽게 설정.