AWS 15

[Terraform] EKS IaC

Amazon EKS Workshop Study 2기8주차EKS IaC ( Terraform )eks 환경을 테라폼으로 구성해보기 실습환경 구성윈도우에서 구성하려면 mac 환경에서보다 이것저것 해 줘야할 게 많다. brew 짱짱맨.. wsl2 설치 > 실행 > 테라폼 설치wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_re..

[EKS] CI/CD

Amazon EKS Workshop Study 2기 7주차 CI/CD eks 환경에서 젠킨스와 argoCD 를 활용한 CI/CD 파이프라인 구축 실습환경 구성 curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/eks-oneclick6.yaml # default 네임스페이스 적용 kubectl ns default # 노드 정보 확인 : t3.medium kubectl get node --label-columns=node.kubernetes.io/instance-type,eks.amazonaws.com/capacityType,topology.kubernetes.io/zone # ExternalDNS MyDomain..

[AWS] Route53 vs Cloud map

공통점 AWS에서 제공하는 DNS(Domain Name System) 관리 서비스 둘 다 도메인 이름을 등록하고, IP 주소를 할당하고, 도메인 이름에 대한 라우팅 정보를 관리 차이점 (+설명) Route53 DNS(Domain Name System) 서비스. DNS는 인터넷에서 사용되는 IP(Internet Protocol) 주소와 같은 숫자 형식의 주소를 사람이 이해할 수 있는 문자열 형태로 변환하여 도메인 이름을 인식할 수 있게 해주는 시스템. Route 53은 DNS 서비스를 제공하면서 도메인 이름 관리와 라우팅을 가능하게 함 → 사용자는 자신의 도메인을 쉽게 등록하고 관리할 수 있으며, 트래픽을 다른 AWS 리소스로 라우팅하여 도메인 이름을 사용하는 웹사이트나 애플리케이션의 가용성을 높임 Rou..

Infra & DevOps/AWS 2023.04.09

[AWS] VPC endpoint vs NAT gateway

배경 internal 통신을 위한 alb가 생길 때, 얘가 누구랑 통신을 하는 것인지, private subnet안에 숨겨져 있는데 당연히 public으로 두지 않아야 한다는 것은 알지만 정확히 어떤 목적으로 숨겨진 것인지, 어떻게 통신을 하는지, 아예 내부에서만 트래픽이 돌게 할 수 는 없을까 등에 대해 고민 비교 공통점 VPC 외부와 통신하지 않고 VPC 내부에서만 vpc 외부에 있는 서비스들에 접근해야 할 때, Private Subnet 안에 있는 EC2 인스턴스, ECS 컨테이너 인스턴스, Lambda 함수 등에서는 VPC Endpoint 또는 NAT Gateway를 사용하여 액세스할 수 있다. 차이점 VPC endpoint AWS 서비스와 VPC 간의 트래픽을 안전하게 전달하기 위한 가상 인터페..

Infra & DevOps/AWS 2023.04.09

[AWS]ElastiCache vs memoryDB

요약 공통점 수직, 수평 확장이 가능하며 데이터 샤딩과 읽기 레플리카 지원 멀티 az 지원, 페일 오버 기능 제공 읽기 속도는 마이크로초 단위 차이점 엘라스틱 캐시의 가격이 메모리디비의 약 66% → 40%정도 더 싸다 엘라스틱 캐시는 페일오버시 데이터 손실이 우려되나, 메모리디비는 그부분을 보장한다 엘라스틱 캐시는 쓰기가 마이크로초 단위, 메모리 디비는 밀리세컨드초 단위 → 메모리 디비가 느림 고민 신규 서비스에서 사용할 redis를 생성하고자함. 레디스를 캐시로 사용하기 위한 aws 서비스에는 elasticache 와 memorydb가 있음. 둘 중 어느 쪽으로 선택해야 하는가? 데이터베이스의 목적은 아니고, 오로지 캐싱만을 목적으로함. 비교 ElastiCache 설명 aws에서 제공하는 완전 관리형..

Infra & DevOps/AWS 2023.04.09

[AWS]Session Manager 로 인스턴스 접속

aws 에서 제공하는 ec2 인스턴스 사용시 해당 인스턴스에 접속하는 방법은 크게 세 가지. 1. 콘솔 상에서 인스턴스로 연결 2. 세션 매니저를 사용 3. 키페어를 등록하여 로컬의 터미널에서 ssh -i 명령을 통해 접속 각 방법은 특징들이 있다. 1번은 일단 매우 쉽다. 단, 접속하고자 하는 인스턴스가 퍼블릭 ip를 가지고 있어야 하기 때문에 실제 서버의 역할을 하기엔 보안상 이슈가 있다. 3번은 내 로컬에서 원격의 인스턴스를 접속하여 서로 파일을 전송하거나 연결을 하기 위한 방법. 로컬의 운영체제 별로 조금 다른 접근이 필요. 가장 큰 특징은 키페어를 발급받아 퍼블릭 키와 프라이빗 키의 매칭을 통해 접속을 하는 방식. 해당 방식에 대해서는 추후 단독 컨텐츠로 설명 예정. 2번 세션 매니저를 이용하게..

