AWS Amazon Web Service
cloud market의 선구자이자 리더임
- 유연성 : onpremise로 구축하고 있던 서버 그대로 클라우드에 이식할 수 있음
- 확장성 탄력성 : 내가 원하는 리소스에 대해 자유롭게 확장/축소가능. 비지니스 로직/기획에 따라 확장,탄력적 운영 가능
- 보안성 : 서비스마다 보안 옵션을 제공, 문서화 시켜서 사용자가 이해하기 편함
- 안정성 : 15년 이상의 글로벌 인프라를 구축하고 제공했던 경험을 무시할 수 없음. 대부분의 클라우드 회사들은 99.9999 고가용성을 보장하지만 그래도 downtime이 생길 수밖에 없으나, amazon은 다른 회사에 비해 더 좋음
AWS의 서비스 지역
Region리전
- 전세계 AWS 데이터 센터의 기준이 되는 물리적 위치
- AWS에서 제공하는 다양한 서비스들은 대부분 리전을 기반으로 제공됨
- 사용자와 리전이 가까울 수록 네트워크 지연 최소화
- 여러 가용 영역에 걸쳐 서비스를 배치하므로 내결함성이 강화된 서비스를 구축 가능하다 예) 서울 데이터센터가 망하면 부산꺼를 끌어다 쓸 수 있다
Availability Zone 가용영역
Edge Location
- AWS CDN
- CloudFront의 캐싱 컨텐츠가 위치하는 곳
: 캐싱 : 임시저장해놓고 업데이트 된 것이 없다면 새로고침 할 때마다 origin server로 돌아가지 않고 저장된 것을 계속 불러다가 사용할 수 있는 것.
EC2 Elastic Compute Cloud
- 클릭 몇번으로 리소스(내가 필요한 기능들)을 고르고
즉시 구동 가능한 서버를 제공하는 서비스다
- 다양한 RDBMS 제공
: 설치/운영/확장 가능 like, 백업과 같은 기능들을 다 알아서 해줌, 개발자가 사용하기에 굉장히 편함
AWS의 서비스들
S3
simple storage service
- 파일을 쉽게 저장할 수 있는 공간을 제공
like 네이버클라우드 구글드라이브
- 파일마다 고유 주소를 부여하여 S3에 저장한 파일을 웹상에서 쉽게 읽을 수 있음
- 2차 프로젝트에서 많이 쓸 수 있는 기능
: 프론트에서 이미지/동영상을 백엔드로 보낸다
예) 사용자가 프로필 사진을 업로드할 때! 백엔드는 DB에 바로 저장하지 않는다(용량 부담) 이럴 때 S3를 활용할 수 있다.
S3에 코드로 올려서 저장을 한다면 AWS 에서는 S3에서 파일마다 고유 주소를 리턴해오면 된다.
리턴받은 url 주소를 DB에 string type으로 저장. GET 요청이 왔을 때 url 주소만 전달해주면 됨.
- 프론트엔드 서버는 S3로 배포가 가능
VPC virtual private cloud
- 아파트 단지가 만들어졌을 떄, 시공사에서 다른 아파트 동들은 인터넷망을 구축했는데 한 동만 안했다면, 알아서 망을 구축해서 필요한 사람들만 쓰라고 하는 것과 같다
- 네트워크 환경설정에 대한 완전한 통제권을 가질 수 있다 inbound/outbound 설정을 다 해놓을 수 있다. like admin page. 즉 외부인력 접근을 못하게 막는 것. 회사 wifi 로만 접근이 가능하다고 설정해놓을 수 있는 것. 우리집 wifi 로는 접속이 안됨
CloudFront
- edge location과 관련된 CDN 서비스
: 본점 은행 안가고 편의점 atm에서 돈을 찾을 수 있는 것과 같은. 하지만 예치금이 들어있어야 돈을 뽑을 수 있는 것과 같은
- latency를 비교하여 origin 서버에 계속 들어가는 게 아니라 캐싱 된 edge location 을 사용해서 사용자 요청을 처리하는 것.
Route 53 (면접!!비유를통한설명구웃)
- AWS에서 제공하는 DNS(Domain Name System) 서비스
- 사람을 읽을 수 있는 domain이름을 기계가 읽을 수 있는 ip주소로 변환
- 테헤란로 427 : ip 주소
위워크 건물 자체 : host
- 가용성 확장성이 뛰어나며 다른 서비스들과도 호환성이 좋음
ELB (Elastic Load Balancer)
- 로드 밸런서 :
- 모니터링 및 로깅의 기능
: 사용자가 어떻게 들어왔고 어디서 문제가 생겼는지에 대한 로깅을 다 남겨두어 개발자들이 확인할 수 있음
IAM
- AWS 자격증도 있어.........? IAM 이게 기본적인거래
- root 계정이 아니라 회사 들어가면 IAM 계정을 받게 됨
- 일부 instance만 접근할 수 있는 권한들이 개별적으로 부여됨
- 각각 필요한 권한만 부여할 수 있음
- 각 access key를 개별적으로 관리하여 보안성을 높인다
- 회사에서 일하다가 데이터베이스를 다 삭제해버리면 안되니까! 이런 사고를 방지하기 위해 개별적인 권한을 부여하는 것.
- 권한에 차등이 있는 거라고 보면 됨