728x90
반응형

DevOps/AWS 33

[모니터링] AWS CloudWatch

DevOps에서는 Ops도 Dev만큼이나 중요하다 > 모니터링 CloudWatch 개요 - AWS 리소스 모니터링 서비스 - AWS에 구동중인 application 모니터링 - 다양한 서비스와 integration이 편하다 (알람, 지표 backup, 자동화 시스템 구축) CloudWatch에 사용되는 개념 - namespace : 측정하고자하는 대상. EC2, RDS 같은 것들 - metrics : 측정하고자하는 값 - dimensions : namespaces를 묶는 추상화된 대상 (ex. AutoScaling 그룹 등등..) - statistics : 평균, 최대, 최소 - resolutions : 과금과 관련된 정보. standard resolutions(1m 데이터) / hish resoluti..

DevOps/AWS 2023.12.22

[AWS] S3에서 csv를 다운받아서 json으로 만들기 (Next.js, Node)

먼저 해야할일 S3 bucket을 만들고, IAM에서 S3FullAccess 권한을 가진 IAM을 만들어서 key를 발급받고, bucket에 CSV 파일을 업로드한다 메인 코드 그 다음에 Next.js api 폴더에 아래와 같이 만든다. (이 예제는 Next Version 12를 사용함) import { NextApiHandler } from 'next'; import AWS from 'aws-sdk'; import csv from 'csvtojson'; const BUCKET_NAME = 'BUCKET'; const S3 = new AWS.S3({ accessKeyId : 'ACCESS', secretAccessKey : 'SECRET' }) const handler: NextApiHandler = a..

DevOps/AWS 2023.05.26

[AWS] DynamoDB 그리고 Lambda로 DynamoDB 접근

데이터 아키텍쳐의 변화 - DynamoDB도 S3나 RDS같은 Storage System이다. - 데이터 레이크 : S3라고 생각하면 된다 - 요새는 압축해서 저장하는 것이 아니라 그냥 raw 데이터를 그대로 저장한다 - 서비스 자체 뿐만아니라 저장한 DB의 가능성을 보고 투자를 받는다. DynamoDB - DynamoDB는 AWS의 Nosql 서비스이다 - 빠르고(Primary Key를 기준으로 찾을때) 백업이 되기 때문에 빅데이터에서 유용하게 사용된다 - Primary Key가 아닌 값으로 찾을때 느리다 - 자유도가 높을수록 비용이 저렴해진다. RDS >> DynamoDB >> S3 - 조인과 같은 복잡한 쿼리 불가능하다 DynamoDB의 구성요소 - Item은 row라고 생각하면 된다 - 형식이 정..

DevOps/AWS 2023.05.08

[AWS] Step Function 실습하기

Step Function 어떤 유저가 API를 콜했을 때, 그 API의 결과값에 따라 다른 Lambda 함수가 실행된다 Lambda 안에 Step Function이 있는 것이 아니라 Lambda와 별개의 AWS 서비스이다 실습 - 람다함수를 2개 만든다 (Step1, Step2) - Lambda 함수의 ARN을 복사해둔다 - IAM에서 역할을 만들어야 한다 - 역할 만들기에서 Step Function을 클릭한 다음에 AWSLambdaRole을 생성해두자 - Step Function으로 가서 만들자. Step Function이 길어지면 GUI로 생성하기보다 JSON을 활용해서 코드로 만든다 - 상태 머신 생성 클릭 >> 코드로 워크플로 작성 이렇게 코드로 만들면 된다 Step Function이 lambda..

DevOps/AWS 2023.05.08

[AWS] Lambda의 Scaling/동시성/Layers/환경변수/EFS/Step Function

Cold Start - 10분 지나도 아무런 새로운 트리거가 없으면 만들어놓은 서버(EC2)를 닫아버린다. - 10분 이내에 새로운 트리거가 생기면 이미 만들어놓은 서버를 계속 사용한다. - Cold Start의 문제가 생겨서 이걸 해결하기 위한 개념이 2019년에 나왔다. 그런데 이게 Serverless가 맞나? - 이런 경우에는 EC2가 더 저렴하지 않나요? 버전과 Alias - lambda 함수를 하나 새로 만든다 - 작업 dropbox에서 "새 버전 발행"을 할 수 있다 - colon 뒤에는 버전의 이름이 붙는다 환경변수 - 환경변수를 사용하는 이유는 노출되면 안되는 정보를 담기 위해서 - lambda는 MSA보다 얕고 가볍다 - CLI에서 이것저것 코드 짜는게 아니라 그냥 콘솔(GUI)에서 지정..

