241001 내일배움캠프 백엔드 Java 6기 TIL : AWS 기본개념

박대현·2024년 10월 1일
0

1주차

On-premise : 조직 내부에 설치되고 유지보수되는 서버, 클라우드 서비스와 대조적

2주차

IAM(AWS Identity and Access Management) : AWS에서 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어

  • 인증, 권한부여, 권한검증
  • Users, Groups, Policies

MFA(Multi-Factor Authentication) : 다중 인증 요소 인증 방식. 일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화

3주차

클라우드 서비스의 종류

  • IaaS (Infrastructure as a Service) : 하드웨어 인프라를 인터넷을 통해 제공하는 서비스. 가상화된 하드웨어, 스토리지, 네트워크, 운영체제 등을 제공. AWS EC2, Microsoft Azure, Google Compute Engine 등
  • PaaS (Platform as a Service) : 애플리케이션을 개발, 실행, 관리하기 위한 플랫폼을 인터넷을 통해 제공하는 서비스. IaaS에서 제공하는 하드웨어 인프라와 미들웨어를 이용하여, 애플리케이션 개발, 배포, 운영 등에 필요한 환경을 제공합니다. AWS Elastic Beanstalk, Heroku, Google App Engine 등
  • SaaS (Software as a Service): 사용자에게 완전한 애플리케이션을 제공하며, 이 애플리케이션은 클라우드 제공업체의 서버에서 실행. 사용자는 애플리케이션에 대한 제한된 제어권을 가지며, 클라우드 제공업체가 모든 인프라, 운영 체제, 백엔드 애플리케이션 및 데이터 관리를 담당. 구글 드라이브, 마이크로소프트 오피스 365, Salesforce 등

EC2의 다양한 용도 : 웹 애플리케이션 호스팅, 데이터베이스 호스팅, 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝), 애플리케이션 테스트 및 개발

포트

  • 22 = ssh(secure shell)로 인스턴스에 원격 접속
  • 21 = FTP 파일전송 프로토콜
  • 80 = http 웹 접속
  • 443 = https 안전한 http 접속, 현재의 스탠다드

chmod : 파일이나 디렉토리의 권한을 변경하는 유닉스 명령어

  • chmod 400 : 이 권한을 설정하면 소유자만이 해당 파일에 대해 읽기 권한만 부여
  • chmod 644 : 소유자에게 읽기와 쓰기권한, 그룹과 나머지에게 읽기 권한

EBS(Amazon Elastic Block Store) : EC2 인스턴스에 연결할 수 있는 블록 수준 스토리지 볼륨. 네트워크를 통해 Amazon EC2 인스턴스에 연결되므로 데이터 지속성, 스냅샷 백업 및 다른 인스턴스에서 쉽게 사용할 수 있음. AWS 내에서 복제 및 백업되므로 안정적이고 내결함성이 높음. 인스턴스를 terminate 한 후에도 데이터를 유지가능. 특정 AZ에 한정.(인스턴스의 usb 메모리같은 것), 하나의 EBS는 하나의 인스턴스에만 연결될 수 있지만 하나의 인스턴스에는 여러개의 EBS가 연결될 수 있음.

  • EBS snapshot : EBS 볼륨의 데이터를 인스턴스 내에서 복제하고, 이를 S3에 저장.
    • 데이터 백업 및 복원, 볼륨 확장, 데이터 마이그레이션 등의 용도로 사용

AMI(Amazon Machine Image) : Amazon Machine Image (AMI)는 EC2 인스턴스를 시작할 때 사용되는 이미지. AMI는 이미 설치된 운영 체제와 애플리케이션을 포함하여 인스턴스를 구성하는 데 필요한 모든 정보를 포함. 이를 통해 AMI를 사용하여 손쉽게 EC2 인스턴스를 시작하고, 중지하고, 삭제하고, 복제하고, 복원할 수 있음.

4주차

Scalability vs Availability

Scalability : 시스템이 커지거나 작아질 수 있는 능력. 사용자 수, 데이터 양, 처리량 등이 증가할 때 시스템의 성능과 처리 능력을 유지하거나 향상시키는 것을 말함.

Availability : 시스템이 정상적으로 작동하고 사용 가능한 상태를 유지하는 능력. 사용자가 요청하는 서비스를 항상 이용 가능한 상태로 유지하는 것.

ELB(Elastic Load Balancer) : 다수의 EC2 인스턴스를 사용하여 트래픽을 분산. 주로 Application Load Balancer를 사용.

  • Application Load Balancer : OSI 모델 7계층에서 동작하며, HTTP/HTTPS 트래픽을 처리. 컨테이너화된 애플리케이션과 연동하여 사용 가능.

SSL(Secure Sockets Layer) : 인터넷 상에서 정보를 안전하게 전송하기 위한 프로토콜
TLS(Transport Layer Security) : SSL 업그레이드 버전

SSH와 SSL
공통점 : 네트워크 보안을 제공하는 프로토콜
차이점
SSH (Secure Shell)

  • 주요 목적: 원격 서버에 안전하게 접속하기 위해 사용됨.
  • 주요 기능: 원격 서버에 로그인, 원격 명령어 실행, 파일 전송(SCP, SFTP)
  • 사용 방식: 주로 시스템 관리자나 개발자가 서버 관리나 파일 전송 작업에 사용.
  • 포트: 기본적으로 22번 포트 사용.

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

  • 주요 목적: 웹 브라우저와 서버 간의 통신을 암호화하여 보안 제공. 주로 HTTPS에서 사용됨.

  • 주요 기능: 데이터 전송의 무결성 및 보안 보장, HTTPS(SSL 인증서를 통한 안전한 웹사이트 연결) 사용, 이메일, 메시징 등 다양한 애플리케이션에서 데이터 암호화

  • 사용 방식: 주로 웹사이트에서 사용되며, 클라이언트(브라우저)와 서버 간의 민감한 정보(예: 비밀번호, 신용카드 정보) 보호.

  • 포트: 기본적으로 443번 포트 사용.

  • SSH는 주로 원격 서버 관리에 사용되며, SSL은 웹사이트나 애플리케이션에서 데이터를 안전하게 전송하는 데 사용.

  • SSH는 서버 로그인 및 명령어 실행을 위한 것이고, SSL은 데이터 암호화 및 웹 보안을 위한 프로토콜.

