*AWS 개념
-
AWS의 장점 , 리소스(서비스) 종류
-
AWS 장점:
-
확장성: 필요에 따라 IT 리소스를 신속하게 늘리거나 축소할 수 있는 확장성을 제공합니다.
-
다양한 서비스: AWS는 컴퓨팅, 스토리지, 데이터베이스, 네트워킹, 분석, 인공지능, IoT 및 기타 다양한 서비스를 제공하여 다양한 비즈니스 요구를 충족시킬 수 있습니다.
-
안정성 및 신뢰성: AWS는 강력한 보안 및 신뢰성을 제공하여 데이터 보호와 시스템 안정성을 보장합니다. 또한, 글로벌 인프라를 기반으로 하는 서비스 제공으로 지연 시간을 최소화하여 안정적인 서비스를 제공합니다.
-
비용 효율성: AWS는 pay-as-you-go 모델을 채택하여 필요한 만큼의 리소스를 사용하고 지불하는 형태로 비용을 효율적으로 관리할 수 있습니다.
-
혁신적인 기술: AWS는 지속적인 혁신을 통해 새로운 기술과 서비스를 지속적으로 제공하며, 이를 통해 사용자는 최신 기술을 활용할 수 있습니다.
-
리소스 종류:
-
컴퓨팅 서비스:
Amazon EC2 (Elastic Compute Cloud): 가상 서버를 제공하는 서비스
AWS Lambda: 서버리스 컴퓨팅을 제공하는 이벤트 기반 컴퓨팅 서비스
Amazon ECS (Elastic Container Service): 컨테이너화된 애플리케이션을 실행하는 서비스
-
스토리지 및 데이터베이스:
Amazon S3 (Simple Storage Service): 객체 스토리지 서비스
Amazon RDS (Relational Database Service): 관계형 데이터베이스를 호스팅하는 서비스
Amazon DynamoDB: 관리형 NoSQL 데이터베이스 서비스
-
네트워킹:
Amazon VPC (Virtual Private Cloud): 가상 네트워크를 제공하는 서비스
Amazon Route 53: DNS 웹 서비스를 제공하는 서비스
AWS Direct Connect: 전용 네트워크 연결을 제공하는 서비스
-
관리 및 보안:
AWS IAM (Identity and Access Management): AWS 리소스에 대한 보안 및 권한을 관리하는 서비스
Amazon CloudWatch: AWS 리소스의 모니터링 및 로깅 서비스
AWS Config: AWS 리소스의 구성을 평가하고 관리하는 서비스
-
인공지능 및 머신 러닝:
Amazon SageMaker: 머신 러닝 모델을 구축, 훈련 및 배포하는 서비스
Amazon Rekognition: 이미지 및 비디오 분석을 위한 서비스
Amazon Comprehend: 자연어 처리를 위한 서비스
-
AWS 구조 및 용어 ( 리전, AZ, VPC, IGW, 라우팅 테이블 등... )
-
리전(Region):
- AWS의 리전은 지리적으로 분산된 데이터 센터 그룹을 나타냅니다. 각 리전은 독립적이며, 고객은 여러 리전에 걸쳐 리소스를 프로비저닝할 수 있습니다.
- 예를 들어, 미국 동부(버지니아 북부), 아시아 태평양(도쿄), 유럽(런던) 등이 리전의 예시입니다.
-
가용 영역(Availability Zone, AZ):
- 리전 내의 물리적으로 독립된 데이터 센터를 의미합니다.
- 각 가용 영역은 고가용성 및 재해 복구를 위한 격리된 공간으로 구성되어 있습니다.
-
가상 사설 클라우드(Virtual Private Cloud, VPC):
- AWS에서 제공하는 가상 네트워킹 환경으로,
- 사용자는 AWS 내에서 리소스를 프로비저닝하고 이를 격리된 네트워크 환경에서 실행할 수 있습니다.
-
인터넷 게이트웨이(Internet Gateway, IGW):
- VPC와 외부의 인터넷과의 통신을 가능하게 하는 게이트웨이입니다.
- IGW를 통해 VPC 내의 리소스가 외부와 통신할 수 있습니다.
-
라우팅 테이블(Routing Table):
- VPC 내에서 네트워크 트래픽을 전달하는 데 사용되는 라우팅 규칙의 집합입니다.
- 라우팅 테이블을 통해 트래픽이 목적지로 전달됩니다.
*IAM
-IAM 개념
- IAM(Identity and Access Management):
- AWS(Amazon Web Services)에서 제공하는 서비스로, 사용자와 리소스에 대한 보안을 관리하는 데 사용됩니다.
- IAM을 사용하면 AWS 계정 내에서 사용자, 그룹, 역할 등을 생성하고 관리하여 AWS 리소스에 대한 접근 권한을 제어할 수 있습니다.
-사용자, 그룹 생성, 역할 및 정책 생성
-
사용자(User) 생성:
- AWS Management Console에 로그인한 후 IAM 대시보드로 이동합니다.
- "사용자 추가"를 클릭하고 원하는 사용자 이름을 입력한 후 액세스 유형을 선택합니다(콘솔 액세스, 프로그래밍 액세스 등).
- 암호를 설정하거나 자격증명을 생성한 후 권한을 부여합니다.
-
그룹(Group) 생성:
- IAM 대시보드에서 "그룹 추가"를 클릭합니다.
- 그룹 이름을 정하고 해당 그룹에 사용할 권한을 선택합니다.
- 사용자를 그룹에 추가하여 해당 그룹의 권한을 상속받도록 설정합니다.
-
역할(Role) 생성:
- IAM 대시보드에서 "역할 추가"를 클릭합니다.
- 역할 유형을 선택하고, 역할을 신뢰할 수 있는 엔터티(예: AWS 서비스)를 지정합니다.
- 필요에 따라 역할에 권한을 부여하고 정책을 연결합니다.
-
정책(Policy) 생성:
- IAM 대시보드에서 "정책 추가"를 클릭합니다.
- 정책을 직접 작성하거나, 기존의 정책을 수정하여 새로운 정책을 생성합니다.
- 정책에서는 특정 작업에 대한 권한을 정의하고, 해당 정책을 역할, 사용자, 그룹 등에 연결하여 권한을 부여합니다.
*EC2
-EC2개념
- EC2(Elastic Compute Cloud):
- 가상 서버를 제공하는 웹 서비스입니다. EC2를 사용하면 사용자는 필요에 따라 가상 컴퓨팅 환경을 프로비저닝하고 실행할 수 있습니다.
-요금 지불 방법
-
온디맨드 요금:
- 이 요금 모델은 실제로 사용한 만큼만 지불하는 방식입니다.
- 시간 단위로 청구되며, 인스턴스를 시작하고 중지할 때까지의 사용량에 따라 과금됩니다.
-
예약 인스턴스:
- 예약 인스턴스를 예약하면 특정 유형의 인스턴스를 일정 기간 동안 예약할 수 있으며,
- 미리 지불하고 할인된 가격으로 사용할 수 있습니다.
-
스팟 인스턴스:
- 스팟 시장에서 유휴 용량을 활용하여 저렴한 비용으로 인스턴스를 실행할 수 있습니다.
- 스팟 가격은 수요와 공급에 따라 변동하므로 유의해야 합니다.
-
예약 용량:
- 예약 용량을 예약하면 일정 기간 동안 특정 유형의 인스턴스를 예약할 수 있으며,
- 최대 75%의 할인 혜택을 받을 수 있습니다.
-EC2 생성 및 배포, 스냅샷, 볼륨 생성
-
EC2 인스턴스 생성 및 배포:
- AWS Management Console에 로그인한 후 EC2 대시보드로 이동합니다.
- "인스턴스 시작"을 클릭하여 인스턴스 설정 마법사를 시작합니다.
- AMI(Amazon Machine Image)를 선택하고, 인스턴스 유형, 네트워크 설정, 스토리지 등을 구성합니다.
- 보안 그룹 및 키 페어를 선택하고, 마지막으로 인스턴스를 시작합니다.
-
스냅샷 생성:
- AWS Management Console에서 EC2 대시보드로 이동합니다.
- "볼륨" 섹션으로 이동하여 스냅샷을 생성할 EBS(Elastic Block Store) 볼륨을 선택합니다.
- "작업" 메뉴에서 "스냅샷 만들기"를 선택하고, 스냅샷에 이름을 지정하고 설명을 추가한 후 스냅샷을 생성합니다.
-
볼륨 생성:
- AWS Management Console에서 EC2 대시보드로 이동합니다.
- "볼륨" 섹션으로 이동하여 새 볼륨을 생성하려는 가용 영역을 선택합니다.
- "볼륨 생성"을 클릭하고, 볼륨 유형, 크기 및 가용 영역을 설정한 후 볼륨을 생성합니다.
-SSH를 통한 접속 방법
-
키페어(Key Pair) 생성:
- AWS Management Console에서 EC2 대시보드로 이동합니다.
- "키페어"를 선택하고 "키페어 생성"을 클릭합니다.
- 키페어에 이름을 지정하고 "키페어 다운로드"를 클릭하여 .pem 형식의 개인 키 파일을 저장합니다.
-
SSH 클라이언트 설정:
- SSH 클라이언트를 사용하여 EC2 인스턴스에 연결합니다. 예를 들어, macOS 및 Linux 사용자는 터미널을, Windows 사용자는 PuTTY와 같은 SSH 클라이언트를 사용할 수 있습니다.
-
SSH 명령어를 통한 접속:
- 키 파일을 보안 폴더에 이동한 후 해당 폴더에서 터미널 또는 명령 프롬프트를 엽니다.
- SSH 명령어를 사용하여 인스턴스에 연결합니다. (ssh ec2-user@인스턴스공인IP)
- 사용자이름은 EC2 인스턴스의 운영 체제에 따라 ec2-user, ubuntu, admin 등이 될 수 있으며, 인스턴스공인IP는 EC2 인스턴스의 공인 IP 주소입니다.
*RDS
-RDS 개념
RDS (Relational Database Service):
- Amazon Web Services (AWS)에서 제공하는 완전 관리형 관계형 데이터베이스 서비스입니다.
- RDS를 사용하면 사용자는 데이터베이스 관리 및 유지보수에 대한 부담을 줄이고 안정적이고 확장 가능한 관계형 데이터베이스를 쉽게 구축하고 운영할 수 있습니다
-EC2생성 과 RDS 연동(mySQL)
-
RDS(MySQL) 인스턴스 생성:
- AWS Management Console에서 RDS 대시보드로 이동합니다.
- "데이터베이스 생성"을 클릭하여 MySQL 데이터베이스를 생성합니다.
- 데이터베이스 엔진으로 MySQL을 선택하고, 인스턴스 사양, 인증 정보, 데이터베이스 이름 등을 구성합니다.
-
보안 그룹 및 네트워크 구성:
- RDS 보안 그룹을 생성하고,
- 필요에 따라 인바운드 및 아웃바운드 규칙을 추가하여 애플리케이션 서버(EC2)에서 RDS에 접근할 수 있도록 설정합니다.
-
RDS 접속 정보 확인:
- RDS 콘솔에서 생성한 MySQL 데이터베이스의 호스트 주소, 포트, 데이터베이스 이름, 사용자 이름 및 암호를 확인합니다.
-
애플리케이션 설정:
- 애플리케이션의 데이터베이스 연결 설정 파일 또는 환경 변수에 RDS의 접속 정보를 입력합니다.
- 이는 애플리케이션이 RDS에 연결할 때 사용됩니다.
-
애플리케이션 코드 수정:
- 애플리케이션 코드에서 데이터베이스 연결 부분을 RDS의 호스트, 포트, 데이터베이스 이름, 사용자 이름, 암호에 맞게 수정합니다.
-
테스트 및 배포:
- 수정된 애플리케이션을 테스트하고,
- 정상적으로 RDS와의 연결이 이루어지는지 확인한 후 애플리케이션을 배포합니다.
-스냅샷을 이용한 데이터 베이스 백업
-
RDS 콘솔로 이동:
- AWS Management Console에서 RDS 대시보드로 이동합니다.
-
스냅샷 생성:
- 백업하려는 RDS 인스턴스를 선택합니다.
- "스냅샷 생성"을 클릭하여 수동으로 스냅샷을 생성합니다.
- 스냅샷에 대한 설명을 입력하고, "스냅샷 생성"을 클릭합니다.
-
자동 스냅샷 설정 (옵션):
- RDS 콘솔에서 해당 RDS 인스턴스를 선택하고, "인스턴스 작업" > "수정"을 클릭합니다.
- "백업" 섹션에서 자동 백업을 활성화하고, 자동 백업 주기 및 보관 기간을 설정합니다.
-
스냅샷을 통한 복원:
- RDS 콘솔에서 "스냅샷" 탭으로 이동하여 백업된 스냅샷 목록을 확인합니다.
- 복원을 원하는 스냅샷을 선택하고, "스냅샷 작업" > "복원"을 클릭합니다.
- 복원할 RDS 인스턴스의 설정을 구성하고, "복원"을 클릭하여 스냅샷을 사용하여 데이터베이스를 복원합니다.
-엔드포인트를 이용해서 RDS에 접속하기
-
RDS 콘솔로 이동:
- AWS Management Console에서 RDS 대시보드로 이동합니다.
-
엔드포인트 확인:
- 접속하려는 RDS 인스턴스를 선택하고, "엔드포인트 및 포트" 정보를 확인합니다.
- 이 정보에는 엔드포인트 주소와 포트 번호가 포함됩니다.
-
MySQL 클라이언트 사용:
- MySQL 클라이언트 또는 다른 데이터베이스 관리 도구를 사용하여 RDS에 접속합니다.
- 터미널 또는 명령 프롬프트에서 MySQL 클라이언트를 실행하고, 다음과 같은 명령을 사용하여 RDS에 접속합니다.
- mysql -h 엔드포인트주소 -P 포트번호 -u 사용자이름 -p
- 여기서 엔드포인트 주소는 RDS 엔드포인트 주소, 포트번호는 RDS의 포트 번호, 사용자이름은 데이터베이스에 접속할 사용자의 이름입니다. -p 옵션을 사용하면 비밀번호를 입력할 수 있습니다.
-
비밀번호 입력:
- 위 명령을 실행하면 비밀번호를 입력하라는 프롬프트가 나타납니다. RDS 데이터베이스에 접속할 사용자의 비밀번호를 입력합니다.
- 이와 같이 RDS 엔드포인트를 사용하여 MySQL 클라이언트를 통해 RDS에 접속할 수 있습니다.
*S3 ( AWS 스토리지 )
-버킷 생성 및 버킷 정책
*S3에서 버킷 생성하기:
*S3 버킷에 정책 추가:
-
버킷 선택:
-
속성 탭으로 이동:
-
버킷 정책 추가:
- "버킷 정책 편집"을 클릭하여 새로운 정책을 추가합니다.
-
정책 작성:
- JSON 형식으로 버킷 정책을 작성합니다. 예를 들어, 모든 사용자에 대해 읽기 권한을 허용하는 간단한 버킷 정책은 다음과 같이 작성할 수 있습니다.

