본문 바로가기

Dev Tools/Cloud9

AWS Cloud9

Cloud9은 웹기반 IDE로 EC2 Docker 기반으로 구성.

현재 사용 가능한 곳은 Singapore / N.Virginia / Ohio / Ireland / Oregon.

Node.js, Python, PHP, Java, Ruby, Go 등 다양한 프로그래밍 언어를 지원.

AWS 관련 다양한 패키지들이 설치되어 있음. 또한 Lambda와 연동 가능하다.

 

Lambda 코드의 경우 Lambda 화면에서 스크립트를 작성하거나, Local 환경에서 APEX와 같은 플러그인? 혹은 toolkit을 통해 Lambda 코드를 구성하고 배포했음. 또한 패키지가 필요한 경우 zip 파일을 Lambda에 업로드. 그 경우 Lambda 화면에서 코드 수정 불가했음.

 

Cloud9을 사용할 경우 Local 환경 구성이 필요없으며, zip 파일 또한 바로 수정 가능.

Cloud9 생성화면
Cloud9 터미널

클릭 몇 번으로 쉽게 생성 가능함.

 

c9 화면(Group 챗 기능)

그룹챗 기능을 통해 협업 및 교육용으로 유용함. 

 

Lambda로 바로 Deploy 가능

비록 싱가폴에서 C9을 쓰지만 Region 변경 후 어느 리전의 Lambda로도 코드 배포가 가능하다.

Lambda 배포용으로 C9을 쓴다면 미리 C9을 통해 Lambda Function을 생성하고, C9 내의 Lambda 기능을 통해 디버깅 해야 한다.

C9 내에서 소스 실행과 Lambda 내의 실행의 경우 패키지 경로가 다르기 때문이다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/cloud9-deploy-lambda-external-libraries/

 

AWS Cloud9을 사용하여 외부 라이브러리와 함께 Lambda 함수 배포

AWS Cloud9을 사용하여 개발된 AWS Lambda 함수에 추가 외부 라이브러리를 사용하려고 합니다. 이러한 라이브러리에서 모듈을 가져와서 배포 시 Lambda 함수에 포함하려면 어떻게 해야 합니까?

aws.amazon.com

내부 모듈 import 시  No module named 'module' 에러가 발생의 경우 아래 참고(삽질...ㅜ)

https://www.python2.net/questions-27719.htm

 

amazon web services - AWS Cloud9 Lambda에서 Python 파일 가져 오기

AWS Cloud9를 사용하여 간단한 람다 함수를 구축했습니다. 이제 람다가 조금 더하기를 원합니다. 그래서 몇 가지 기능을 가진 다른 파이썬 파일을 만들고 같은 디렉토리에 저장했습니다. myLambdaName

www.python2.net

디버깅 메뉴(Call Stack, 변수 Type, Breakpoints까지)

디버깅 기능도 제공.

 

C9과는 별개지만 아래와 같은 Framework를 통해 Lambda 함수를 배포할 수 있음.

 

SAM / SERVERLESS / ZAPPA 등 서버리스 프레임워크를 통해 기존처럼 코딩하고, Lambda에 바로 배포가 가능.

express 코드(SERVERLESS 예시)를 그대로 Lambda로 배포하면 event trigger 형태로 알아서 변환 배포함.

 

node v8 설치는 nvm install 8.10 / nvm alias default 8.10

python 환경 설정

python3 -m venv ./venv

source venv/bin/activate

deactivate

alias python=python3

환경 변수는 설정 메뉴에서 변경

c9 환경 설정

 

stop my envir 설정은 30분동안 액션이 없으면 알아서 EC2가 stop.

터미널도 잘 동작하니, AWS에 대한 서비스 테스트 시에도 유용함.

'Dev Tools > Cloud9' 카테고리의 다른 글

AWS Cloud9  (0) 2019.04.03