모든 글 202

[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

[Querydsl] 순수 JPA와 Querydsl 1. (순수 JPA 리포지토리에서 querydsl 사용해보기)

순수 JPA 리포지토리와 Querydsl이제 순수 JPA 리포지토리에서 Querydsl을 활용해보자@Repositorypublic class MemberJPARepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJPARepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFactory(em); }우선 위와 같이 순수 JPA 리포지토리를 만들고여러 기본 메소드들을 만들어주자 public void save(Member member){ em.persi..

[개발일지] TAVE 공식 홈페이지 개발 1. (개발, 백엔드, 브랜칭 전략, 커밋 컨벤션, 로깅 규칙, PR 템플릿)

TAVE 동아리 운영진을 하던 중 운영진끼리 공식 홈페이지 개발을 하기로 했다. 메인 페이지와 관리자 페이지 서류 모집, 채점 등등 모든 것을 홈페이지에서 처리하기로 해서 살짝 규모가 큰 프로젝트가 될 거 같다. 여러 프로젝트를 해봤지만 앞으로 계속 운영할 사이트를 만드는 것은 처음이기 때문에실제 운영 환경을 생각하며 꼼꼼히 프로젝트를 진행해야겠다. 백엔드 파트장 역할을 맡아 살짝 부담이 되긴 하지만 열심히 해봐야지 ,, 각종 컨벤션 및 브랜칭 전략우선 본격적으로 개발에 들어가기 전에 각종 컨벤션과 브랜칭 전략을 먼저 정하기로 했다. 커밋 컨벤션PR 컨벤션 (템플릿)로깅 규칙브랜칭 전략이렇게 네 가지를 먼저 정했다. 커밋 컨벤션제목문장 보다는 구문ex 기능 구현했습니다 → 기능 구현마지막 온점 사용 X ..

[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

[AWS] aws 강의 섹션 16 (ECS, 도커, ECS task Definitions, EKS, ECS with ALB)

도커란?도커는 앱 배포를 위한 플랫폼이다. 앱은 컨테이너 내부에 패키징 되는데 컨테이너는 아무 운영체제에서든지 실행될 수 있다.앱이 컨테이너에 들어가면 어느 운영체제에서든 같은 방식으로 실행된다.호환성 문제가 없어지고애플리케이션 행동 예측이 더 쉬워지며유지 보수가 더 쉬워지고언어, 운영체제 기술에 상관없이 실행이 가능하다.도커의 사용 사례로는 마이크로서비스 아키텍쳐가 있다.  도커는 운영체제에서 어떻게 실행될까서버 내부에 여러 도커 컨테이너를 설치할 수 있고, 각각의 컨테이너 내부는 다른 언어로 구성할 수 있다.컨테이너 내부에 데이터베이스도 설치가 가능하여 활용성이 높다. 도커 이미지는 어디에 저장될까도커 이미지는 도커 리포지토리에 저장된다.도커 리포지토리는 여러 유형이 존재한다.도커 허브 아주 유명한 ..

AWS 2024.10.03

[AWS] aws 강의 섹션 14 (S3 객체 암호화, S3 Object Lambda, 전송 중 암호화, S3 PreSigned Url)

S3 - 객체 암호화객체를 암호화 하는 방법은 4가지가 존재한다.Server-Side Encryption (SSE) 서버 암호화S3-Managed Keys (SSE - S3) - 버킷과 객체에 default로 활성화된 값이다.KMS Keys stored in AWS KMS (SSE-KMS)KMS라는 암호화 키를 통해 암호화를 하는 방법이다.Customner-Provided Keys (SSE-C)사용자가 제공한 키를 통해 암호화 하는 방법이다.Client-side Encryption 클라이언트 측에서 암호화 한 후에 S3에 업로드하는 방식이다.어떤 상황에 무엇을 사용하는지 이해하도록 하자SSE-S3 방식이 방식에 사용되는 키는 AWS에서 관리하고 소유한다.사용자는 이 키에 접근할 수 없다.AWS 서버 측에..

AWS 2024.10.03

[AWS] aws 강의 섹션 13 (S3 수명주기 규칙, S3 Event Notifications, S3 성능과 최적화 방법, S3 메타데이터와 태그)

S3 Moving between Storage Classes위의 그래프와 같이 객체를 다른 클래스로 보낼 수 있다.객체에 자주 액세스 하지 않을 것을 알고 있다면, 표준 IA로 보내고객체를 아카이브할 예정이라면 Glacier나 Archive 클래스로 객체를 보내면 된다.객체는 수동으로 이동할 수도 있지만, 수명 주기 규칙을 사용해 자동화할 수도 있다.Lifecycle Rules수명 주기 규칙은 다양한 요소로 구성되어 있다.Transition Actions - 객체를 다른 클래스로 옮기기 위한 작업예) 60일 동안 액세스 하지 않았다면 해당 객체를 IA로 옮겨라Expiration actions - 일정 기간이 지나면 객체를 삭제하는 작업예) 로그 파일의 경우 365일 이후 삭제해라 예) 멀티파트 업로드가 ..

AWS 2024.10.01