AWS 34

[AWS] aws 강의 섹션 24 - 1 (CI/CD, Code Commit, Code Build, Code Deploy)

CI/CD란자동으로 코드를 리포지토리에 푸시하고자동으로 테스트를 진행하며배포까지 자동으로 진행해주는 모든 과정을 말한다.CI 란여러 종류의 코드 리포지토리가 존재한다. (대표적으로 github)CI는 Continious Intergration의 약자로 지속적 통합을 의미한다.코드를 저장소에 푸시했을 때 자동으로 코드를 빌드하고, 테스트를 진행하여 코드 빌드에 문제가 없는지 확인하는 과정이 ci이다.이 빌드 과정이 무사히 통과 된다면, 바로 배포를 할 수 있다는 의미이다.CD란Continious Delivery의 약자다.ci를 통해서 빌드 테스트가 통과된 코드를 배포 서버에 올려서 자동으로 배포하는 과정이다.코드를 저장소에 푸시할 때마다. 자동으로 모든 과정이 이뤄지게 만들 수 있다.여러 가지 CI/CD ..

AWS 2024.11.20

[AWS] aws 강의 섹션 22 (Dynamo DB)

기존의 RDS의 문제점 더 좋은 성능의 데이터베이스를 원한다고 했을 때 RDS는 수직적 스케일링밖에 하지 못 한다.물론 수평적 스케일링도 가능하지만, 읽기 전용 복제본을 만들어 부하를 분산 시키는 방법 밖엔 없다.RDS에는 수평적 쓰기 스케일링은 존재하지 않는다.이러한 문제점을 해결하기 위해 NoSQL 데이터베이스가 나타났다. (DynamoDB)NOSQL DatabaseNoSql은 수평적 확장성을 갖는다.유명한 기술로는 몽고 디비와 다이나모 디비가 있다.그러나 지원되지 않는 쿼리문이 굉장히 많다.sum, avg 같은 집계 연산이나 쿼리문이 지원되지 않기 때문에, 수평 확장성을 갖는다.Amazon DynamoDB고 가용성의 NoSQL 데이터베이스이다.여러 가용 영역에 걸쳐 즉시 복제가 가능하다.항상 빠른 ..

AWS 2024.11.05

[AWS] aws 강의 섹션 21-2 (람다함수, X-Ray, TMP, ECR, LIMIT)

람다 함수 - 로깅, 모니터링람다는 클라우드 워치 로그와 연결되어 있으므로, 람다의 모든 실행 로그는 자동으로 CloudWatch Logs에 저장된다.단, 람다 함수가 클라우드 워치 로그에 접근할 수 있도록 알맞은 IAM역할이 있어야 한다.람다의 지표는 클라우드 워치 지표에 표시된다. 호출, 기간, 동시 실행, 오류 수, 성공률, 병목 현상, 비동기 전송 실패, 반복자 기간 (스트림에서 데이터를 읽어오는 경우)람다 함수 - X-Ray람다 함수에서 Active Tracing만 활성화 해주면 x-ray에서 람다를 추적할 수 있다.활성화 하면 x-ray데모이 실행된다. 그 후, 코드에 x-ray SDK만 적어주면 된다.람다 함수에 x-ray를 사용할 수 있는 권한이 있는지 확인해야 한다.x-ray와 소통할 수..

AWS 2024.10.24

[AWS] aws 강의 섹션 21-1 (람다 (Lambda), 람다 함수(Labda Function))

AWS Serverless Lambda 서버리스란?서버리스를 사용하는 개발자는 서버를 관리할 필요가 없어진다.서버가 아예 없다는 뜻이 아니라 관리할 필요가 없다는 것이다. 초기의 서버리스는 Faas (Function as a Service)를 의미했으나 지금은 더 많은 것을 의미한다.faas란 기능을 제공하는 서비스로, 사용자가 함수 단위로 코드를 작성하면 해당 함수를 실행시켜 주는 것을 의미한다.현재는 단순히 함수 이외에, 데이터베이스, 메시징, 저장 등의 기능도 다 포함한다.aws에서는 다음과 같은 서비스가 서버리스 서비스에 해당한다. AWS Lambda란?EC2의 단점메모리와 CPU의 크기가 제한돼 있다. 24시간 돌아간다.스케일링 즉, 서버를 더하고 제거하는 작업이 필요하다.람다는 어떨까람다는 서..

AWS 2024.10.22

[AWS] aws 강의 섹션 20-2 (X-Ray, CloudTrail)

AWS X-Ray기존에 디버깅을 하는 방법은 곳곳에 로그를 작성하고재배포한 후 로그를 보며 잘못된 부분을 파악하는 방식이었다.심지어 MSA처럼 여러 개의 애플리케이션을 배포한 경우에는 디버깅이 더욱 더 힘들어질 것이다.이 때문에 엑스레이가 등장했다.애플리케이션의 시각적 분석엑스레이는 시각적 분석을 제공한다.애플리케이션에 요청을 수행하는 클라이언트 입장에서 요청이 얼마나 실패하고 성공하는지,동작하는 작업에 무엇이 있는지, 모든 것을 시각화 해준다.위의 그림을 보면 애플리케이션의 노란색 에러가 어디서 오는 것인지를 알 수 있다.가장 아래 원이 DB인데, 이를 통해 애플리케이션의 에러는 데이터베이스에서 온다는 것을 알 수 있다.엑스레이 장점트러블 슈팅 퍼포먼스가 높다.병목 현상을 발견하기 쉽다.마이크로서비스 ..

AWS 2024.10.18

[AWS] aws 강의 섹션 20-1 (CloudWatch, Event Bridge)

