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. 호스팅 영역 생성 (메인 도메인 등록)로..
Jenkins을 이용하여 Docker Image를 ECR로 올리기 with Github, 퍼블릭 서브넷
·
IT/cloud
Docker in Docker (DinD) 방식으로 AWS ECR 활용하기DockerAgent 준비물Docker in Docker(DinD) 방식으로 에이전트를 실행하고 컨테이너를 동적으로 관리하기 위해 아래의 준비물이 필요합니다. 필수 준비물AWS Access KeyAWS IAM 권한AmazonEC2ContainerRegistryPowerUser 권한을 가진 IAM 사용자 생성AWS ECR (Elastic Container Registry) AWS ECR(Elastic Container Registry)에 repository 생성하기ECR (EC2 Container Registry)은 Docker Container의 이미지를 저장하는 Repository 서비스IAM 인증을 통해 이미지의 push / p..
Jenkins + GitHub 프라이빗 서브넷 환경, CI 구축의 어려움
·
IT/cloud
Jenkins란?지속적 통합(CI)Polling 기법 혹은 Webhooks 방법으로 동작한다.- Webhooks: 이벤트 전달 , Polling: request 요청(10초에 한 번씩)젠키스 접속을 위한 aws 설정Jenkins에 접속하기 위해 ALB 필요가 필요하여 구축이 필요하다.1. 젠키스 ec2 생성2. 로드밸런서 구성dev-jenkins-albinternet-facing3. ALB의 DNS 주소로 접속1. 젠티스 ec2 생성보안 그룹 구성jenkins ec2 보안그룹(dev-jenkins-ec2) 인바인드 규칙2. 로드밸런서 구성대상그룹 생성대상은 인스턴스로 설정하고 젠킨스가 위치한 ec2를 선택해주었다.로드밸런서 생성을 누르고 ALB를 선택이렇게 설정해주고 아래에서도 vpc랑 public su..
[Ansible] lac를 통한 클라우드 인프라 구축-2
·
IT/cloud
플레이북 실행3가지 유형의 파일구성파일인벤토리 파일플레이북 파일구성파일구성파일: Ansible의 동작방법을 설정하는 파일기본위치 /etc/ansible/ansible.cfg기본적으로 구성 파일은 /etc/ansible/ansible.cfg에 위치하지만, 일반적으로 프로젝트별 작업 디렉토리를 생성해 해당 디렉토리에서 구성 파일을 관리합니다.기본 인벤토리 파일[defaults]inventory = ./inventoryremote_user = userask_pass = false[privilege_escalation]become = truebecome_method = sudobecome_user = rootbecome_ask_pass = false #기본값 다음은 각 행에 대한 설명입니다. (중요!!!!)[d..