- 위 예시에서 "버킷이름"은 생성한 버킷의 이름으로 대체되어야 합니다.
-
정책 저장:
- 정책을 작성한 후에는 "정책 저장"을 클릭하여 정책을 버킷에 적용합니다.
-버킷에 파일 업로드 및 ACL을 통한 접근 허용/차단
*S3 버킷에 파일 업로드:
-EBS, EFS, S3 개념 및 각각의 사용법 과 3가지 연동
-
EBS (Elastic Block Store):
- EBS는 EC2 인스턴스에 연결하여 사용하는 블록 수준 스토리지 서비스입니다.
- 사용법: EC2 인스턴스에 EBS 볼륨을 연결하여 파일 시스템을 생성하거나 데이터를 저장합니다. 일반적으로 데이터베이스, 파일 시스템, 애플리케이션 데이터 등을 저장하는 데 사용됩니다.
-
EFS (Elastic File System):
- EFS는 여러 EC2 인스턴스에서 공유할 수 있는 네트워크 파일 시스템 서비스입니다.
- 사용법: EFS 파일 시스템을 생성하고 여러 EC2 인스턴스에 마운트하여 공유 스토리지로 사용합니다. 여러 EC2 인스턴스 간에 데이터를 공유하거나 확장 가능한 파일 스토리지가 필요한 경우에 사용됩니다.
-
S3 (Simple Storage Service):
- S3는 객체 스토리지 서비스로, 웹 서비스, 백업 및 복원, 정적 웹 사이트 호스팅 등에 사용됩니다.
- 사용법: 파일이나 객체를 S3 버킷에 업로드하여 저장하고, 필요에 따라 버킷 내에서 관리하거나 웹에서 직접 액세스할 수 있습니다.
-
3가지 스토리지를 연동하는 방법:
- EBS 볼륨에 저장된 데이터를 정기적으로 S3에 백업하여 데이터의 보존 및 재해 복구를 위한 안전한 보관을 수행할 수 있습니다.
- EFS를 사용하여 여러 EC2 인스턴스 간에 데이터를 공유하고, 이러한 데이터를 S3로 백업하여 추가적인 보안 및 재해 복구 기능을 제공할 수 있습니다.
- S3 버킷에 저장된 정적 웹 사이트 컨텐츠를 EC2 인스턴스에 배포하여 웹 호스팅을 구현하거나, 필요에 따라 EBS 또는 EFS와 연동하여 동적 콘텐츠를 제공할 수 있습니다.
*CloudWatch
-CloudWatch 개념 및 모니터링 종류
CloudWatch 개념
- CloudWatch:
- AWS의 모니터링 및 관찰 서비스로, 다양한 AWS 리소스의 성능을 모니터링하고 로깅할 수 있습니다.
- 이를 통해 시스템의 건강 상태를 파악하고 성능 문제를 식별할 수 있습니다.
모니터링 종류
-
표준 모니터링:
- 5분 간격으로 지표를 수집하며, EC2 인스턴스, ELB 등의 AWS 리소스에 대한 기본적인 지표를 제공합니다.
-
세분화된 모니터링:
- 1분 간격으로 지표를 수집하며, 추가 요금이 발생하지만 더 자세한 모니터링이 가능합니다.
-
사용자 지정 지표:
- 애플리케이션 및 비즈니스 지표와 같이 사용자가 지정한 지표를 생성하고 수집할 수 있습니다.
또한 CloudWatch는 로그 모니터링을 통해 로그 데이터를 수집, 저장하고 분석할 수 있으며, 경보 및 대시보드를 통해 운영 상태를 시각화할 수 있습니다.
-경보의 생성 및 경보 알림
-
경보 생성:
- AWS Management Console에 로그인한 후, CloudWatch 콘솔로 이동합니다.
- 좌측 네비게이션에서 "알람"을 선택한 후 "알람 만들기" 버튼을 클릭합니다.
- 원하는 서비스 및 지표를 선택하고, 조건을 설정합니다 (예: CPU 사용률이 70% 이상).
- 경보를 트리거할 조건과 경보 상태를 정의한 후, 경보에 이름을 지정하고 경보를 생성합니다.
-
알림 설정:
- 경보가 생성되면, 해당 경보에 대한 알림을 설정할 수 있습니다.
- 경보 상태가 변경될 때 알림을 받을 수 있는 SNS 주제를 선택하고, 알림을 받을 구독자(이메일, SMS 등)를 추가합니다.
- 알림을 받을 구독자의 권한을 확인하고 구독을 활성화합니다.
*Lambda
-람다의 정의
- AWS Lambda:
- 서버리스 컴퓨팅 서비스로, 코드를 실행하기 위한 컴퓨팅 리소스를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해줍니다.
- Lambda 함수를 사용하면 코드를 실행할 수 있는 환경을 프로비저닝하거나 유지 관리할 필요 없이, 필요할 때마다 코드를 실행할 수 있습니다.
-람다 함수 생성 및 실행
-
Lambda 함수 생성:
- AWS Management Console에 로그인한 후, Lambda 콘솔로 이동합니다.
- "함수 만들기"를 클릭하고, 새로운 함수를 생성할 때 사용할 템플릿을 선택합니다.
- 함수 이름, 런타임(예: Node.js, Python), 실행 역할 및 기타 구성을 지정합니다.
- 코드를 직접 업로드하거나, Amazon S3 또는 AWS CodeCommit과 같은 저장소에서 코드를 가져와 Lambda 함수에 배포합니다.
-
이벤트 트리거 구성:
- Lambda 함수가 실행될 때를 지정하기 위해 이벤트 트리거를 구성합니다. 예를 들어, API Gateway, S3 이벤트, CloudWatch 이벤트 등을 이용하여 함수를 트리거할 수 있습니다.
-
Lambda 함수 실행:
- Lambda 콘솔에서 생성한 함수를 선택하고, "테스트"를 클릭하여 이벤트를 시뮬레이션하고 함수를 실행합니다.
- 함수가 성공적으로 실행되면 실행 결과를 확인할 수 있습니다.
-람다와 CloudWatch 연동 및 확인
-
CloudWatch 로그 그룹 생성:
- 먼저, Lambda 함수에서 생성되는 로그를 수집할 CloudWatch 로그 그룹을 생성합니다.
-
Lambda 함수에 로깅 구성:
- Lambda 함수의 코드에 로그 기록을 추가하여 실행 중 발생하는 이벤트 및 정보를 로깅합니다.
- 이를 위해 대부분의 프로그래밍 언어에는 쉽게 사용할 수 있는 로깅 라이브러리가 있습니다.
-
CloudWatch 로그 스트림 확인:
- Lambda 함수가 실행될 때, 해당 함수가 생성하는 로그는 CloudWatch 로그 그룹에 스트림으로 전송됩니다.
- AWS Management Console을 통해 CloudWatch 콘솔로 이동하여 해당 로그 그룹과 로그 스트림을 확인합니다.
-
CloudWatch 경보 생성:
- Lambda 함수의 로그 기록을 모니터링하고 특정 조건이 충족될 때 경보를 받기 위해 CloudWatch 경보를 생성합니다.
- 예를 들어, 특정 오류 메시지가 로깅될 때 경보를 받도록 설정할 수 있습니다.
-
실시간 모니터링:
- CloudWatch 대시보드를 사용하여 Lambda 함수의 실행, 로그 및 성능 지표를 실시간으로 모니터링할 수 있습니다.
- 이를 통해 Lambda 함수의 상태를 신속하게 파악하고, 성능 문제를 식별할 수 있습니다.
-S3 버킷 연동과 Lambda함수를 통한 실행방법
-
S3 이벤트 트리거 설정:
- AWS Management Console에서 Lambda 콘솔로 이동하여 새로운 Lambda 함수를 생성하거나 기존의 함수를 선택합니다.
- "트리거 추가"를 클릭하고, S3를 선택하여 Lambda 함수를 S3 버킷과 연동할 수 있는 트리거를 설정합니다.
-
이벤트 유형 및 버킷 설정:
- 트리거를 추가할 때 이벤트 유형을 선택하고, 연동할 S3 버킷을 지정합니다.
- 예를 들어, 객체가 생성되었을 때, 수정되었을 때 등의 이벤트를 선택할 수 있습니다.
-
Lambda 함수 구성:
- Lambda 함수 코드를 작성하고, S3 이벤트가 발생했을 때 실행될 코드를 구현합니다.
- 이를 통해 S3 이벤트가 발생했을 때 Lambda 함수가 작동하도록 할 수 있습니다.
-
권한 설정:
- Lambda 함수가 S3 버킷과 상호 작용할 수 있도록 권한을 부여합니다.
- 이를 통해 Lambda 함수가 S3 객체를 읽거나 쓸 수 있도록 권한을 설정할 수 있습니다.
-
테스트 및 실행:
- Lambda 함수와 S3 버킷이 연동되었으므로, S3 버킷에 원하는 이벤트를 발생시키고 Lambda 함수가 예상대로 작동하는지 확인합니다.
- 이를 통해 S3 버킷과 Lambda 함수를 연동하여, S3 버킷에서 발생하는 이벤트에 대한 자동화된 작업을 Lambda 함수를 통해 실행할 수 있습니다.
*CloudFront = CDN
-CloudFront의 특징
- CloudFront:
- AWS의 Content Delivery Network(CDN) 서비스로,
- 전 세계의 사용자에게 안정적이고 빠른 콘텐츠 전송을 지원합니다.
- CloudFront를 사용하면 사용자가 가까운 엣지 로케이션에서 콘텐츠를 로드할 수 있어 웹 사이트 및 애플리케이션의 성능을 향상시킬 수 있습니다.
-CloudFront의 주요 특징:
-
글로벌 커버리지:
- 전 세계 여러 지역에 위치한 엣지 로케이션을 통해 사용자에게 빠른 응답 속도를 제공합니다.
-
보안:
- HTTPS를 통한 안전한 콘텐츠 전송과 DDoS 공격 방어를 제공합니다.
-
고성능 콘텐츠 전송:
- 캐싱, 압축, 스트리밍 등을 통해 빠르고 효율적인 콘텐츠 전송을 지원합니다.
-
다양한 콘텐츠 유형 지원:
- 정적 및 동적 콘텐츠, 비디오 스트리밍, 애니메이션, 이미지 등 다양한 콘텐츠 유형을 지원합니다.
-"엣지 로케이션"과 "오리진"(CloudFront의 핵심 개념):
-
엣지 로케이션:
- 엣지 로케이션은 전 세계 여러 지역에 위치한 CDN 서버입니다.
- 사용자가 콘텐츠를 요청할 때, 해당 콘텐츠는 엣지 로케이션에서 가장 가까운 곳에서 제공되어 더 빠르게 전송됩니다.
-
오리진:
- 오리진은 실제 콘텐츠가 저장된 원본 서버를 가리킵니다.
- 이는 Amazon S3 버킷, EC2 인스턴스, Elastic Load Balancer, 혹은 사용자 정의 오리진 서버 등이 될 수 있습니다.
- CloudFront는 오리진에서 콘텐츠를 가져와 엣지 로케이션에 캐싱하여 사용자에게 전달합니다.
-CloudFront CDN 생성 및 URL을 통한 접근
-
CloudFront 배포 생성:
- AWS Management Console에 로그인한 후, "CloudFront" 서비스로 이동합니다.
- "Create Distribution"을 클릭하여 새로운 배포를 생성합니다.
- "Web" 또는 "RTMP"를 선택하고, 원하는 설정을 구성합니다. 이때 "Origin Domain Name"은 원본 서버의 도메인이나 엔드포인트를 입력해야 합니다.
- 기타 옵션들을 구성하고 "Create Distribution"을 클릭하여 배포를 생성합니다.
-
배포 생성 후 URL 획득:
- CloudFront 배포가 생성되면 해당 배포의 상세 정보에서 "Domain Name"을 확인합니다.
- 이는 CloudFront 배포에 대한 엔드포인트 주소가 됩니다.
-
URL을 통한 접근:
*VPC
-VPC의 정의 와 역할
- VPC(Virtual Private Cloud):
- AWS(Amazon Web Services)에서 제공하는 가상 네트워크 서비스로, 사용자가 AWS 리소스를 구동하고 네트워크를 구성하는 데 사용하는 가상 네트워크입니다.
- VPC는 사용자가 정의한 가상 네트워크 내에서 AWS 리소스를 실행할 수 있도록 지원하며, 이를 통해 보안, 격리, 라우팅 및 관리를 제어할 수 있습니다.
-VPC 생성 및 설정, SSH를 통한 접속
-
VPC 생성:
- AWS Management Console에 로그인한 후, "VPC" 서비스로 이동합니다.
- "VPC 대시보드"에서 "VPC 시작하기"를 클릭하여 새 VPC를 생성합니다.
- VPC의 이름, IP 주소 범위(CIDR 블록), 서브넷 등을 설정하여 VPC를 생성합니다.
-
인터넷 게이트웨이 연결:
- VPC를 생성한 후, "인터넷 게이트웨이"를 생성하여 VPC에 연결합니다.
- VPC 라우팅 테이블을 편집하여 인터넷 게이트웨이를 대상으로 하는 라우팅을 추가합니다.
-
서브넷 생성:
- VPC에 서브넷을 생성하여 EC2 인스턴스를 배치할 수 있는 서브넷을 만듭니다.
-
보안 그룹 및 네트워크 ACL 설정:
- 보안 그룹을 생성하여 SSH 접속을 허용하는 규칙을 추가합니다. SSH의 기본 포트인 22번 포트를 열어야 합니다.
- 네트워크 ACL을 구성하여 필요한 네트워크 트래픽을 허용합니다.
-
EC2 인스턴스 생성:
- VPC 내에 SSH를 통해 접속할 EC2 인스턴스를 생성합니다.
- 인스턴스를 생성할 때, 해당 VPC와 서브넷을 선택하고 보안 그룹 및 키페어를 연결합니다.
-
SSH를 통한 접속:
- SSH 클라이언트를 사용하여 공용 IP 주소 또는 DNS를 통해 EC2 인스턴스에 접속합니다.
- 예를 들어, 터미널에서 다음 명령어를 사용하여 SSH로 접속할 수 있습니다

