서버 인프라/Aws 18

Typescript를 이용한 어플리케이션 Lambda에 배포하기

요즘 lambda가 재밌어 보여서 계속 알아보는 중이다. 람다 (서버리스) 애플리케이션에 대한 설명은 다음 사이트에 잘 나와있다. https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless 서버리스란? 서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다. www.redhat.com 간단히 말하면 서버를 관리할 필요가 없는 환경을 말하는데, BaaS (Backend As A Service)환경에서 작동되는 것을 말한다. 즉, 우리는 실행하는 함수만 작성해서 Lambda에 넘겨주면 람다는 구동환경을 알아서 최적화하여 서비스해준다. 여튼 Typescr..

AWS configure (cli) 다중 계정 사용하기

aws를 사용하면서, 하나의 계정이 아닌 여러개의 계정을 사용할 일이 많아졌다. 거의 모든 작업을 콘솔에서 할 수도 있지만, 익숙하다면 cli 환경이 좀 더 나은 것 같다. 여튼 다중 계정 설정을 cli에서 사용해보자. 다중 계정 설정하기 m1 mackbook에서 진행한다. 컴퓨터에 미리 aws cli를 설치해두자. 기존의 aws configure 명령어를 이용하면 IAM 엑세스 키를 입력하여 사용자를 인증할 수 있다. 여기서 --profile 옵션을 붙여 프로필을 나눌 수 있다. 1 aws configure --profile newProfile cs 이후 .aws 폴더 안에 있는 파일들을 확인하자. config와 credentials란 파일이 있는데, config는 사용자에 대한 정보, credenti..

AWS EC2 서버에 도메인 적용과 SSL 인증서 적용하기

최근에 http로 서버를 열었다가 낭패를 본 경험이 있었다. 그래서 이것을 해결하기 위해서 SSL 인증서를 도입함과 동시에 공부도 할 겸 도메인 적용까지 하기로 했다. 이걸 하겠다고 이틀동안 별 짓을 다 했던것 같다. 그래도 결과는 나름 잘 나온다고 생각한다. 최종 결과 1. SSL 인증서가 적용되어 주소창 왼쪽에 자물쇠 아이콘이 뜬다. 2. http 로 접속해도 https로 접속이 가능하다. 3. 포트 번호 및 아이피 주소가 포함된 주소가 아닌 도메인 주소로 표기된다. 도메인 구매 먼저, 도메인을 구매해야 한다. 여기서 도메인이란, 주소를 의미한다. 예를들어 naver.com 또는 google.com 같은 주소를 말한다. 도메인 주소를 구매할 수 있는 곳은 여러곳이 있다. 국내 기준으로 보면 호스팅kr..

EC2 인스턴스 안에 있는 파일 로컬에 다운받기

ec2를 사용하면서 로그 파일을 로컬에 불러와야 하는 경우가 생겼다. 이 때는 ec2 인스턴스에서 파일을 로컬로 다운받아야 하는데, 마땅한 방법이 생각나지 않았는데 검색을 하다 보니 scp 명령어가 있었다. ssh를 이용한 파일 주고받기 원격 인스턴스에 접속하기 위해서는 ssh를 이용하는 방법이 있다. 원격 인스턴스의 터미널 화면을 보여주는 것이다. 여기에 파일을 주고받을 수 있는 기능까지 있으면 얼마나 좋을까? 찾아보니 다행이 존재했다. scp (secure copy protocol)을 이용하는 것이다. 내가 찾은 이용 방법은 맥 또는 리눅스 쉘에서 사용 가능한 방법이다. 윈도우의 경우에는 scp를 지원하는 프로그램을 설치해서 사용해야 한다. 파일을 다운받거나 업로드 하기전에 파일의 권한은 777을 주..

RDS 접속 시 ec2 인스턴스 통해서 접속하기

