본문 바로가기

AWS14

[AWS] Lambda 시간초과 에러 해결하기 📝AWS Lambda 시간초과 에러 해결하기 람다 함수를 만들면 기본적으로 제한 시간이 6초로 설정되어있다 ※ Lambda > 함수 > 사용할 함수 > 구성의 일반구성 탭 클릭해서 확인 데이터를 가져오는데 시간이 오래 걸려서 6초가 넘어가버리면 에러가 발생해버린다 그럴때는 편집으로 들어가 시간을 설정해 사용해준다 + serverless.yml파일의 provider: 에 타임아웃 시간을 입력해도 동일하게 적용된다 provider: name: aws runtime: python3.9 region: ap-northeast-2 timeout: 40 2023. 1. 17.
[AWS] Lambda에 자동 배포해보기(CICD) 📝AWS Lambda에 소스코드 자동 배포해보기(CICD) 수작업 배포를 해봤으니(https://coding-jisu.tistory.com/199) 깃허브를 통한 자동배포를 해보겠다 깃허브 액션에서 New workflow 생성해서 아래코드를 입력해준다 ※ name 부분은 알아서 편한대로 입력하면 된다 name: serverless deploy on: push: branches: - main jobs: deploy: name: deploy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install SLS and Deploy uses: serverless/github-action@v3 with: args: -c "sls plugin i.. 2023. 1. 12.
[AWS] Lambda Layer 만들기 📝AWS Lambda layer 만들기 pandas 라이브러리를 사용한 서버를 배포하기 위해서 requirements.txt파일에 pandas와 numpy 라이브러리를 입력해줬는데 Lambda의 용량 초과로 설치가 되지 않았다 ※ pandas를 사용하기 위해서는 numpy 라이브러리도 설치해줘야한다 이럴때는 Lambda에 직접적으로 용량 큰 라이브러리를 설치하지 말고 Layer에 라이브러리를 설치해 사용해야한다 (layer가 Lambda 해당 라이브러리가 사용할때마다 연결해준다 람다는 되도록 소스코드만 넣는다) 내 컴퓨터는 윈도우기 때문에 ec2 서버에 접속해서 라이브러리를 리눅스용으로 설치해 가져오겠다 요약정리 1. PuTTY로 ec2에 접속해서 버전에 맞는 새로운 가상환경 만들고 디렉토리 생성 2. .. 2023. 1. 11.
[AWS] Lambda에 수작업 배포해보기 📝AWS Lambda에 소스코드 수작업 배포해보기 테스트를 먼저 해봤으니 이제 로컬 컴퓨터에서 만든 소스코드를 사용 할 수 있게 수작업 배포를 해보겠다 요약정리 1. serverless.com에서 서버리스 앱을 만든다 2. 앱을 만든 코드를 복사해 cmd실행하여 로컬에 템플릿 만든다 3. 템플릿을 AWS에 배포(잘 돌아가는지 테스트), 포스트맨으로 테스트 4. AWS 배포용 깃허브 레파지토리를 만들어 로컬에 클론 5. 서버리스 템플릿 폴더에 있는 파일들을 새로운 레파지토리 파일로 모두 복사(숨긴 파일도 다 가져온다) 6. 새로운 레파지토리를 Visual Studio Code로 열어서 .gitignore파일에 node_modules을 타이핑하고 저장 깃허브에 커밋, 푸시해준다 7. 파이썬 인터프리터 가상환.. 2023. 1. 11.
[AWS] Lambda에 배포 테스트해보기 📝AWS Lambda에 소스코드 수작업 테스트해보기 지금까지 해본 작업은 로컬컴퓨터에서 서버를 돌려본 것이였는데, 실제 서비스를 운영하기 위해서는 작업했던 로컬의 소스코드를 AWS에 보내서 서비스가 동작하게 만들어야한다(배포) 수작업 배포 테스트를 먼저 해보았다 우선 람다에 소스코드를 배포하기 전 보안(권한)이 필요하다 AWS의 IAM을 설정 AWS(https://aws.amazon.com) > IAM > 좌측 엑세스 관리의 사용자 클릭 후 사용자 추가하기 사용자 이름을 입력하고 엑세스 키 - 프로그래밍 방식 엑세스를 선택해준다 기존 정책 직접 연결 선택 후 사용할 정책을 선택해준다 내 사용자 권한은 이렇게 9개를 선택해줬다 AWS 관리형 정책 선택 AmazonAPIGatewayAdministrator .. 2023. 1. 10.
[AWS] EC2서버에 용량 큰 파일을 바로 업로드하기 📝EC2서버에 용량 큰 파일을 바로 업로드하기 파일질라를 다운받는다 파일질라 실행 > 사이트관리자 클릭 (좌측 상단에 아이콘이 있다) 새로운사이트를 등록 > 프로토콜 SFTP - SSH 선택, 로그온 유형 키파일 선택 호스트와 사용자, 키파일을 입력해서 만들어 사용한다 ※ 호스트는 AWS 퍼블릭 IPv4 주소 입력, 사용자는 ec2-user 입력해서 생성 2022. 12. 20.
[AWS] EC2 Streamlit 수정된 코드 서버 자동 배포 설정(CICD) 📝수정된 코드 EC2 Streamlit 서버에 자동 배포 설정하기 자동배포 설정은 Github Actions 셋팅(https://coding-jisu.tistory.com/139) 셋팅 후 터미널에서 streamlit으로 돌아가는 서비스 확인 (ps -ef | grep streamlit) 만약 기존 서버가 동작하고 있다면 서버를 끄고 (kill (확인한 서비스 숫자)) 터미널에 아래와 같이 입력한다 (포트번호는 원하는 번호로 설정) → nohup streamlit run app.py --server.port 8502 --server.runOnSave true & 이렇게 코드를 실행해두면 로컬에서 코드를 수정해서 깃허브에 올리고 따로 서버에 pull할 필요없이 깃허브에 푸시하기만하면 자동으로 가져와서 신규.. 2022. 12. 20.
[AWS] EC2 Streamlit 실행 시킬때 포트 처리 📝EC2 Streamlit 실행 시킬때 포트 처리 AWS EC2 페이지에 퍼블릭 IPv4 DNS을 복사해서 접속할때 뒤에 포트번호를 입력해줘야 접속이 가능하다 ※ 인바운드 규칙에 입력한 포트 번호를 입력해줘야한다 ※ 접속할때 사이트 연결불가로 뜨면 AWS의 EC2 > 보안그룹 > 인바운드규칙 편집 유형은 사용자 지정TCP, 포트범위 (8501), Anywhere로 설정해서 저장 + 앱 추가할때마다 AWS 인바운드규칙 포트범위 지정하기 ex) 복사한주소:8501 ec2-3-38-117-95.ap-northeast-2.compute.amazonaws.com:8501 2022. 12. 14.
[AWS] EC2 Streamlit 백그라운드 실행 📝EC2 Streamlit 백그라운드 실행 Streamlit을 실행시키고 터미널을 끄면 해당 웹페이지도 같이 종료가 된다 → 터미널에 nohup streamlit run app.py & 입력시 백그라운드에서 실행되서 터미널을 종료해도 웹페이지 서비스는 돌아간다 ※ 포트 번호를 지정하고 싶다면 → nohup streamlit run app.py --server.port 8501 & streamlit으로 돌아가는 서비스 확인하고 싶을때 → ps -ef | grep streamlit 돌아가는 서버를 끄고 싶을때 → kill (확인한 서비스 숫자) 2022. 12. 14.
[AWS] EC2 Linux git 설치하고 github.com의 repository 연동 📝EC2 Linux git 설치하고 github.com의 repository 연동 EC2 Linux git 설치 → 터미널에 sudo yum install 입력해서 git 설치 깃허브(https://github.com/) 접속해서 가져올 repository의 HTTP 주소 복사 후 → 터미널에 git clone HTTP주소 입력하여 클론 해당 파일 경로로 이동해 사용한다 클론한 파일에 웹대시보드를 실행할때 위쪽에 뜨는 사이트는 내부망이므로 밑에 사이트로 접속한다 접속할때 사이트 연결불가로 뜨면 AWS의 EC2 > 보안그룹 > 인바운드규칙 편집 유형은 사용자 지정TCP, 포트범위 (8501), Anywhere로 설정해서 저장하면 해당 사이트에 접속 가능하다 ※ 기획이 바뀌어 수정할 부분이 있을때는 로컬컴퓨.. 2022. 12. 14.