EC2
GitHub Actions를 이용한 EC2 서버 CI/CD
파일을 수정하면, EC2 서버에 자동 배포하는 법을 알아보자. AWS EC2에 접속하려면 호스트주소, 키파일, username이 있어야 한다. 깃허브가 자동으로 EC2 서버에 접속해서 배포하려면 이 정보들을 가지고 있어야 한다. 1. PPK 키 파일을 PEM으로 변환 먼저 키파일 확장자가 ppk라면 윈도우즈 용이므로 리눅스용인 pem 파일로 변환해줘야 한다. PuTTYgen 실행 Load를 눌러 내 키파일을 등록한다. conversions - Export OpenSSH key 선택 후, 파일명.pem으로 저장한다. 2. Action secrets 를 만든다. EC2 접속에 필요한 호스트주소, 키파일, username을, github 레파지토리 Action secrets에 저장한다. New reposito..
AWS EC2 - GitHub를 거치지 않고 서버와 로컬 간의 파일 전송(FTP)
깃허브엔 업로드 용량 제한이 있기 때문에 서버에 용량이 큰 동영상 파일 등을 업로드하고 싶을 때는 FTP(File Transfer Protocol) 방식으로 로컬과 서버 간 직접 전송할 수 있다. 파일질라 다운로드 https://filezilla-project.org/download.php?type=client 파일질라는 많이 사용되는 FTP 클라이언트다. 설치 후 실행화면에서 파일 > 사이트 관리자를 누른다. 새 사이트를 눌러 이름을 짓고 설정을 해준다. 프로토콜: SFTP 호스트: 내 EC2 서버의 주소를 입력 로그온 유형: 키 파일 사용자: EC2에 접속하던 사용자명 (ec2-user) 키 파일: 내 PPK 키 파일을 등록 완료 후 연결을 누른다. 내 로컬사이트와 리모트사이트(서버) 가 연결 되었다..
AWS EC2 에서 배포한 앱을 수정하는 방법
배포해서 백그라운드에서 실행중인 앱을 수정할 때 어떤 일련의 과정을 거치는지 정리해본다. 0. 수정 전 앱 화면 1. 로컬에서 코드를 수정 2. 수정한 코드를 테스트해보고 문제가 없으면 commit 3. push 하면 github에 수정본이 저장된다. 4. 앱이 구동중인 서버에 pull 5. 수정 완료
AWS EC2 - 여러 개의 포트 지정, 실행하기
하나의 EC2 서버에서 여러 개의 streamlit app을 실행하려 한다. streamlit은 기본적으로 8501 포트로 실행되고 8501에 실행중인 프로세스가 있으면 8502, 또 있으면 8503 이런식으로 증가한다. 내가 직접 포트를 지정해 줄 수도 있다. --server.port 포트번호 실행문 뒤에 이걸 붙여준다. 두 개의 streamlit app을 각각 8501, 8503 포트에서 백그라운드 실행해보겠다. 내 AWS EC2의 퍼블릭 주소뒤에 :포트번호를 붙여서 주소창에 입력하면 접속이 가능하다. 접속이 안된다면 인바운드 규칙을 추가해줘야 한다. 관련 포스트를 참고하자. https://donghyeok90.tistory.com/122 AWS EC2 서버에 접속할 수 있도록 포트 허용하기 stre..
AWS EC2 - 터미널 접속을 끊어도 백그라운드에서 돌아가게 하는 방법
이전 포스팅에서 실행한 앱은 터미널을 닫으면, 실행명령도 사라지기 때문에 더 이상 돌아가지 않는다. 터미널 접속을 해제해도 365일 24시간 서버가 돌아갈 수 있도록 백그라운드 실행하는 법을 알아보자. 백그라운드로 실행하는 법 # $ nuhup 명령어 & nohup streamlit run app.py & 아무 일이 일어나지 않은 것 처럼 보이지만, 터미널 창을 끄고 AWS EC2의 퍼블릭주소로 접속하면 여전이 app은 돌아가고 있다. 현재 실행중인 프로세스를 확인하는 법 # $ ps -ef | grep 프로세스명 ps -ef|grep streamlit 백그라운드에서 실행 중인 프로세스를 종료하는 법 # $ kill 프로세스id kill 4535 실행중인 프로세스를 확인할 때와 실행할 때 터미널 창을 확..
AWS EC2 서버에 접속할 수 있도록 포트 허용하기
streamlit을 사용해 개발한 app을 EC2 서버에서 돌리려고 한다. 박스 친 External URL이 접속 주소인데, 접속하려 하면 연결이 안 된다. 그 이유는 EC2의 방화벽에 막혔기 때문이다. 서버에 접속하려면 내가 사용하는 포트(현재는 8501)를 허용해줘야 한다. aws에서 인스턴스 > 보안 > 보안그룹에 들어가 인바운드 규칙을 추가해주자. 포트범위를 8501, 소스유형을 Anywhere-IPv4로 설정해준다. 이제 정상적으로 접속이 될 것이다.
AWS EC2 리눅스에 git 설치하고 클론 생성
서비스를 돌릴 서버인 AWS EC2에도 Github의 클론이 있어야 된다. 1. 리눅스에 git 설치하기 $ sudo yum install git 2. github의 클론 가져오기 $ git clone 복사한url주소 $ ll 로 확인한 결과 github에 있던 repository를 가져온 것을 확인했다. AWS EC2 코드 수정 프로세스 1. local 수정 2. test 3. commit 4. github에 push 5. EC2로 pull
AWS - EC2 클라우드 서버에 리눅스용 파이썬 설치하기
서버를 돌릴 EC2 에는 파이썬이 설치되어 있지 않기 때문에 따로 설치해줘야 한다. 나는 아나콘다로 설치해보겠다. https://www.anaconda.com/products/distribution#Downloads Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 아나콘다 리눅스버전 다운로드의 링크 주소를 복사한다. 리눅스에 파일을 다운받고 설치한다. $ wget https://repo.anaconda.com/archive/Anacon..