EC2 amazon linux 2 -> amazon linux 2023, (node.js 20 upgrade)
·
AWS
AS-IS현재 구동중인 백엔드 서버의 node 버전은 16버전을 사용하고 있다. node 16은 지원이 중단되었으며 보안 업데이트도 받을 수 없는 버전에 놓여있기에 최근 lts인 node 20으로 업그레이드를 진행 하고자 한다. 현재 서버 EC2 AMI는 amazon linux 2를 사용 중에 있다.  TO-BEnode 20 버전으로 업그레이드를 진행하기 위해서 Amazon linux 2에서 Amazon linux 2023으로 업그레이드를 진행하고자 한다.단, 현재 가동 중인 prod 환경에서 다운타임 없이 업데이트를 진행하고자 한다.  이 때의 best pracitce와 더불어 각 인프라를 분석하며 업그레이드를 진행한다.  Node.js BenchmarkState of Node.js Performanc..
[JAVA / SPRING BOOT] 백엔드 서버 CI / CD 구축 with Github actions, EC2, Code Deploy
·
AWS
CI란? 지속적 통합(Continuous Integration)은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 DevOps 소프트웨어 개발 방식입니다. 지속적 통합은 소프트웨어 릴리스 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 자동화 구성 요소(예: CI 또는 빌드 서비스)와 문화적 구성 요소(예: 빈번하게 통합하도록 학습) 모두를 포함합니다. 지속적 통합의 핵심 목표는 버그를 신속하게 찾아 해결하고, 소프트웨어 품질을 개선하고, 새로운 소프트웨어 업데이트를 검증 및 릴리스하는 데 걸리는 시간을 단축하는 것입니다. 대표적인 서비스 AWS CodeBuild 만약 CI없이 그냥 배포했다가 빌드 에러가 발생한다면...? 테스트 한 번도 안해보..
EC2 ssh 연결이 안 된다면? (key pair) "Permission denied (publickey)", "Authentication failed, permission denied"
·
AWS
서론 먼저, EC2에 인스턴스를 배포 후 로컬 터미널로 접속을 하고자하였으나 지속적으로 오류가 발생하였고, 구글링을 해봐도 해결 방법을 여러 차례 시도해봐도 접속이 되지 않았었다. 단, AWS 콘솔에서 직접 EC2 Connect로 접속 시 정상적으로 접속이 가능한 상황이었다. 따라서 ssh 연결 시 ec2의 키가 올바르지 않게 구성이 되어있는지 확인해보고자 하였고 이를 통해 해결할 수 있었다. 해결 방법 로컬 터미널에서 ec2의 pem키가 있는 경로로 이동 후 아래 명령어를 실행시킨다. ssh-keygen -f tigerbk.pem -y 그 다음 현재 EC2의 키 파일을 확인하여야한다. 1. AWS 콘솔 접속 2. 인스턴스 선택 3. Connect -> EC2 Connect를 통해 접속한다. cat ~/..
[AWS] EC2 vs Lambda
·
AWS
서론 클라우드 환경에서 백엔드 서버(자바, 스프링)를 배포하고자한다. AWS 서비스 중 EC2와 Lambda를 선택하고자 하는데 각자 비교해보고 결론을 지어보고자한다. EC2 특징 가상화된 컴퓨팅 환경을 제공한다. 사용자는 운영 체제, 애플리케이션 서버, 애플리케이션을 포함한 인스턴스의 전체 스택을 관리할 수 있다. 다양한 인스턴스 유형과 크기를 제공해서 요구사항에 맞게 유연하게 선택할 수 있다. 온디맨드, 예약 인스턴스, 스팟 인스턴스 등 다양한 가격 모델을 제공한다. 장점 높은 유연성과 제어력 시스템의 모든 측면을 제어할 수 있어 복잡한 애플리케이션과 다양한 아키텍처 요구사항을 수용할 수 있다. 확장성 애플리케이션 요구사항에 따라 인스턴스를 수평 확장하거나 축소할 수 있다. 네트워킹 옵션의 유연성 V..
EC2 사용자 데이터(user-data) 확인법
·
AWS
사용자 데이터 확인법조회하고자하는 EC2 ssh 세션에 들어가 아래 두 가지 방법 중 하나의 방법을 선택하여 명령어를 입력한다.IMDSv1curl http://169.254.169.254/latest/user-dataIMDSv2TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/user-data잘 조회가 되는 모습을 볼 수 있다.
[AWS] NestJS(NodeJS) 백엔드 서버 CI/CD Beanstalk으로 배포하기 with Docker
·
AWS
항상 백엔드 토이프로젝트를 할 때는 로컬에서 개발만 하다가 문득 이런 생각이 들었습니다. "아...CI/CD를 한 번만 구축하게 된다면 나중에 큰 도움이 되지 않을까?" 위와 같은 생각이 들어서 바로 작업에 들어갔습니다. 먼저, 배포를 하기 위해 사람들은 여러가지 방법을 쓰고 있지만 저는 AWS Elastic Beanstalk을 이용하여 인프라를 구축해보자라는 마음이 들었습니다. 이유는 딱히 없었습니다만...깃헙 액션이나 젠킨스와 같은 도구들도 있지만 AWS의 Code Pipeline을 한 번 써보고 싶었습니다 ㅎㅎ (사실 이미 사내 CI/CD가 EB로 구축되어 있긴 하나 제가 구축 해본 경험이 없어서 직접 해보면 도움이 되지 않을까 싶어서였습니다 ㅎㅎ...) 먼저 간단하게 백엔드 서버는 NestJS 프..