서버 인프라/Aws 18

AWS IPv4 요금변경

사이드 프로젝트를 하던 중, 요금이 너무 많이 나오는 것 같아서 요금을 추적해 보니, IPv4에 대한 새로운 요금 정산 방식이 추가되어서 그렇다고 한다. https://aws.amazon.com/ko/blogs/aws/new-aws-public-ipv4-address-charge-public-ip-insights/ New – AWS Public IPv4 Address Charge + Public IP Insights | Amazon Web Services We are introducing a new charge for public IPv4 addresses. Effective February 1, 2024 there will be a charge of $0.005 per IP per hour for al..

VPC Peering 사용하기

이번에 서버를 글로벌 확장을 하게 되면서 각 VPC간에 연결을 해야 할 상황이 왔다. 그래서 Peering을 하면서 간단히 정리해 보려고 한다. 개요 처음에는 각 국가의 서버 정보가 달라야 하기 때문에 아키텍쳐 전체를 복사하려고 했으나, 모니터링 및 기타 중앙에서 관리해야 하는 앱이 있고, 해당 앱에 대해서는 처음부터 구축하기에는 공수가 많이 들었다. 그래서 서비스되는 애플리케이션은 Terraform을 사용해서 복사하고, BI 또는 모니터링 애플리케이션에 대해서는 AWS의 내부 네트워크를 사용해서 타 리전의 애플리케이션에 접속하여 외부 네트워크를 거치지 않고 안전하게 데이터에 접근할 수 있게 할 계획이다. 먼저 VPC Peering과 비슷한 서비스인 Transit Gateway에 대해서 조사해 보았다. ..

SSH Bastion 안전하게 연결하기

일반적인 웹(서버) 애플리케이션을 배포할 때는 외부에 보여지는 계층(80, 443포트)을 제외하고 다른 외부 출입은 다 막아버린다. 이 때 만약 개발자가 외부에서 직접 애플리케이션에 접속해야 할 때는 Bastion(배스쳔) 호스트를 통해서 접속한다. 애플리케이션 구조 먼저 실행되는 애플리케이션은 프라이빗 서브넷에 있다고 가정하자. 프라이빗 서브넷의 애플리케이션은 일반적으로 외부에서 접속하지 못한다. 하지만 ssh연결을 해야 할 경우에는, 퍼블릭 서브넷에 있는 배스쳔 호스트를 통해서 애플리케이션으로 접속한다. ssh 터널링이다. 그림으로 그리게 되면 다음과 같다. 아마존 ec2 인스턴스는 공개키를 사용해서 인스턴스에 접속하는 방식을 기본적으로 채택하고 있다. ssh에 pem파일을 태워서 접속하면 된다. 이..

AWS 솔루션 아키텍트 어소시에시트 합격 후기

최근들어 클라우드 관련한 아키텍쳐를 설계할 일이 생겼는데, 아키텍쳐를 설계할 때 마다 전체적인 구성이 그려지지 않는다는 생각이 너무 들었다. 그래서 전체적인 흐름을 알 수 있는 방법에 대해서 알아보다가 AWS에서 운영하는 자격증 시스템이 있어서 확인해 봤다. 내 수준에 적합한 자격증으로 SAA자격증이 있는거 같아서, 한번 따 보기로 했다. AWS 자격증 종류 사실 공홈이 잘 정리가 되어있다. https://aws.amazon.com/ko/certification/exams/ 모든 AWS Certification 시험 살펴보기 | AWS 클라우드 기술 검증 | AWS 언어: 영어, 프랑스어(프랑스), 독일어, 인도네시아어, 이탈리아어, 일본어, 한국어, 포르투갈어(브라질), 중국어 간체, 스페인어(라틴 아..

이벤트 데이터 파이프라인 제작하기

최근에 이벤트 관련 데이터 파이프라인을 분리하는 작업을 시작했다. 기존에는 서비스를 운영하면서 나오는 모든 이벤트들을 DB에 저장하는 것을 보고, 언젠가는 꼭 해결한다고 했는데 그걸 이제야 시작한다. 해당 로직을 구상하기 위해서 여러 방법들을 구상한 결과, 기존 AWS 도큐먼트에 있는 시스템을 이용해 보는 것이 좋겠다고 생각했다. 구상하기 현재 시스템은 특정 이벤트에 대한 내용을 클라이언트에서 4곳의 서버 (사용자 분석 툴)로 데이터를 보내주고 있다. 이 중 하나는 DB로 이벤트를 보내게 되는데, 이 시스템 자체가 상당히 비효율적이라는 생각이 들었다. DB는 주로 사용자의 데이터 및 프로덕트의 가변 정보들을 저장하는 곳인데, 이벤트에 대한 데이터를 DB에 저장하기에는 목적에도 맞지 않고 DB 및 WAS에..

AWS Chatbot으로 서버 상태 모니터링하기

