AWS SQS-Lambda 기반 올리브영 쿠폰 만료 처리 서비스 구현
·
IT/cloud
실제 올리브영 프로세스가 아닌 임의로 구성된 프로세스입니다.프로세스 여기서 사용하는 AWS 서비스는 아래 4가지입니다.SQSLambdaEventBrigeRedisAurora 1.     Lambda REDIS에서 쿠폰 데이터 읽음 람다1: 레디스에서 읽은 쿠폰 데이터를 SQS에 보내는 함수글로벌 기준이기 때문에 모든 자정을 파악하기 위해서 1시간마다 cron을 통해 호출합니다.  이전에 전달된 쿠폰 데이터는 중복으로 보내지 않는다. MessageDeduplicationId를 사용하여 동일한 coupon_id에 대해 중복 전송을 막을 수 있습니다. 2.     EventBrige 국가 별 자정(미국, 일본, 한국) 트리거 이벤트 브릿지를 3개로 하여 각 미국, 일본 그리고 한국으로 설정했다. 올리브영이 미..
[AWS] 테라포밍: AWS 인프라를 Terraform으로 exporting
·
IT/cloud
환경설정1. Mac 기준 설치 목록 - Terraform, Terraformer, AWS CLI 설치brew install terraformterraform -v # 설치 확인brew install terraformerterraformer -v # 설치 확인brew install awscli 2. AWS 자격증명 설정aws configureAWS Access Key ID:AWS Secret Access Key:엑세스 코드를 AWS에서 생성한 키를 작성합니다.3. Terraformer로 리소스 가져오기terraformer import aws --resources=ec2,lambda,vpc,route53,cloudfront,nat_gateway,igw,alb,auto_scaling_group,sns,sq..
EC2 Bastion 서버와 Aurora 데이터베이스 연동 설정
·
IT/cloud
성공 버전(Ubuntu)Aurora에 EC2 연결가용영역이 2c라서 다시 가용영역 맞추기 위해 다시 만들었다.EC2 Untunu 접속하기sudo apt-get updatesudo apt-get upgradesudo apt-get install mysqlsudo apt-get install mariadbsudo apt-get install mariadb-clientmysql --versionmysql -h aurora-mysql-cluster.cluster-cxc2mkao053o.ap-northeast-2.rds.amazonaws.com -u admin -p -P 3306  EC2 연결 설정을 통해  연결해준다. 완성-!  Fail Version(Linux 2023)Linux 2023로 생성한 것은 인바운..
[Terraform] 테라폼으로 AWS Elasticache(redis) Cluster 모드로 생성하기
·
IT/cloud
환경 설정 설치terraform initterraform planterraform apply -target modules.elasticacheterraform 설치brew tap hashicorp/tapbrew install hashicorp/tap/terraform버전 확인terraform -version aws cli설치brew install awscli 사용자 IAM 권한 주기 보안자격증명- 엑세스키 만들기 CLI 설정terraform 실행vscode에서 terraform을 실행하여 터미널을 킨다.유저 엑세스 키를 알아냈다면, aws configure를 입력하여 이용하고자 하는 User의 Access, Secret Access Key를 입력해주자. $ aws configureAWS Access Ke..
Jenkins 디스크 용량 부족 문제 해결 방법
·
IT/cloud
에러발생Disk space is below threshold of 1.00 GiB. Only 598.86 MiB out of 6.71 GiB left on /var/jenkins_home.Your Jenkins data directory /var/jenkins_home (AKA JENKINS_HOME) is almost full. You should act on it before it gets completely full.에러 원인분석디스크 용량이 부족한 이슈가 계속해서 발생한다..원인을 찾아보기 위해 도커로 돌아가고 있는 젠킨스에 접속해보았다.docker exec -it {jenkins container id} /bin/bash/var/jenkins_home/ 의 용량이 부족하다고 하니 해당 디렉토리로..
AWS Certificate Manager(ACM)을 활용한 CloudFront HTTPS 적용
·
IT/cloud
AWS Certificate Manager(ACM) 인증서 역할인증서는 AWS 리소스(예: Load Balancer, CloudFront, API Gateway)인증서는 클라이언트 서버 간의 안전한 통신을 보호한다. 클라이언트 서버로 요청을 보내고, 데이터를 처리하여 사용자에게 결과를 제공하여 암호화를 통해 데이터 보호를 제공한다.Amazon CloudFront- AWS에서 제공하는 글로벌 콘텐츠 전송 네트워크(CDN) 서비스이다.- CloudFront는 사용자에게 빠른 데이터 전송 속도를 제공하려고 웹사이트의 콘텐츠를 전 세계에 분산된 서버에 배포한다. - 사용자가 요청하면 가장 가까운 서버에서 콘텐츠를 제공하게 된다.AWS Certificate Manager (ACM)- SSL/TLS 인증서를 무료로..
서브도메인을 사용하기 위해 Route 53, CloudFront, S3, ACM 설정하기
·
IT/cloud
이 글의 목표도메인을 구매해서 AWS의 Route53에 등록을 할 것.서브도메인을 사용해서 이벤트 페이지는 분리를 시킬 것.서브도메인과 연결되는 페이지는 S3에 호스팅해서 CloudFront로 연결할 것.https 연결을 위한 ACM 인증서 발급할 것.서브도메인을 사용하는 이유?(쿠폰 발급 이벤트만 서브도메인에서 처리하는 이유)많은 기업들이 이벤트나 특정 서비스는 서브도메인으로 분리해서 운영하고 있기 때문에 이 방식은 일반적인 사용법이다.명확한 서비스 구분 → 이벤트 페이지를 독립적으로 운영 가능SEO·마케팅 최적화 → 검색·광고 효과 극대화트래픽 분산·성능 최적화 → 서버 부하 감소독립적 운영 가능 → 배포·업데이트 유연성 증가Route53 메인 도메인 생성1. 호스팅 영역 생성 (메인 도메인 등록)로..
[Clean Architecture 정리] 34장. 빠져 있는 장
·
IT/architecture
1.계층 기반 패키지2.기능 기반 패키지3.포트와 어댑터4.컴포넌트 기반 패키지34장. 빠져 있는 장클린 아키텍처는 잠시 제쳐놓고, 설계, 코드 조직화와 관련된 접근법을 살펴본다.I 계층기반패키지1.가장 단순한 첫번째 설계방식이고 전통적인 수평 계층형 아키텍처이다.2. 계층기반패키지란 ? 기술적인 관점에서 해당 코드가 하는일을 기반해 그 코드를 분할한다. 각 계층은 “업무규칙”으로 유사한 종류의 것들을 묶는 도구로 사용된다. 엄격한 계층형 아키텍처 경우 계층은 반드시 바로 아래 계층에만 의존해야 한다.[34.1 계층기반 패키지]OrdersController : 웹기반 요청처리OrdersService : 주문관련 “업무규칙" 정의OrdersServiceImpl : OrderService구현체OrdersRe..
[Clean Architecture 정리] 29장. 클린 임베디드 아키텍처
·
IT/architecture
클린 임베디드 아키텍처"소프트웨어는 닳지 않지만, 펌웨어와 하드웨어는 낡아 가므로 결국 소프트웨어도 수정해야 한다." - 더그 슈미트→ 소프트웨어는 닳지 않지만, 펌웨어와 하드웨어에 대한 의존성을 관리하지 않으면 안으로부터 파괴될 수 있다.임베디드 엔지니어가 아닌 당신도 코드에 SQL을 심어 놓거나 개발하는 코드 전반에 플랫폼 의존성을 퍼뜨려 놓는다면, 본질적으로 펌웨어를 작성하는 셈이다. 안드로이드 앱 개발자 역시 업무 로직을 안드로이드 API로부터 분리하지 않은다면 펌웨어를 작성하는 셈이다. 앱티튜드 테스트(App-titude test)켄트 벡 Kent Beck은 소프트웨어를 구축하는 세가지 활동을 다음과 같이 기술했다.-먼저 동작하게 만들어라-그리고 올바르게 만들어라코드를 리펙토링해서 타인이 이해하..
[Clean Architecture 정리] 28장. 테스트 경계
·
IT/architecture
테스트는 시스템의 일부이며, 아키텍처에도 관여한다.시스템 컴포넌트인 테스트아키텍처 관점에서는 모든 테스트가 동일하다.TDD 로 생성한 아주 작은 테스트이든, 아니면 대규모의 FitNesse, Cucumber, SpecFlow, JBehave 테스트이든, 이들 테스트는 아키텍처적으로 모두 동등하다.세부적이며 구체적인 것으로, 의존성은 항상 테스트 대상이 되는 코드를 향한다.실제로 테스트는 아키텍처에서 가장 바깥쪽 원으로 생각할 수 있다.시스템 내부 어떤 것도 테스트에는 의존하지 않으며, 테스트는 시스템의 컴포넌트를 향해, 항상 원의 안쪽으로 의존한다.1) 테스트는 의존성 규칙을 따른다.테스트는 세부적, 구체적인 것으로 의존성은 항상 테스트 대상이 되는 코드를 향한다.실제로 테스트는 아키텍처에서 가장 바깥쪽..