- IaaS(EC2, VM Instance 등)를 사용하여 Tomcat, JBoss 등의 WAS 배포를 통한 운영
- PaaS(ElastickBeansTalk 등)를 사용하여 war 혹은 jar 파일의 배포를 통한 운영
- FaaS(Lambda, Functions 등)를 사용하여 코드 배포를 통한 운여
- API Gateway 를 사용하여 REST API URI 를 잡아줘야 한다.
- 비지니스 로직이 담겨져 있는 코드들만 들어있다. 즉, 함수의 이름과 로직만 담겨져있다.
- 따라서, 해당 코드가 어느 URI 를 타야하는지에 대한 정보가 없기 때문에 이에 대한 URI 주소를 매겨줘야 한다.
- API Gateway 는 이런 URI 를 하나로 통합하는 역할을 맡게 된다.
IAM(Identity and Access Management)은 유저를 관리하고 접근 레벨 및 권한에 대한 관리할 수 있는 웹 서비스.
AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다.
- AWS 계정을 처음 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한을 지닌 통합 인증(SSO) 자격 증명으로 시작할 수 있다.
- 이 자격 증명은 AWS 계정 루트 사용자라고 한다.
- 계정을 생성할 때 사용한 이메일 주소와 암호로 로그인하여 액세스한다.
- 일상적인 작업, 심지어 관리 작업의 경우에도 루트 사용자를 사용하지 않는 것을 강력히 권장한다.
- 접근키(Access Key), 비밀키(Secret Access Key)
- 매우 세밀한 접근 권한 부여 기능 (Granular Permission)
- 비밀번호를 수시로 변경 가능케 해줌
- Multi-Factor Authentication(다중 인증) 기능
- 그룹 (Group)
- 유저 (User)
- 역할 (Role)
- 정책 (Policy)
- (`*`) 정책은 그룹, 역할에 추가시킬 수 있다.
- (`*`) 하나의 그룹 안에 다수의 유저가 존재 가능하다.
- Amazon Web Services(AWS) 클라우드에서
확장 가능 컴퓨팅 용량
을 제공한다. - Amazon EC2 를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있다.
- Amazon EC2 를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다.
- Amazon EC2 에서는 확장 또는 축소를 통해 요구 사항 변경 또는 사용량 스파이크를 처리할 수 있으므로 트래픽을 예측할 필요성이 줄어든다.
- 인스턴스를 켜고 끌 수 있으며, 켜진 상태에서만 돈을 지불하면 된다.
- On-demand: 시간 단위로 가격이 고정되어 있음
- 오랜시간동안 선불을 내지 않고 최소한의 비용을 지불하여 EC2 인스턴스를 사용하고 싶을때, 특히 앱/프로그램 개발시 최초로 EC2 인스턴스에 deploy 할때 매우 유용
- Reserved: 한정된 EC2 용량 사용 가능, 1-3년동안 시간별로 할인 적용 받을 수 있음
- 안정된, 예상 가능한 workload 시 Reserved 사용 권장, 선불로 인한 컴퓨팅 비용 대폭 감소
- Spot: 입찰 가격 적용. 가장 큰 할인률을 적용받으며 특히 인스턴스의 시작과 끝기간이 전혀 중요하지 않을때 매우 유용
- 단순히 비용 절감 시 유용함. 인스턴스의 시작/끝시점에 구애받지 않을 경우 권장
- EC2 를 사용하기 위해 EBS 라는 디스크 볼륨을 요구한다.
- 저장 공간이 생성되어지며 EC2 인스턴스에 부착된다.
- 디스크 볼륨 위에 File System 이 생성된다
- EBS 는 특정 Availability Zone(AZ) 에 생성된다
- SSD 군
- General Purpose SSD (GP2): 최대 10K IOPS를 지원하며 1GB당 3IOPS 속도가 나옴
- Provisioned IOPS SSD (IO1) : 극도의 I/O률을 요구하는(예시 : 매우 큰 DB관리) 환경에서 주로 사용됨. 10K 이상의 IOPS를 지원함
- Magnetic/HDD 군
- Throughput Optimized HDD (ST1) : 빅데이터 Datawarehouse, Log 프로세싱시 주로 사용 (boot volume으로 사용 가능 X)
- CDD HDD (SC1) : 파일 서버와 같이 드문 volume 접근시 주로 사용, 역시 boot volume으로 사용 불가능하나 비용은 매우 저렴함
- Magnetic (Sandard) : 디스크 1GB당 가장 싼 비용을 자랑함. Boot volume 으로 유일하게 가능함
- 수많은 서버의 흐름을 균형있게 흘려보내는데 중추적인 역할을 함
- 하나의 서버로 traffic 이 몰리는 병목현상(bottleneck) 방지
- Traffic 의 흐름을
Unhealthy instance -> healthy instance
로
- Application Load Balancer : OSI Layer7 에서 작동됨
- HTTP, HTTPS 와 같은 traffic 의 load balancing 에 가장 적합함
- 고급 request 라우팅 설정을 통하여 특정 서버로 request 를 보낼 수 있음
- Network Load Balancer : OSI Layer4 에서 작동됨, 매우 빠른 속도를 자랑하며 Production 환경에서 종종 쓰임
- 극도의 performance 가 요구되는 TCP traffic에서 적합함
- 초당 수백만개의 request를 아주 미세한 delay 로 처리 가능
- Classic Load Balancer : 현재 Legacy 로 간주됨, 따라서 거의 쓰이지 않음
- Layer7의 HTTP/HTTPS 라우팅 기능 지원
- Layer4의 TCP traffic 라우팅 기능도 지원
504 Gateway Time-out
- EC2 는 Priavte IP Address 밖에 볼 수 없음
- 이때, X-Forwarded-For Header 를 통해 Public IP Address 를 얻을 수 있음
- Serverless 의 주축을 담당
- Events 를 통하여 Lambda 를 실행시킴
- NodeJS, Python, Java, GO 등 다양한 언어 지원
- Lambda Function
- Lambda Function이 실행될때만 돈 지불
- 매달 1.000.000 함수 호출 시 무료 (그 후로는 유료)
- 최대 300초(5분) 런타임 시간 허용
- 512MB의 일시적인 디스크 공간 제공 (/tmp/)
- 최대 50MB Deployment Package 허용
S3 -> Lambda -> DB
IoT -> Lambda -> SNS
- 안전하고 가변적인 Object 저장공간을 제공 (ex: Google Cloud)
- 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음
- 파일 크기는 0KB 부터 5TB 까지 지원
- 저장공간 무제한
- Bucket 이라는 이름을 사용함 (디렉토리와 유사함)
- Bucket 은 보편적인 namespace 를 사용함
- Key
- Value
- Version ID
- Metadata
- CORS (Cross Origin Resource Sharing)
- Read after Write Consistency(PUT)
- Eventual Consistency(UPDATE, DELETE)
- 일반 S3
- 가장 보편적으로 사용되는 스토리지 타입
- 높은 내구성, 가용성 (Durability, Availability)
- S3 - IA (Infrequent Access)
- 자주 접근되지는 않으나 접근시 빠른 접근이 요구되는 파일이 많을 시 유용
- 일반 S3 에 비해 비용은 저렴하나 접근시 추가 비용 발생
- 멀티 AZ 를 통한 데이터 저장
- S3 - One Zone IA
- 단일 AZ를 통한 데이터 저장
- 단일 AZ에 의한 데이터 접근 제한 (조금 낮은 가용성)
- 데이터 접근시 S3 - IA보다 20% 비용 저렴
- Glacier
- 거의 접근하지 않을 데이터 저장 시 유용
- 매우 저렴한 비용
- 데이터 접근시 대략 4-5시간 소요
- Intelligent Tiering
- 데이터 접근 주기가 불규칙할때 매우 유용
- 2가지 티어 존재
- Frequent Tier
- Infrequent Tier
- 데이터 접근주기에 따라 두가지 티어중 하나로 선택됨
- Frequent Tier가 비용이 약간 더 비쌈
- 최고의 비용 절감 효율을 누릴 수 있음
- GB 당
- PUT, GET, COPY 요청 횟수당
- 데이터 다운로드시 / 다른 리소스로 전송시
- Metadata (object tag)
- Inflearn. AWS 입문자를 위한 강의
- https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html