aws
10 posts
aws - serverless

서버레스는 을 의미하는 범용적인 개념이다. 애초에는 AWS lambda의 개념으로부터 출발하였으나, 이제는 AWS가 관리해주는 모든 것을 의미한다. 서버레스 서비스에는 AWS Lambda DynamoDB AWS Cognito AWS API gateway Amazon S3 AWS SNS&SQS AWS Kinesis Data Firehose Aurora serverless Step Functions Fargate 등이 있다. AWS lambda ec2는 클라우드 상의 가상 서버로, ram과 cpu 제한이 있으며, 종료되기 전에는 계속 실행된다. 스케일링을 위해서 직접 개입하여 서버를 추가/삭제해야 한다. AWS lambda는 반면 서버가 없는 가상 이다. 짧은 실행시간을 가지며 실행시간에 따라 비용을 지불한다. 사용하지 않을 때에는 실행되지 않는다. 스케일링 또한 별도의 설정없이 자동으로 일어난다. lambda는 요청 횟수와 시간에 따라서만 비용을 지불하며 프리티어도 관대한 편이다.…

March 26, 2023
aws
aws - messaging

AWS messaging 앱 간의 통신 방법에는 직접 통신하는 synchronous(동기) 방식과 중간 매개체로 큐를 사용하는 asynchronous(비동기) 방식이 있다. 동기 방식의 문제점은 갑작스런 트래픽 증가이다. 트래픽이 갑자기 증가하는 경우 수신하는 앱은 트래픽을 처리하기 버거운 상황이 발생한다. 따라서 어플리케이션 간에 결합을 분리하는 것이 좋다. 이를 위해서는 SQS 같은 큐 방식 SNS 등의 pub/sub(구독/발행)모델 Kinesis 등의 실시간 스트리밍 모델 을 사용하는 것이 좋다. SQS 10년 이상된 aws 서비스임, 어플리케이션 간의 결합도를 낮추기 위해 사용. 큐 내부에 저장할 수 있는 메세지의 수 / 한번 에 전송할 수 있는 메세지 수는 제한이 없지만, 메세지의 유효기간은 디폴트 4일 최대 14일 이다. SQS의 지연율은 10ms보다도 작다. 메세지 하나당 256kb의 크기 제한이 있다. 큐의 제약사항으로 메세지가 두 번 연달아 전달될 수 있고, 순…

March 25, 2023
aws
aws - extra storage

AWS의 기타 스토리지 서비스에 대한 문서. 매우 안전한 포터블 디바이스로 aws에서 2가지 유즈케이스가 있음 엣지에서 데이터 처리 origin에서 가까운 edge location에서 데이터를 수집/처리 Snowcone/Snowball Edge/Snowmobile AWS로 데이터를 마이그레이션 Snowcone/Snowball Edge 네트워크 상에서 대량의 데이터를 마이그레이션할 때, 회선의 속도제한이나 대역폭 제한 / 네트워크 사용비용 등의 한계가 존재한다. 이 때 AWS에서 Snow Family에 속한 포터블 디바이스를 직접 클라이언트에게 제공하면 이 장비에 데이터를 load하여 다시 AWS에 장비를 보내면, AWS에 이 데이터를 마이그레이션해주는 것이다. 즉 네트워크 회선의 여러 한계점을 우회하기 위해 사용한다. Snowball Edge 데이터 마이그레이션 용으로 S3 오브젝트 스토리지 및 프라이빗 블록 스토리지 제공 , 42tb의 와 80tb의 옵션 존재. Snowcon…

March 24, 2023
aws
aws - ecs& eks

