본문 바로가기

Infra (14)

반응형
Infra/AWS

[AWS] dotenv로 환경변수 경로 설정하기

이번 글에서는 dotenv로 환경변수를 관리한는 방법에 대해 포스팅하겠습니다. dotenv는 Node.js 애플리케이션에서 환경 변수를 안전하고 쉽게 관리하기 위해 사용하는 라이브러리입니다. 프로젝트의 .env 파일에 민감한 설정 정보나 API 키를 저장해 두고, 애플리케이션이 시작될 때 dotenv가 이를 자동으로 불러와 process.env에 등록합니다. dotenv는 프로젝트가 시작될 때 .env 파일을 읽고, 이 정보들을 코드 내에서 편리하게 사용할 수 있도록 도와줍니다.[dotenv 사용 이유]1. 보안성 향상비밀번호나 API 키 같은 민감한 정보를 코드에 직접 작성하지 않아도 되므로 소스 코드 유출 시에도 상대적으로 안전합니다.2. 환경별 설정 관리개발, 테스트, 배포 환경마다 필요한 설정을 ..

2024. 11. 16.
Infra/AWS

[AWS] EC2에서 PM2를 사용하여 애플리케이션 관리하기

PM2는 백그라운드에서 프로세스를 관리하고, 애플리케이션이 비정상적으로 종료되면 자동으로 재시작합니다. 또한, PM2는 애플리케이션 로그를 관리하고, 서버가 재부팅될 때 애플리케이션을 자동으로 재시작할 수 있는 기능도 제공합니다. 따라서 EC2를 이용해서 운영 배포한다면 아주 유용합니다.1. PM2 설치sudo npm install pm2 -g2. PM2로 애플리케이션 실행pm2 start server.js --name my-appex) pm2 start "pnpm start"ex) pm2 start "dev-server" 정상적으로 실행하셨다면 아래처럼 화면에 나오실 겁니다.3. 서버 재부팅 후 자동으로 PM2 시작pm2 startup4. 현재 실행 중인 애플리케이션 상태를 저장pm2 save그 외 유..

2024. 11. 9.
Infra/AWS

[AWS] EC2 프리티어 용량 + 메모리 늘리기

AWS EC2 프리티어를 사용할 경우 예상치 못한 문제에 직면할 수 있습니다. 그중 하나가 바로 배포 도중 "Killed"라는 메시지가 나타나며 설치나 배포가 중단되는 문제입니다. 이는 EC2 인스턴스의 메모리가 부족할 때 발생하는 흔한 현상입니다. AWS EC2 프리티어 인스턴스는 기본적으로 메모리가 1GB로 제한되어 있습니다. 작은 프로젝트의 경우 이 정도 메모리로 충분할 수 있지만, 프로젝트의 의존성이 많거나 빌드 과정에서 많은 메모리를 필요로 할 경우 메모리 부족 문제가 발생할 수 있습니다. 이때 시스템은 메모리가 부족하면 프로세스를 중단시켜 "Killed" 메시지를 발생시킵니다. 저 역시 이 문제를 겪으면서 해결 방법을 찾아보았고, 메모리와 스왑 메모리를 추가해 해결할 수 있었습니다. 이 글..

2024. 11. 2.
Infra/AWS