DevOps/AWS 2023.05.07

[AWS] Lambda와 Gateway 실습

Lambda 함수 생성 1. 콘솔에서 lambda 검색 2. 함수 생성 3. 새로 작성 4. 런타임 -> 어떤 환경에서 만들 것인가? Node.js / Python / Ruby 5. 함수 생성 lambda_handler라는 이름과 event, context라는 argument는 기본값이다. 고정이다! json 같이 간단한 라이브러리는 import가 되는데 pandas 같은 것은 추가 설정을 해주어야 할 수도 있다 Deploy 버튼을 클릭해야 배포가 되어서 실행 가능한 상태가 된다 Lambda 함수 실행하기 Lambda 함수를 실행하는데 다양한 방법이 있다. 실무에서는 주로 트리거를 추가해서 여러가지 트리거를 발생시켜서 함수를 실행시킨다! 테스트 이벤트를 구성해서 Lambda 함수를 실행시킬 수도 있다 테..

DevOps/AWS 2023.05.07

[AWS] API Gateway와 CORS 그리고 Canary 배포

API Gateway - AWS Gateway도 하나의 서버라고 생각하면 된다 - 하나의 도메인으로 모았다가 다시 뻗어나가는 거라고 생각하면 된다 - Redirect와 비슷한 개념으로 생각하면 된다 - 본질적으로는 단순한 개념인데, 한 곳에서 관리할 수 있기 때문에 부가적으로 붙여서 사용할 수 있는 기능이 많다. - API가 지나가는 통로 (반드시 지나야 하는 하나의 gateway) 라는 개념을 갖고 있다. - API Gateway를 Trigger함으로써 lambda를 실행할 수 있다 - Rest API는 복잡하고 느리고, customize 할 수 있다 - HTTP API는 단순하다 - CORS (보안)을 설정할 수 있다 CORS (Cross Origin Resorces Sharing) - Cross O..

DevOps/AWS 2023.05.07

[AWS] 서버리스 아키텍트 (lambda)

서버리스의 개념 - EC2, ECS 같은 것을 사용하면 관리 - 항상 대기하는 전용 서버가 있는 것이 아니라, 사용할 때마다 쓰는 것이다 - 알바를 한 명을 정규 고용을 해 둔 것이 아니라, 주문이 들어왔을 때만 알바를 쓰는 것 (?ㅎㅎ) - (함수의 처리 결과에 따라 상태를 따로 저장) 어마어마하게 독립적이다. 따로논다. 함수의 처리 결과를 DB에 저장하는 것이 기본적인 설정이 아니다. 극단적으로 독립적인 형태이다. - 일반적인 서버리스는 Function-as-a-Service이다. - FaaS 대표 : AWS lambda - BaaS 대표 : 구글 Firebase AWS Lambda - Lambda는 cold-start 이슈가 있다 (시작이 오래 걸림 0.8초) - cold-start를 해결하기 위해..

DevOps/AWS 2023.05.07

[AWS] 마이크로서비스 간의 통신 방식 (Kafka, RabbitMQ)

마이크로서비스의 2가지 통신 방법 - 동기와 비동기 - 비동기 방법이 마이크로서비스 통신에 적합하다 - (비동기) 메시지 브로커를 중간에서 사용한다 > 핵심적인 가치인 "독립성" - (비동기) RabbitMQ & Apache Kafka Asynchronous Messaging - 메시지 브로커가 중재자 역할을 한다. 연결이 중간에 끊어졌다면 임시 메시지 저장소를 제공한다 - 마이크로서비스 별 독립성을 확보한다 - PM이 ㅋㅋㅋㅋ 비슷한 역할을 한다. 메시지 전달 집중하는 일을 하신다. CEO와 개별 팀은 독립성을 확보한다. 마이크로서비스의 간단한 아키텍처 예시 - Order와 Boss는 독립적인 프로젝트이다. 프레임워크가 다르다. (Django, Flask) - Order와 Boss의 통신은 2가지 방식..

DevOps/AWS 2023.04.02
728x90
반응형