Amazon ECS 도커 컨테이너를 AWS상에서 실행하게 되면 AWS ECS 클러스터 상에서 ECS 태스크를 하나 실행하게 된다. 이 때 클러스터를 구성하는 방식에 따라 LaunchType이 나뉜다. EC2 Launch type AWS ECS 클러스터는 EC2 인스턴스들로 이루어진 클러스터로 구성하여, EC2 인스턴스를 유저가 직접 프로비져닝하고 관리할 의무가 있다. (자동 스케일링 X). 각각의 EC2 인스턴스는 를 실행하여 와 에 자신을 등록해야 한다. 이 과정이 모두 준비가 된다면, ECS 태스크를 실행하고나서부터 해당 도커 컨테이너를 클러스터 내의 인스턴스에서 시작/중지하는 작업을 AWS 서비스가 모두 관리하게 된다. 이 타입을 사용할 경우 EC2 인스턴스에 대한 프로파일을 정의할 수 있으며, 해당 프로파일은 ECS Agent가 각종 API 호출을 하는 데에 사용된다.(ECS, CloudWatch, ECR, SSM Parameter Store, etc..). Farga…

March 23, 2023
aws
aws - cloudFront

Content Delivery Network(CDN)으로, edge location에 컨텐트를 캐싱함으로서 유저의 읽기 성능을 향상시키는 것 글로벌에 216개의 에지 로케이션이 있으며 계속 증설 중. 유저가 읽기 요청을 하면 트래픽이 edge location에 먼저 전달되고 edge location의 캐시를 먼저 조회. 캐시가 hit하지 않으면 edge location이 트래픽을 읽기 요청의 목적지(이라고 함)에 다시 요청을 하여 응답을 받고 이를 캐싱함. CloudFront이 으로 사용할 수 있는 서비스는 S3 버킷/커스텀 http 등이 있다 . 커스텀 http란 ALB, EC2 인스턴스, S3 정적 웹사이트 등의 AWS 서비스 origin 외에도 어떤 http 백엔드도 가능. Edge Location과 origin은 인터넷이 아닌 프라이빗 네트워크로 통신하기 때문에 매우 빠르고 안전함. S3 버킷 를 사용해 edge location과의 통신에 대한 보안을 설정하며 edge …

March 22, 2023
aws
aws - s3

S3 S3의 유즈 케이스 백업과 스토리지 장애 복구 아카이브 하이브리드 클라우드 스토리지 앱 호스팅 미디어 호스팅 데이터 레이크 & 빅데이터 분석 소프트웨어 배포 정적 웹사이트 S3에서 유저가 파일을 저장하는 디렉토리를 이라고 하며, 버킷의 이름은 유일해야 한다.(모든 리전과 계정을 합쳐서). 다른 계정이라고 해도 중복될 수 없다. 버킷은 리전 레벨에서 정의된다. s3에 이름을 정의하고 오브젝트를 업로드하면 public uri가 생성되는데, 처음에는 이 uri로는 오브젝트에 접근할 수 없고, aws credential을 url로 인코딩한 aws pre-signed url을 통해서만 접근가능하다. S3에 한번에 업로드할 수 있는 파일 크기의 최대는 5gb이며, 그 이상의 크기를 갖는 파일은 multi-part upload를 사용해야 한다. 버킷 내에 폴더를 생성할 수도 있다. S3 보안 user-based IAM-policy: 특정 IAM 유저에게 허용할 api 엔드포인트를 설…

March 22, 2023
aws
aws - vpc

VPC VPC는 리전에 할당되는 리소스로 유저가 리소스를 배포할 수 있는 프라이빗 네트워크이다. 서브넷은 AZ에 할당되는 리소스로 VPC 내의 네트워크를 할 수 있도록 해준다. 퍼블릿 인터넷에서 접근할 수 있는 퍼블릭 서브넷과, 프라이빗 네트워크에서만 접근할 수 있는 프라이빗 서브넷이 있으며 라우팅 테이블에서 서브넷과의 액세스 포인트를 설정한다. 퍼블릭 서브넷과 프라이빗 서브넷이 있다고 하자. 이 둘은 각각 어떻게 인터넷과 프라이빗 네트워크에 연결될까? 퍼블릿 서브넷은 를 통해 인터넷과 연결된다. 라우팅 테이블에서 라우팅을 등록한다. 프라이빗 서브넷은 와 를 통해 인터넷과 연결된다. 프라이빗 서브넷 내의 리소스는 인터넷에 접근할 수 있게 하지만 인터넷에서 프라이빗 서브넷 내의 리소스는 접근할 수 없게끔하는 역할을 하며, 가 퍼블릭 서브넷에 배포되어 프라이빗 서브넷에서 나가는 트래픽을 에 라우팅하고 , 은 다시 이를 에 라우팅함으로써 이를 가능케 한다. 결과적으로 프라이빗…