*AutoScaling
-오토 스케일링의 정의
- 오토 스케일링:
- 클라우드 환경에서 사용되는 자동 확장 기능으로, 서버 또는 컴퓨팅 리소스의 수요에 따라 자동으로 인프라를 확장하거나 축소하는 기술입니다.
- 이를 통해 서비스의 부하에 따라 자원을 동적으로 조절하여 안정적이고 효율적인 운영을 할 수 있습니다.
-EC2 오토스케일링 구성 및 관리 방법
-
오토스케일링 그룹 생성:
- AWS Management Console에 로그인한 후, "Auto Scaling" 서비스로 이동합니다.
- "Create an Auto Scaling group"을 선택하여 새로운 오토스케일링 그룹을 생성합니다.
- 그룹의 구성에는 AMI(Amazon Machine Image), 인스턴스 유형, 시작 구성, 네트워크, 보안 그룹 등을 설정합니다.
-
스케일링 정책 설정:
- 오토스케일링 그룹에는 트리거 조건에 따라 스케일링 정책을 설정할 수 있습니다.
- 예를 들어, CPU 사용률이 특정 임계값을 넘으면 인스턴스를 추가하도록 설정할 수 있습니다.
-
로드 밸런싱 설정:
- 필요에 따라 오토스케일링 그룹을 로드 밸런서와 연결하여 트래픽을 분산시킬 수 있습니다.
-
알림 설정:
- 스케일링 이벤트에 대한 알림을 받기 위해 CloudWatch나 SNS를 사용하여 알림을 설정할 수 있습니다.
-
스케일링 활동 모니터링:
- 오토스케일링 그룹의 활동을 모니터링하여 자원의 확장 및 축소가 올바르게 이루어지는지 확인합니다.
-
정책 및 그룹 업데이트:
- 필요에 따라 스케일링 정책이나 오토스케일링 그룹의 구성을 업데이트하여 비즈니스 요구사항에 맞게 조정합니다.
*ELB
-ELB 정의 및 종류
- ELB(로드 밸런서):
- 클라우드 환경에서 트래픽을 여러 대상으로 분산시키는데 사용되는 서비스입니다.
- ELB는 고가용성, 확장성 및 안정성을 제공하여 웹 애플리케이션 및 마이크로서비스 아키텍처에서 중요한 역할을 합니다.
-ALB , NLB 로드밸런싱 개념 및 역할
-
어플리케이션 로드 밸런서 (ALB):
- ALB는 OSI 7계층(Layer 7)에서 동작하는 로드 밸런서로, HTTP 및 HTTPS 트래픽을 기반으로 요청을 분배합니다.
- 동적 호스트 기반 라우팅, 컨텐츠 기반 라우팅, WebSocket 지원 등 다양한 기능을 제공하여 모던 웹 애플리케이션에 적합합니다.
- 역할: ALB는 웹 애플리케이션의 트래픽을 여러 대상 그룹으로 분산시키고, 각각의 요청에 대해 효율적인 서버로 라우팅하여 안정적이고 빠른 웹 애플리케이션 서비스를 제공합니다.
네트워크 로드 밸런서 (NLB):
- NLB는 OSI 4계층(Layer 4)에서 동작하는 로드 밸런서로, TCP 및 UDP 트래픽을 로드 밸런싱할 수 있습니다.
- 초당 수백만 개의 연결을 처리할 수 있고, 고성능 및 초저지연을 제공하여 빠른 응답이 필요한 애플리케이션에 적합합니다.
- 역할: NLB는 네트워크 수준에서 트래픽을 여러 대상으로 분산시키고, 연결 상태를 유지하면서 안정적인 네트워크 서비스를 제공합니다.
-구성 및 동작 방법
어플리케이션 로드 밸런서(ALB)의 구성 및 동작 방법:
-
구성:
- AWS Management Console에 로그인한 후, "EC2" 서비스로 이동합니다.
- "로드 밸런서" 부분에서 "로드 밸런서 생성"을 선택하고, 원하는 유형으로 ALB를 생성합니다.
- 로드 밸런서를 생성할 때, 대상 그룹을 설정하여 트래픽을 분산시킬 대상 인스턴스를 정의합니다.
-
동작:
- ALB는 클라이언트의 요청을 받아 대상 그룹에 정의된 인스턴스들 중에서 적절한 대상을 선택하여 트래픽을 분산시킵니다.
- HTTP 또는 HTTPS 요청에 따라 동적 호스트 기반 라우팅, 컨텐츠 기반 라우팅 등을 통해 요청을 적절한 대상으로 라우팅합니다.
네트워크 로드 밸런서(NLB)의 구성 및 동작 방법:
-
구성:
- AWS Management Console에 로그인한 후, "EC2" 서비스로 이동합니다.
- "로드 밸런서" 부분에서 "로드 밸런서 생성"을 선택하고, 원하는 유형으로 NLB를 생성합니다.
- 로드 밸런서를 생성할 때, 대상 그룹을 설정하여 트래픽을 분산시킬 대상 인스턴스를 정의합니다.
-
동작:
- NLB는 클라이언트의 TCP 또는 UDP 트래픽을 받아 대상 그룹에 정의된 인스턴스들 중에서 적절한 대상을 선택하여 트래픽을 분산시킵니다.
- OSI 4계층에서 동작하기 때문에, 연결 상태를 유지하면서 트래픽을 적절히 분산시키고, 고성능 및 초저지연을 제공합니다.
*DynamoDB
-DynamoDB 의 정의 및 DB테이블 생성
- DynamoDB:
- 아마존 웹 서비스(AWS)에서 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다.
- DynamoDB는 고성능, 무제한 확장성, 안정성 및 유연성을 제공하여 모바일 애플리케이션, 웹 애플리케이션, 게임, IoT 기기 등 다양한 응용 프로그램에 대한 데이터 저장 및 관리를 지원합니다.
-쿼리와 스캔의 정의 및 차이점.
-
쿼리(Query):
- 쿼리는 데이터베이스에서 특정 조건을 만족하는 항목들을 선택하여 반환하는 작업을 말합니다.
- 쿼리를 사용하면 인덱스를 활용하여 특정 키 조건에 맞는 항목들을 검색하고 반환할 수 있습니다.
- 쿼리는 데이터베이스 테이블의 크기에 관계없이 일관된 성능을 제공하며, 일반적으로 효율적인 데이터 조회에 사용됩니다.
-
스캔(Scan):
- 스캔은 데이터베이스 테이블의 모든 항목을 읽어와서 조건에 상관없이 모든 항목을 평가하는 작업을 말합니다.
- 스캔은 테이블의 모든 데이터를 읽어오므로 큰 데이터셋을 가진 테이블의 경우에는 성능 저하가 발생할 수 있습니다.
- 일반적으로 스캔은 필터링이나 정렬이 필요하지 않은 경우에 사용되며, 특정 조건에 맞는 항목을 찾는 데는 쿼리가 더 효율적입니다.
-
차이점:
- 쿼리는 특정 조건을 만족하는 항목을 선택하여 반환하는 데 사용되며, 인덱스를 활용하여 효율적으로 작동합니다.
- 스캔은 테이블의 모든 항목을 읽어와서 조건에 상관없이 모든 항목을 평가하는 데 사용되며, 인덱스를 활용하지 않고 전체 테이블을 탐색합니다.
-데이터 입력 방법 및 호출 방법
데이터 입력 방법:
-
SQL 데이터베이스:
- SQL 데이터베이스에서는 INSERT 쿼리를 사용하여 데이터를 입력합니다.
- 예를 들어, INSERT INTO 테이블명 (칼럼1, 칼럼2, ...) VALUES (값1, 값2, ...);와 같은 형태로 사용합니다.
-
NoSQL 데이터베이스:
- NoSQL 데이터베이스의 경우에는 해당 데이터베이스의 API 또는 SDK를 사용하여 데이터를 입력합니다.
- 예를 들어, DynamoDB의 경우에는 PutItem API를 사용하여 데이터를 삽입합니다.
-
파일 데이터:
- 파일 형식의 데이터의 경우, CSV, JSON 등의 형식으로 데이터를 작성한 후, 해당 파일을 데이터베이스나 저장소에 import하는 방법을 사용할 수 있습니다.
데이터 호출 방법:
-
SQL 데이터베이스:
- SQL 데이터베이스에서는 SELECT 쿼리를 사용하여 데이터를 호출합니다.
- 예를 들어, SELECT * FROM 테이블명 WHERE 조건;과 같은 형태로 사용합니다.
-
NoSQL 데이터베이스:
- NoSQL 데이터베이스의 경우에는 해당 데이터베이스의 API 또는 SDK를 사용하여 데이터를 조회합니다.
- 예를 들어, DynamoDB의 경우에는 GetItem API를 사용하여 데이터를 가져옵니다.
-
파일 데이터:
- 파일 형식의 데이터의 경우, 파일을 읽는 프로그래밍 언어의 기능을 사용하여 데이터를 호출하거나 처리합니다.