AWS Monitoring, TrobleShooting & AuditAWS CloudWatch클라우드 워치로는 지표를 수집할 수 있다.모니터링을 위해 로그를 수집하고 로그 파일을 분석한다.특정 이벤트가 발생했을 때 알림을 보내기도 한다.특정 지표 및 로그에 실시간으로 반응해서 알림을 보내기도 한다.AWS X-Ray애플리케이션 성능과 오류에 트러블 슈팅을 수행한다.지연 시간을 살펴보고 오류를 실시간으로 확인할 수 있다.마이크로 서비스 분산 추적 작업이 가능하다.AWS CloudTrailAPI 호출에 대한 모니터링을 수행한다.AWS 리소스 변경 내용에 대한 감사를 수행할 수 있다.CloudWatch 지표AWS의 모든 서비스에 대한 metirc(성능 상태) 즉, 지표를 제공한다.Metric은 모니터링 하기 위..

AWS 2024.10.15

[AWS] aws 강의 섹션 19 - 2 (SNS, Kinesis 분석)

SNS메시지 하나를 여러 수신자에게 보내고 싶을 때 Direct intergration을 쓸 수 있다.구매 서비스를 예로 들면,구매시 email 알림 서비스, 배송 서비스, SQS 대기열에 메시지를 보낼 수 있다.매번 보낼 때마다 이들을 통합해서 메시지를 보내는 건 번거로울 수 있다.대신 Pub/Sub 즉, 게시/구독이라는 개념을 사용할 수 있다.구매 서비스가 메시지를 AWS SNS로 보내는 것이다.SNS Topic에 게시를 하면 해당 Topic를 구독한 많은 구독자들은 메시지를 수신한다.이벤트 생산자는 오직 한 SNS Topic에 메시지를 보낸다.이벤트 수신자 즉, 구독자는 해당 주제와 관련된 공지를 받으려는 사람이다. 구독자는 해당 SNS Topic으로 전송된 메시지를 모두 받게 된다.메시지 필터링 ..

AWS 2024.10.14

[AWS] aws 강의 섹션 19 - 1 (SQS - Standard Queue, FIFO Queue, queue Access Policy, DLQ, Visibility Timeout)

AWS 통합 및 메세징 기법이 섹션에서는 애플리케이션을 여러 개 배포하려고 할 때, 커뮤니케이션을 하는 방법을 배운다. 동기 방식두 애플리케이션을 직접적으로 연결한다.비동기 방식큐를 사용해 애플리케이션간 메세지를 주고받는다.큐 모델에서는 SQS를 사용하고pub/sub 모델 (구독 모델, publish 하면 구독자들에게 모든 메세지 전달)에서는 SNS를 사용하고실시간 스트리밍 모델에선 Kinesis를 사용한다. 이제 애플리케이션을 분리해서 독립적으로 확장할 수 있다. SQSSQS는 큐다.큐에 메시지를 전송한다. 전송된 메시지는 대기열에 들어간다.여러 곳에서 동시에 큐에 메시지를 전송할 수 있다.메시지를 받을 대상이 큐에게 자신 앞으로 온 메시지가 있는지 물어본다.만약 메시지가 있다면 폴링해서 처리한다.폴링..

AWS 2024.10.14

[AWS] aws 강의 섹션 18 (CloudFormation - StackSets, Parameters, Mappings, Outputs, Conditions, 내장 함수, Ref, GetAtt, findMap, Service Role, capabilities)

AWS CloudFormation클라우드 포메이션은 코드를 작성해서 AWS 인프라의 모든 리소스를 정의하는 방법이다.예를 들어보안 그룹이 필요해해당 보안그룹을 사용하는 Ec2 인스턴스 두 개가 필요해EC2 인스턴스에 적용할 탄력적 ip가 필요해S3 버킷이 필요해Ec2 앞에 둘 ELB가 필요해라고 정의하면 클라우드 포메이션은 사용자가 적어둔 구성을 사용하여 순서대로 해당 항목들을 생성한다.따라서 수동 구성 및 수동 작업이 필요 없으며 모든 것이 클라우드 포메이션을 통해 예약된다.위와 같은 방식으로 모두 코드로 작성된다.그 다음 Application Composer를 사용하여 인프라를 시각화 한 뒤 구성 요소가 서로 어떻게 연관되어 있는지 확인할 수 있다.이렇게 composer에서 구성요소를 클릭하면 해당 ..

AWS 2024.10.13

[AWS] aws 강의 섹션 17 (Elastic Beanstalk, Beanstalk tier, Beanstalk deployment option, Beanstalk Lifecycle Policy )

Elastic Beanstalk배포할 애플리케이션이 너무 많고 이들이 동일한 아키텍처를 따를 경우 매번 이를 다시 생성하는 것은 복잡할 수 있다. 인프라를 다 설정해야 하고코드를 넣어야 하며, 데이터베이스를 구축하고 로드밸런서를 연결 시키며오토 스케일링을 설정하는 모든 과정이 복잡하다. 대부분의 웹, 앱은 동일한 아키텍쳐를 가진다 (ALB + ASG) 다양한 프로그래밍 언어로 개발하고 다양한 환경을 사용하는 경우환경에 맞게 배포를 여러번 진행해야 한다. 여기서 앨라스틱 빈스톡을 사용할 수 있다. 빈스톡은 애플리케이션을 배포하는데 있어 개발자 중심의 관점을 제공한다. 빈스톡은 하나의 인터페이스에서 EC2, ASG, ELB, RDS와 같이 모든 구성 요소를 다룰 수 있는 것이다.위의 모든 요소를 자동으로 배..

AWS 2024.10.03