March 22, 2023
aws
aws - route53

DNS는 ip 주소를 문자열로 번역한 것이다. .으로 구분된 도메인 조각들은 가장 오른쪽의 문자열에서부터 계층형 구조를 이룬다. 즉 www.google.com 은 .com이 최상단 계층, google.com이 그 다음, www.google.com이 그 다음이다. 도메인 등록기관에는 GoDaddy, Amazon Route53 등이 있다. DNS 용어 Zone File - DNS 레코드를 포함한 그룹 네임 서버 - DNS 쿼리에 응답하는 서버 TLD - Top Level Domain - .com, .us 등 SLD - Second Level Domain - google.com, amazon.com 등 http://api.www.google.com 중, api.www.google.com 을 전체 도메인, http를 프로토콜이라고 하며 둘을 합쳐서 url이라고 한다. 가장 첫 DNS 쿼리가 발생하면, 로컬 DNS 서버로부터(ISP 사업자 등이 관리) 항상 루트 서버로 쿼리가 전달된다…

March 20, 2023
aws
aws - Elastic Load Balancer & Auto Scaling Group

수직 스케일링과 수평 스케일링 수직 스케일링: 인스턴스의 크기를 증가시키는 것 수평 스케일링: 인스턴스의 개수를 증가시키는 것 고가용성: 다수의 AZ에 분포된 인스턴스들로 하나의 앱을 실행하는 것. ELB Elastic Load Balancer의 약자. 트래픽을 다수의 서버(예를들어 다수의 ec2 인스턴스)로 포워딩하는 서버 로드 밸런서를 사용함으로서 얻을 수 있는 이점들에는 다음과 같은 것들이 있음: ![[Pasted image 20230318181810.png]] 헬스 체크 트래픽을 인스턴스에 포워딩할 수 있는지 인스턴스가 로드밸런서에 알리는 기능. 엔드포인트와 포트를 별도로 사용하여 (주로 /health 라우팅 ) 이루어짐 로드밸런서 타입 deprecated된 CLB를 제외하고 다음 유형들이 있음 ![[Pasted image 20230318182314.png]] 모든 ELB는 정적 도메인 네임이 부여되며 이를 통해 접근하도록 설계되었다. NLB는 정적 ip까지 부여되니 알아두…

March 19, 2023
aws
aws - ec2

udemy의 aws-certified-solutions-architect-associate-saa-c03 강의 내용 정리 EC2 인스턴스가 시작될 때 실행할 EC2 User Data Script를 정의할 수 있다. 이 스크립트는 root권한으로 실행된다. 인스턴스를 만들때는 보안그룹을 할당하거나 생성하는데, ssh 트래픽을 허용/ 특정 ip에서 허용하거나, 인터넷에서 http 트래픽 허용 / 인터넷에서 https 트래픽 허용 등의 옵션을 사용할 수 있다. “고급 세부 정보” 메뉴에 User Data Script를 정의할 수 있는데, 다음과 같은 시스템 시작시 실행될 스크립트이다. 참고로 인스턴스를 재시작할 때마다 공개 ip는 변경된다. 비공개 ip는 변경되지 않는다. ec2 인스턴스 타입 t: general C: compute-optimized(연산 최적화) R, x1, high memory : memory-optimized(메모리 최적화, 메모리 내에서 대량 데이터 처리하는 데에…

March 18, 2023
aws