5주차

EC2 인스턴스 내에 직접 데이터베이스를 설치하고 구성하는 대신, RDS 서비스를 사용하여 데이터베이스를 생성, 관리 및 확장

EC2 상에 DB만들기보다 RDS가 나은점

  • RDS는 DB를 위한 인프라를 자동으로 구축(provisioning), 업데이트
  • 지속적인 백업과 복구 기능 지원
  • 모니터 대시보드 지원
  • 성능향상을 위한 read replicas 지원
  • Disaster Recovery를 위한 multi AZ 지원
  • 수평/수직 확장성 지원
  • EBS 백업 지원
  • Storage Auto Scaling

하지만 SSH로 접속 불가능하다..


6주차

DNS 서비스 계층 구조
1. Root DNS Server

  • DNS 계층 구조에서 가장 상위.
  • 모든 DNS 쿼리는 먼저 Root DNS Server에 도착하여 해당 도메인의 TLD(Top-Level Domain) DNS Server의 주소를 알아내야.
  1. TLD DNS Server
  • 도메인 이름의 최상위 레벨에 해당하는 .com, .net, .org, .kr 등의 TLD를 관리.
  • 모든 도메인 이름은 하나 이상의 TLD에 속하며, TLD DNS Server는 해당 도메인 이름이 속한 SLD(Secod-Level Domain) DNS Server의 주소를 알려줌.
  1. SLD DNS Server
  • 도메인 이름의 중간 레벨에 해당.
  • 일반적으로 사용자가 만든 이름이며, 해당 도메인 이름에 대한 IP 주소를 반환.

DNS 레코드 타입은 다음과 같습니다.

  • A 레코드: 도메인이름과 IPv4 주소를 연결합니다.
  • AAAA 레코드: 도메인이름과 IPv6 주소를 연결합니다.
  • CNAME 레코드: 한 도메인을 다른 도메인으로 별명처럼 연결(www.example.com -> example.com)
  • NS 레코드: 해당 도메인의 네임 서버 정보를 정의.(네임 서버: 도메인 이름을 관리하는 서버)(example.com -> ns1.exampledns.com)

CNAME vs Alias

TTL(Time to Live) : DNS 레코드가 캐싱될 수 있는 최대 시간을 나타내는 값

7주차

VPC(Virtual Private Cloud) : AWS에서 제공하는 클라우드 컴퓨팅 리소스를 사용할 수 있는 가상의 사설 네트워크. 사용자는 VPC 내에서 IP 주소 범위, 라우팅 테이블, 서브넷 및 보안 그룹을 설정. 가상 서버, 스토리지 및 데이터베이스와 같은 다양한 AWS 리소스를 시작하고 관리할 수 있음.

Subnet : VPC 내에서 IP 주소 범위를 지정하는 가상의 네트워크. VPC 내에서 다른 서브넷과 격리된 가상 네트워크를 생성함으로써 다양한 서비스를 실행하는 데 필요한 보안 요구 사항을 충족시킬 수 있음.

  • Pulbic Subnet : IGW(Internet Gateway)와 연결됨으로써 인터넷에 직접 연결되어있는 서브넷. 인터넷에서 직접 액세스할 수 있는 인스턴스를 실행
  • Private Subnet : 인터넷과 직접 연결되지 않는 가상의 네트워크. 대신, NAT 게이트웨이를 사용하여 인터넷을 통해 인스턴스에 연결하거나, 다른 VPC와 연결할 수 있습니다.
    • NAT (Network Address Translation) Gateway : 프라이빗 서브넷에서 아웃바운드 인터넷 트래픽을 가능하게 하는 서비스.

8주차

S3 : 인터넷 스토리지 서비스
용례

  • 웹 사이트 호스팅
  • 멀티미디어 파일 저장 및 스트리밍
  • 애플리케이션 데이터 저장
  • 백업 및 복원
  • 아카이브
    장점
  • 높은 내구성, 가용성 및 안정성
  • 손쉬운 사용 및 관리
  • 보안성
  • 높은 확장성

9주차

CDN(Content Delivery Network) : 콘텐츠 전송 네트워크를 의미해. 주된 목적은 웹사이트나 애플리케이션의 콘텐츠(이미지, HTML, JavaScript, CSS, 비디오 등)를 사용자에게 가장 빠르게 제공.

  • 캐싱: CDN은 웹 콘텐츠(이미지, CSS, JS 등)를 여러 서버에 캐싱, 사용자가 가까운 서버에서 빠르게 받아볼 수 있게 함.
  • 트래픽 분산: 여러 서버로 트래픽을 분산시켜, 특정 서버에 과부하가 걸리지 않도록 함.
  • 사용자와 가까운 서버에서 제공: 사용자와 물리적으로 가까운 서버에서 콘텐츠를 제공함으로써, 네트워크 지연을 줄임.

Cloudfront는 CDN서비스의 한 종류

10주차

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는 이 데이터 계층과 애플리케이션 계층 간의 통신을 쉽게 설정.

0개의 댓글