현재 아키텍쳐는 Elastic Beanstalk에서 서버 이상 상태에 대한 이벤트를 받아서 Lambda 함수에서 슬랙으로 메시지를 전송한다. 하지만 여기서 Lambda 함수에 대한 코드를 사용자가 직접 관리해야 하기 때문에, 이 기능을 AWS Chatbot으로 이전해서 코드에 대한 관리까지 없애보려고 한다. 기존의 플로우에서 람다 -> chatbot으로 전환하는 내용이다. 아래 링크는 기존의 플로우 https://tre2man.tistory.com/303 서버 상태 Lambda와 Slack으로 실시간 확인하기 현재 운영중인 서버는 Elastic Beanstalk으로 관리를 하고 있다. 덕분에 오토 스케일링, 블루그린 배포 등등 서버와 관련된 설정들을 간편하게 관리하는 중이다. 명령어 몇 줄이면 자동으로 ..

Kinesis 관련 내용 정리하기

최근 사용자 관련 이벤트를 수집하는 로직에서 문제가 보여서 해당 로직을 개선하기 위해서 방법을 찾아보니 Kinesis를 이용하는 것이 제일 좋아 보였다. 하지만 Kinesis에 관해서 잘 모르기 때문에 한번 정리해 보았다. Kinesis 란? 실시간으로 데이터 스트림을 수집 및 처리할 수 있는 시스템이다. Kinesis에는 총 4가지의 기능이 있다. Video Stream, Data stream, Data Firehose, Data Analytics 가 있다. Data stream 데이터를 실시간 스트림으로 받아서 수집 및 저장을 할 수 있는 서비스. Kinesis Data Analytics, spark, ec2, lambda 등의 서비스로 전송할 수 있다. Data Firehose 데이터를 실시간 스트..

AWS Lambda에서 고정 IP 사용하기

개요 이번에 SMS 및 카카오톡 알림톡을 보내는 로직을 커스텀해서 프론트에 API를 제공하는 작업을 하게 되었다. 이 때 '알리고' 라는 서비스를 사용하게 되었는데, 여기서 아이피주소 화이트리스트 (특정한 IP 주소에서 보낸 요청에만 응답하는 것) 를 기본적으로 적용하고 있고, 현재 API 서버와 결합해야 하지만 outbound를 고정하기 힘들고 범용성을 가져야 하는 특정 때문에 Lambda로 제작하기로 했다. 목표 lambda를 사용해서 '알리고'의 API를 사용해 메시지를 보내자. 단, outbound IP 주소는 항상 고정이여야 한다. 구상 글 맨 밑의 참고자료에서 사진을 가져왔다. 간단히 아키텍쳐에 대한 정리를 해 볼려고 한다. 정리 전에 간단한 용어 정리부터 하려고 한다. VPC: 가상 사설 네..

서버 상태 Lambda와 Slack으로 실시간 확인하기

현재 운영중인 서버는 Elastic Beanstalk으로 관리를 하고 있다. 덕분에 오토 스케일링, 블루그린 배포 등등 서버와 관련된 설정들을 간편하게 관리하는 중이다. 명령어 몇 줄이면 자동으로 배포가 가능한 편리한 기능이다. 최근에 서버 운영 중 서버가 죽는 일이 있었다. 이 때 서버 운영 문제를 바로 알았더라면 대응이 조금 더 빨리 되었을 것 같은데, 바로 알아차리지 못해서 대처가 조금 늦었다. 그래서 서버에 문제가 생기거나 상태 변화가 있을 때 바로 슬랙으로 서버 상태를 보내주는 로직이 필요할 것 같아서, 바로 서비스를 구축해보기로 했다. 구상하기 구조는 간단하다. Elastic Beanstalk은 상태 변화와 관련된 이벤트를 EventBridge로 보내주게 된다. 이 이벤트를 잡아서 슬랙으로 이..

AWS Amplify를 이용하여 기존의 react app 배포하기

아마존 요금 현황을 확인하니, 잘 사용하지 않는 react 사이트가 ec2 위에 올려져서 계속 돈을 먹는 것을 보았다. 서비스 운영에 필요한 사이트이나 자주 쓰는 사이트는 아니지만 꼭 필요한 사이트이기 때문에 배포 방식을 바꿀 필요가 있었다. 그래서 이것저것 찾아보던 중, 나의 요구사항에 잘 맞는 AWS Amplify라는 서비스를 알게 되었다. (배포 방식의 간편화, 사이트 이용량이 많지 않은 사이트) 그래서 Amplify를 이용해서 react app을 배포할려고 한다. AWS Ampliy 먼저 Amplify부터 알아보고 가자. Amplify는 AWS에서 출시한 모바일 앱 개발에 대하여 다양한 기능을 제공하는 프레임워크이다. 말만 들으면 뭐가 뭔지 모르겠다. 예시를 들어 보자. 1. 여러가지 플랫폼 및 ..