🅰️
til ) AWS 기초 강의 1
June 07, 2024
쉽게 설명하는 AWS 기초 강좌
- 본 내용은 빠르게 학습 진행 하는 내용이라 전체 내용을 전부 포괄하지 않습니다.
- 모르는 개념들 위주라 참고용이 아니므로 직접 학습 하시고 요약자료 정도로 생각해주시길 부탁드립니다.
1: 클라우드 컴퓨팅이란?
- 서버가 존재 하면, 클라이언트 사이의 통신이 아닌 서버와 클라이언트 간의 통신을 통해 정보 처리, 정보 전달 면에서 유효하게 된다.
- 데이터 센터 : 어플리케이션의 서버를 호스팅하는 실제 시설
- 하드웨어
- 네트워킹 장비
- 전원공급장치
- 전기 시스템
- 백업 발전기
- 환경 제어장치(에어컨, 냉각장치 등)
- 운영인력
- 기타 인프라 등등…
- 데이터 센터는 운영에 비용이 많이 소요됨
- 건물 유지 비용, 서버 구매 비용, 셋업, 유지 보수 등
- 한번 구매하면 수요에 상관 없이 계속 보유해야함
- 느린 구축 시간
- 유저의 수요에 빠르게 대처 어려움
- 장애 발생에 대한 대응 느려짐
- 클라우드의 출현은 필현에 가깝다.
- 클라우드의 장점
- 자본 비용을 가변 비용으로 대체
- 규모의 경제로 얻게 되는 이점
AWS 자격증
- AWS 자격증~
- AWS 를 공부하기 위한 좋은 도구이자, 잘 먹히는 자격증이니 준비해두면 좋을듯!
- 공식 자격증 : 총 10개, 4종류
- AWS 공인 클라우드 전문가
- AWS 솔루션스 아키텍트
- AWS 데브옵스 엔지니어
- AWS 전문 분야 자격증
2: 클라우드 컴퓨팅의 종류
클라우드 컴퓨팅의 유형
- 클라우드 컴퓨팅 모델
- 클라우드 컴퓨팅 배포 모델
클라우드 컴퓨팅 모델
- IaaS: Infrastructure as a Service
- 인프라만 제공
- OS를 직접 설치하고 필요한 소프트웨어를 개발해서 사용
- 가상 컴퓨터를 임대하는 것에 가까움
- ex) AWS EC2
- PaaS: Platform as a Service
- 인프라 + OS + 기타 프로그램에 실행에 필요한 부분(런타임)
- 바로 코드만 올리면 됨
- ex) Firebase, Google App Engine등
- SaaS: Software as a Service
- 서비스 자체를 제공
- 다른 세팅 없이 바로 서비스 이용 가능
- ex) Gmail, DropBox, Slack, Google Docs
클라우드 컴퓨팅 배포 모델
공개형(클라우드)
- 모든 부분이 클라우드에서 실행
- 낮은 비용
- 높은 확장성
혼합형(하이브리드)
- 폐쇄형과 공개형의 혼합
- 폐쇄형에서 공개형으로 전환하는 경우 과도기에 사용
- 혹은 폐쇄형의 백업으로 사용
폐쇄형(직접 운영)
- 높은 수준의 커스터마이징 가능
- 초기 비용이 비쌈
- 유지 보수 비용이 비쌈
- 높은 보안
3: AWS 구조-리전, 가용영역, 엣지로케이션 등
AWS 소개
- 클라우드 서비스 점유율 1위
- 수많은 레퍼런스, 매년 서비스가 성장 및 발전 진행함
AWS의 구조
- AWS 클라우드
- IAM : 리전에 속하지 않은 서비스
- Amazon CloudFront
- etc…
- 리전
- VPC : 리전에 속하나, 가용영역과는 별도로 운용되는 서비스
- S3
- etc…
- 가용영역 n개
- 가용영역 내부에 상주한 서비스
리전
- AWS 서비스가 제공되는 물리적 위치
- 각 리전은 고유 코드 부여됨
- us-east-1 : 미국 동부 가장 대빵이 되는 서비스 제공 되는 리전
- 리전 별로 가능 서비스가 다르다
- 리전 선택 시 고려 사항
- 지연속도
- 법률(데이터, 서비스 제공 관련)
- 사용 가능한 AWS 서비스
가용영역
- 리전의 하부 단위
- 하나의 리전은 반드시 2개 이상의 가용영역을 보유하고 있다.
- 하나 이상의 데이터 센터로 구성
- 리전 간의 연결은 매우 빠른 전용 네트워크로 구성
- 반드시 물리적으로 일정 거리 이상 떨어져 있음
- 다만 모든 AZ는 서로 100Km 이내의 거리에 위치
- 여러 재해에 대한 대비 및 보안
- 각 계정 별로 AZ의 코드와 실제 위치는 다르다
- 보안 및 한 AZ로 몰림을 방지하기 위함
- 즉, 실제 가용영역의 위치라고 하는 것은 계정에서 보이는 것과는 전혀 다르다.
엣지 로케이션
- AWS의 CloudFront(CDN) 등의 여러 서비스들을 가장 빠른 속도로 제공(캐싱)하기 위한 거점
- 엣지 로케이션의 핵심 목표는 CDN의 성능이라고 보면 된다.
- 전세계에 흩어져 있음
글로벌 서비스와 리전 서비스
- AWS 에는 서비스가 제공되는 지역에 따라 글로벌, 리전 서비스로 분류가 가능
- 글로벌 서비스
- CloudFront(CDN)
- IAM
- Route53
- WAF
- 지역 서비스
- 대부분의 서비스
- S3 : 전세계에서 사용되는 서비스이나 데이터는 리전에 종속됨
ARN
-
AmazonResourceName: AWS의 모든 리소스의 고유 아이디
-
형식 :
arn:[partition]:[service]:[region]:[account_id]:[resource_type]/[resource_name]/(qualifier)
- 예시)
- arn:aws:s3:::test_bucket/text.txt
- arn:aws:dynamodb:ap-northeast-2:123456789012:table/mytable
- arn:aws:dynamodb:ap-northeast-2:123456789012:table/*
-
맨 끝에 와일드 카드
(*)
를 사용하여 다수 리소스를 지정 가능
4: AWS 계정 만들기 및 첫 설정
루트 유저
- 생성한 계정의 모든 권한을 자동으로 가지고 있다
- 생성시 만든 이메일 주소로 로그인
- 탈취 당하면 복구 매우 힘듬 : 사용을 자제하고 MFA 설정 필요
- 루트 유저 관리용으로만 이용 : 계정 설정 변경, 빌링 등
- AWS API 호출 불가(Access Key, Scret Access Key 부여 불가)
IAM User
- Identity and Access MAnagement 를 통해 생성한 유저
- 만들 때 주어진 아이디로 로그인
- 기본 권한 없음 : 따로 권한을 부여 해야 함
- 예 ) 관리자, 개발자, 디자이너, 회계팀
- 꼭 사람이 아닌 어플리케이션의 가상의 주체를 대표할 수도 있다
- AWS API 호출 가능
- AccessKey : 아이디 개념
- SecretAccessKey : 패스워드 개념
- AWS의 관리를 제외한 모든 작업은 관리용 IAM User 를 만들어 써야 한다.
- 권한 부여 시 루트 유저와 같이 모든 권한을 가질 수 있으나, 빌링 관련 권한은 루트가 허용 해줘야 함
AWS 설정
- 계정 생성
- MFA 로 보안 강화 - QR 이미지는 보관해둬야 함(OTP 활용)
- 계정 대시보드에서 루트 계정 별칭 생성해두기
- 이후 IAM 계정 생성 - MFA 설정 (각 정보는 CSV 파일로 나오며 보관하면 됨)
- 과거 버전보다 훨씬 개념이 복잡하게 쪼개졌으나 내용 읽어보면서하면 충분히 문제 없다…
5: IAM 기초
IAM 소개
- 전체 AWS 리소스에 대한 액세스를 허용 및 거부 하는 식으로 관리하는 것을 말한다.
- AWS 어카운트 관리 및 리소스, 사용자, 서비스의 권한 제어
- 서비스 사용을 위한 인증 정보 부여
- 사용자의 생성 및 관리 및 계정의 보안
- 사용자의 패스워드 정책 관리
- 다른 계정과의 리소스 공유
- 계정에 별명 부여 가능 -> 로그인 주소 생성 가능
- IAM 은 글로벌 서비스로 AWS 전체에 적용된다.
IAM 구성
- 사용자
- 그룹 - 사용자의 집합, 그룹에 속한 사용자는 그룹의 권한을 행사 가능
- 정책 - JSON 형식으로 정의
- 역할 - AWS 리소스에 부여하여 리소스가 무엇을 할 수 있는지 정의, 혹은 다른 사용자가 역할을 부여 받아 사용이 가능.
IAM 자격 증명 보고서
- 모든 사용자와 암호, 액세스 키, MFA 장치 등의 증명 상태 보고서, 생성 및 다운로드 가능
- 4시간에 한 번 씩 생성 가능
- AWS 콘솔, CLI, API 에서 생성 요청 및 다운로드 가능
- 포함되는 정보
- 암호
- 암호 활성화 여부
- 마지막으로 사용된 시간
- 마지막으로 변경된 시간
- 언제 변경되어야 하는 지
- 엑세스 키
- 엑세스 키 활성화 여부
- 마지막으로 사용된 시간
- 마지막으로 변경된 시간
- 어떤 서비스에 마지막으로 사용되었는 지
- 기타
- MFA 사용 여부
- 사용자 생성 시
- 암호
IAM 모범 사용 사례
- 루트 사용자는 사용하지 않기
- 불필요한 사용자는 만들지 않기
- 가능하면 그룹과 정책을 사용하기
- 최소한의 권한만을 허용하는 습관 들이기
- MFA를 활성화하기
- AccessKey 대신 역할 활용하기
- IAM 자격 증명보고서를 활용하여 계정 상태를 확인하는 것도 매우 중요하다