Infra & DevOps/AWS 2022.10.11

ssh로 aws 인스턴스 접속 오류

원하던 것 : 키페어 없이 aws 콘솔에서 바로 인스턴스에 접속 오류 상황 : 단순하게 퍼블릭 ip를 생성해서 콘솔 상에서 접속하는 것이기 때문에 키 페어나 다른 에러가 짐작도 안됨. 해결 : 놀랍게도 로컬 환경에서의 타임 존이 맞지 않아서 발생. 이게 무슨 상관인가 싶기도 하고, 왜? 싶긴한데, 노트북을 처음 받고 제대로 타임 존 설정을 해 두지 않고 인스턴스 생성 후 접속을 시도했던 부분을 수정하니 제대로 접속이 되었다. 에러 수집가답게도 다양한 경험을 했다. 언제나 기기를 처음 받으면 기본 셋팅이 중요함을 잊지말자.

Infra & DevOps/AWS 2022.10.11

엘라스틱 캐시를 위한 Redis VS Memcached

[AWS][ElastiCache] #1. 엘라스틱 캐시의 클러스터 고르기 상황 마지막 프로젝트를 진행하면서 제작한 서비스의 메인 ec2 상의 api 서버는 기본적으로 mysql 기반의 rds 로 엔드포인트가 향해있었다. 어플리케이션을 통해 들어온 사용자의 예약 정보를 저장하기 위한 데이터베이스가 필요했기 때문. 솔직히 여기까지만 해도 토이프로젝트로는 충분하다고 생각했다. 실제 우리가 많은 양의 데이터를 처리하거나, 처리 속도에 대한 제한까지 신경쓸 것 같진 않았다. 사실 작은 규모의 데이터 입출력을 다룰 땐 캐싱이 필요하지 않다. 오히려 비용적 측면에서 캐싱을 함으로써 발생하는 추가 비용이 rds를 직접 다녀오는 비용보다 클 수 있다. 단, 요구사항 명세에서 클라이언트로 부터 다음과 같은 요구를 받게되었..

Infra & DevOps/AWS 2022.06.07

[Final Project]TeamB_화물 용달 예약/조회 서비스

Day1 오늘 한 것 요구 사항 명세 작성 소비자가 예약을 진행할 때, 예약 정보를 RDS에 저장한다. 드라이버가 예약을 인지할 수 있도록 해당 메시지를 알림 서버에 전달한다. 예약 정보를 다루는 서버는 추가 될 트래픽에 대한 확장성이 보장되어야한다. 알림 서버는 추가 될 트래픽에 대한 확장성이 보장되어야한다. 데이터 내구성을 보장하기 위해 RDS는 복제본이 만들어져야 한다. 빠른 예약 정보 검색을 위해 쿼리결과는 ElastiCache를 통해 캐싱이 되어야 한다. 예약 내역이 담긴 메시지 누적은 Elasticsearch를 통해 제공된다. 누적된 로그는 예약 정보를 담는 rds와는 별도의 db에 저장된다. 예약 서비스와 조회 서비스는 별도로 관리되는 서비스이다. 요구 사항 명세 바탕으로 엔지니어와 팀미팅 ..

[AWS][aws-cli] 인스턴스에서 s3 업로드하기

어차피 인스턴스 내에서 작업을 하는 중이니까 특히 s3 버킷의 경우 정적파일이라서 매번 새로 빌드하면 새로 올려야한다. 파일 질라같은 프로그램으로 매번 인스턴스에서 로컬로 받아서 올리고 s3 파일 삭제하고 하기 귀찮으니까 한줄로 덮어쓰기까지 가능한 aws-cli를 활용하쟈! aws configure 프로필 > 보안자격증명 여기서 액세스키 id 랑 secret key를 받을 수 있는데 꼭 저장하자 id는 노출되도 괜찮지만 secret key는 노출되지않도록 조심 aws-cli 사용을 위한 설정 $ aws confiugre 여기서 위에서 알아낸 id랑 key 넣어준다. 리전과 aws.log 포맷은 좋아하는거 넣어주면 된다. 이걸 넣어줘야 aws-cli 활용할때 쉽게 가능함:) 인스턴스 내에서 s3로 폴더 이..

Infra & DevOps/AWS 2022.05.15