[AWS] EC2 NGINX를 이용한 무료 SSL 적용 방법 (feat, Let's Encrypt)

EC2 인스턴스에 NGINX를 사용하여 SSL을 적용하는 방법은 다음 단계로 진행할 수 있습니다. 일반적으로 무료 SSL 인증서는 Let's Encrypt를 사용하며, certbot을 이용해 쉽게 SSL 인증서를 발급하고 NGINX에 적용할 수 있습니다. 저는 우분투 환경에서 진행하였습니다. 참고바랍니다:)1. NGINX 설치 (이미 설치되어 있으면 이 단계는 건너뛰세요)sudo apt updatesudo apt install nginx2. NGINX 활성화 및 시작sudo systemctl enable nginxsudo systemctl start nginx3. 도메인 설정 (도메인이 필요함)Let's Encrypt로 SSL 인증서를 발급받으려면 도메인이 필요합니다. 도메인을 이미 연결한 상태라면, N..

2024. 10. 26.
Infra/AWS

[AWS] EC2 인스턴스 서로 다른 계정과 공유하는 방법

AWS에서는 EC2 인스턴스를 운영할 때, 다양한 이유로 인스턴스를 다른 계정과 공유하거나 복제해야 하는 상황이 발생할 수 있습니다. 이때 AMI(Amazon Machine Image)를 사용하면 EC2 인스턴스의 상태를 빠르고 간편하게 복사하거나 다른 계정에 공유할 수 있습니다. 이번 글에서는 EC2 스냅샷을 통해 AMI를 생성하고, 이를 다른 AWS 계정으로 공유한 후 새로운 계정에서 해당 AMI를 사용해 인스턴스를 생성하는 방법을 단계별로 자세히 설명하겠습니다. 이 과정을 이해하면 AWS 환경에서 더 유연하게 인프라를 관리하고 확장할 수 있을 것입니다.[AMI 생성 및 공유 (A 계정에서 B 계정으로)]1. 스냅샷에서 이미지 생성AWS 콘솔에서 스냅샷을 선택한 후, 이미지 생성 버튼을 클릭합니다. ..

2024. 10. 19.
Infra/AWS

[AWS] EC2 인스턴스 백업하기 (스냅샷 생성)

AWS EC2 인스턴스를 운영하다 보면, 데이터 백업은 매우 중요한 관리 요소 중 하나입니다. 특히, 시스템 장애나 데이터 손실이 발생할 경우 신속하게 복구할 수 있는 백업 체계가 필수적입니다. EC2 인스턴스의 데이터를 백업하는 가장 효율적인 방법 중 하나가 바로 EBS 스냅샷을 활용하는 것입니다. 스냅샷을 통해 기존 인스턴스의 데이터를 손쉽게 백업할 수 있을 뿐만 아니라, 필요 시 다른 계정으로 데이터를 이전하거나 복구할 수도 있습니다. 지금부터는 EC2 인스턴스에 대한 스냅샷 생성 방법에 대해 알아보겠습니다.1. EC2 인스턴스에서 스토리지탭을 클릭하여 볼륨 ID를 클릭하여 볼륨 페이지로 이동합니다.2. 볼륨 페이지로 이동해서 볼륨 ID를 클릭해줍니다.3. 우측의 작업 버튼을 클릭해서 스냅샷 생성..

2024. 10. 12.
Infra/AWS

[AWS] RDS MySQL 데이터베이스 생성

이번 포스팅에서는 AWS에서 제공하는 클라우드 기반 관계형 데이터베이스 서비스인 RDS를 생성하는 방법을 소개하겠습니다.RDS(Relational Database Service)RDS는 AWS에서 제공하는 완전 관리형 관계형 데이터베이스 서비스입니다. 이 서비스는 데이터베이스 관리의 복잡성을 줄이고, 운영 효율성을 높여주는 클라우드 기반 솔루션으로, 사용자는 데이터베이스의 성능, 보안, 확장성에 집중할 수 있습니다.RDS 생성 과정1. RDS 대시보드에서 데이터베이스 생성 버튼 클릭2. MySQL 선택 및 엔진 버전 설정MySQL을 선택하고, 원하는 버전으로 엔진 버전을 설정하고 프리티어(거의 무료 사용 가능)를 선택합니다.3. DB 인스턴스 식별자 및 마스터 사용자 정보 입력데이터베이스 인스턴스를 구분..

2024. 10. 5.
Infra/AWS

[AWS] 서로 다른 계정에서 RDS 데이터 복사하는 방법 (feat. MySQL Workbench)

MySQL Workbench를 사용해 서로 다른 계정 간에 RDS 데이터베이스를 복사하는 것은 가능합니다. 가장 일반적인 방법은 데이터 덤프를 생성한 후 이를 다른 계정으로 가져오는 방식입니다. 이번 글에서는 MySQL Workbench의 데이터 내보내기 기능을 이용해 데이터 덤프를 생성하고, 이를 다른 계정으로 복사하는 방법을 알아보겠습니다. 1. 데이터 덤프 생성MySQL Workbench에서 데이터를 내보내는 기능을 사용하여 원본 RDS 데이터베이스의 데이터 덤프를 생성할 수 있습니다. MySQL Workbench를 열고 원본 RDS 데이터베이스에 연결합니다.메뉴에서 Server > Data Export로 이동합니다. 내보낼 데이터베이스와 테이블을 선택하고, 필요한 설정을 선택한 후 Start E..

2024. 9. 28.
Infra/AWS

[AWS] 내도메인 한국 만료일 연장하기

이번 글에서는 내도메인 한국에서 도메인 만료일을 연장하는 방법에 대해 포스팅하려고 합니다. 내도메인 한국이라는 사이트를 아시나요? [내도메인 한국]한국 내에서 도메인 등록 및 관리를 지원하는 웹사이트로, 개인 또는 기업이 자신만의 고유한 웹사이트 주소를 등록할 수 있도록 돕는 플랫폼입니다. 도메인은 디지털 공간에서 나만의 주소를 의미하며, 내도메인 한국에서는 .kr, .com 등 다양한 도메인 확장자를 선택해 등록할 수 있고, 도메인을 한국어로도 지원해 줍니다. 이 외 다른 플랫폼으로는 카페24, 가비아를 예로들 수 있습니다. 저는 내도메인 한국이 무료이기 때문에 내도메인 한국을 선택했습니다.내도메인 한국의 주요 특징간편한 도메인 등록: 사용자가 원하는 도메인을 빠르고 쉽게 검색하고 등록할 수 있는 간편..

2024. 9. 21.
Infra/AWS

[AWS] [조치 필요] Amazon RDS and Amazon Aurora SSL/TLS 인증서 업데이트 방법

AWS에서 RDS로 데이터베이스를 운영하고 있다면, 아래와 같은 메일을 받으셨을 겁니다. "[조치 필요] 2024년 8월 22일까지 Amazon RDS and Amazon Aurora SSL/TLS 인증서를 업데이트하세요." 이 메일을 받은 이유는 메일 본문에 적혀져 있듯이, SSL/TLS CA 인증 만료에 대한 알림으로 만료되는 인증서가 있기 때문에 갱신하라는 이유입니다. 이번 글에서는 인증서를 어떻게 갱신하는지에 대해 알아보겠습니다.1. 인증서 다운로드아래 링크에서 해당하는 리전의 번들 .pem을 다운받으시면 됩니다. 저의 경우 ap-northeast-2-bundle.pem 전이여서 빨간 박스의 .pem을 다운로드 하였습니다. https://docs.aws.amazon.com/ko_kr/Amazon..

2024. 8. 17.
Infra/AWS

[AWS] Nginx 프록시 서버 설정 방법

CORS(Cross-Origin Resource Sharing)웹 보안 정책 중 하나로, 웹 페이지가 서로 다른 출처(Origin)에서 리소스를 요청할 때 브라우저가 적용하는 정책을 나타냅니다. 이 정책은 기본적으로 웹 애플리케이션의 보안을 강화하기 위해 도입되었습니다. 출처란 프로토콜(http, https), 호스트(도메인), 포트로 구성되며, 서로 다른 출처 간의 요청은 브라우저에서 보안상의 이유로 차단됩니다. CORS는 웹 개발 시 한 번쯤은 만나봤을 겁니다. 예를 들어, 웹 페이지가 다른 도메인의 API로 데이터를 요청하거나 외부 도메인에서 리소스(이미지, 스크립트 등)를 가져와야 하는 경우 CORS를 다루어야 합니다. 이러한 CORS를 처리하는 방법은 여러가지가 있지만 이번 글에서는 서버에 프록..

2023. 11. 3.
Infra/AWS

[HTTPS] Let’s Encrypt로 SSL 인증서 자동 갱신 방법

[HTTPS?]이번 글에서는 HTTPS를 적용해 보겠습니다. 왜 HTTP가 아닌 HTTPS가 필요한 걸까요?HTTPS가 아닌 HTTP는 암호화되지 않은 프로토콜로 데이터가 암호화가 되어있지 않은 채로 네트워크를 통해 송수신합니다. 혹시나 제 3자가 가로채는 공격이 일어나면 민감한 정보가 그대로 노출되고 메시지가 위변조 될 수 있습니다. HTTP의 보안 버전인 HTTPS는 SSL/TLS를 사용하여 데이터를 암호화하고 보안 연결을 할 수 있게 합니다. 또한, 웹 사이트에서 HTTPS를 사용하려면 CA(인증 기관)에서 인증서(파일 유형)를 가져와야 합니다. 우리는 Let’s Encrypt를 이용하여 인증서를 가져와서 HTTPS를 적용해보겠습니다. 이제 Let’s Encrypt가 뭔지 알아봅시다.[Let’s E..

2023. 10. 17.
Infra/AWS

[AWS] EC2 고정 IP 생성 및 설정

[Elastic IP란?]이번 글에서는 고정 IP를 생성하고 세팅하는 방법에 대하여 알아보도록 하겠습니다.저희가 흔하게 부르는 고정 IP는 AWS에서는 AWS Elastic IP(탄력적 IP)라고 부르기도 합니다. 이러한 AWS Elastic IP는 EC2 인스턴스에 고정 IP를 설정할 때 사용됩니다.EC2에서 기존에 할당받은 IP는 인스턴스 상태가 중지되어 다시 실행될 때 IP의 값이 변경됩니다. 실제로 사용중인 아이피의 주소가 갑자기 변경된다면, 페이지를 찾을 수 없을 것입니다.따라서, 원활한 서비스를 위해서라면 고정 IP를 꼭 사용하셔야 합니다.[탄력적 IP 생성 및 연결]1. 네트워크 및 보안 탭에서 탄력적 IP를 클릭합니다.2. 본인에게 맞는 네트워크 경계 그룹을 선택하고 할당 버튼을 클릭합니..

2023. 10. 7.
Infra/AWS

[AWS] EC2 인스턴스 생성 & 연결

프로젝트를 배포하는 방법에는 여러 가지 방법들이 있습니다.먼저 대표적인 방법으론 AWS EC2를 통한 배포가 있습니다.그 외는 주로 정적인 콘텐츠를 배포할 때 사용되는AWS S3와 CloudFront, Amplify, nginx가 있습니다. * EC2란?EC2는 Elastic Compute Cloud의 줄임말입니다.Amazon Web Sevices(AWS) 에서 확장 가능한 컴퓨터를 제공하는 서비스입니다.즉, EC2란 사용자에게 맞는 가상의 컴퓨터를 제공해 주는 서비스라고 할 수 있습니다. 이번 글에서는 AWS에서 EC2 인스턴스를 생성하고 연결하는 방법에 대하여 알아보겠습니다.우선 AWS에 로그인을 한 뒤 EC2에 들어가주세요. 지역은 아래와 같이 서울(ap-northeast-2)로 지정합니다. 인스..

2023. 8. 15.
반응형