현재 작업중인 서버는 postgresql을 RDS에 올려서 사용하고 있다. 현재 이 서버는 어디서든 접속이 가능한 상태이다. 이러한 상태가 되면 보안에 매우 취약해진다. 그래서 db를 사용할 때는 외부에서 바로 접속이 불가능하게 해 두는것이 보안상 좋다. RDS 를 외부에 노출 시키지 않는 이유 가장 큰 문제는 역시 보안이다. db는 모든 정보들이 담겨져 있는 공간인데, 이것이 외부 네트워크에 노출이 되어 있으면 보안에 상당히 취약할 것이다. 어디서든 바로 접속할 수 있다는 단점이 있다. 그래서 VPC안에 있는 ec2를 통해서만 접속할 수 있게 한다. 또한 애플리케이션 서버 또한 안전하게 rds에 접속할 수 있다는 장점이 있다. 이러한 설정을 하게 되면 기존의 경우에는 db의 암호, 유저만 알면 쉽게 접..

EC2 리눅스 인스턴스 포트포워딩 하기

현재 내 인스턴스에는 nestjs 기반의 어플리케이션이 구동중이다. 현재 5000번 포트로 구동중인데, 이 서버에 접속하기 위해서는 [서버 주소]:5000 의 형식으로 서버에 접속해야 한다. 웹 서버는 이름이 단순해야 보기 좋은데, 포트 뒤에 5000을 붙여버리면 약간 보기 불편해 진다. 그래서 이 주소를 없애는 작업을 하기로 했다. 모든 가능성을 생각하자! 사실 처음에는 기존의 도메인이 있어서 route53을 통해서 Elastic IP 값을 수동으로 넣어 주었다. 하지만 여기서는 포트 번호를 넣을 수 없었다. 그래서 생각해낸 게 80번 포트를 5000번으로 돌려서 사용할 수 있으면 좋겠다고 생각했다. 그래서 검색을 해서 포트포워딩이 가능한 iptables를 사용하기로 했다. 1 iptables -A P..

AWS S3 파일 전체(일괄) 다운로드 받기

아마존 웹 서비스에는 정말 다양한 서비스들이 있다. 그 중 하나가 s3라는 서비스이다. 간단히 말하면 구글 드라이브 같은 웹서버 운영에 필요한 사진, 동영상 등의 파일들을 저장해 두는 서비스이다. 오늘 이 파일을 일괄 다운로드 할 일이 생겼다. 하지만 aws 홈페이지에서는 객체 하나하나 일일이 다운하는 방법 밖에는 없었다. 이는 s3 구조에 따른 것 같다. 각 파일은 전세계에서 고유한 url 주소를 가지며, 각 폴더의 위치는 prefix처럼 태그 비슷하게 달려 있다. 여튼 파일을 일괄 (전체) 다운로드 하기 위해서는 aws command line (aws cli) 사용이 필요했다. Mac 기준으로 s3 파일 다운로드 방법을 정리해 보았다. aws cli 설치 aws cli을 먼저 설치해야 한다. 다음의 ..

AWS EC2 시작하기

간단한 클라우드 서버 제작하기 카카오톡 봇의 서버를 이동해야 할 때가 와서 잠시 서버를 옮겨야 했다. 이를 위해서 클라우드 서버를 사용해야 했다. 알아보니 가장 유명한 웹 서비스는 AWS라는 것을 알게 되었고, 이것을 사용하기로 했다. AWS (아마존 웹 서비스) 는 가장 유명하고 많이 쓰이는 웹 서비스이다. 기존의 웹 서비스와 다른 점은 사용량에 따라서 요금을 낸다는 것이다. 또한 2년 3년 계약이 아닌 언제든지 해지하거나 사용이 가능하다는 점이다. 마지막으로 자신이 직접 서버 컴퓨터를 다루듯이 사용이 가능한 인스턴스를 제공한다. 이러한 이유 때문에 AWS로 갈아타기로 했다. AWS에 회원가입을 한 후 주어지는 프리 티어가 있다. 이것은 인스턴스(가상 컴퓨터)의 사용시간(750h)과 15GB의 트래픽을..