본문 바로가기
Ruby on Rails

aws cloud 9으로 rails 개발하기

by 혜리루 2020. 11. 8.

1. 서론

최근에 회사 동료님과 토이프로젝트 협업을 위해 cloud9 위에서 개발를 해보았습니다.

웹앱 개발 프로젝트라 또 rails를 사용했는데요, cloud9으로 rails 환경 구축하는 법을 포스팅 하려고합니다.

 

 

2. environment 생성

환경 생성은 아주 쉽습니다.

aws cloud9 콘솔에서 create environment 버튼을 눌러주시고요

 

환경의 타입, 인스턴스 타입, os 등등을 설정해주면 끝입니다.

저는 따로 프로젝트의 개발 서버가 없었기때문에 첫번째 환경타입, 가장 작은 instance, amazon linux 플랫폼을 선택했습니다.(디폴트 설정값입니다.)

그리고 기타 설정들을 완료해주면 환경 생성 끝입니다.

몇분간의 기다림 후에 환경 생성이 완료됩니다.

 

3. 공유하기

제 생각에 cloud9에 가장 좋은 점은 환경을 쉽게 공유할 수 있다는 것입니다.

 

협업 하고자하는 상대의 iam username이나 role을 추가해주면 하나의 환경 위에서 동시에 작업이 가능합니다.

우측에 보면 채팅 기능도 있어서 별도의 메신저 없이 작업중에 바로 소통이 가능합니다.

4. 레일즈 설치하기

레일즈 설치 방법은 별 다를 것이 없습니다.

rvm(혹은 rbenv), ruby, node js, yarn, rails 등등 rails 설치를 위해 필요한 것들을 설치해주시면 되는데요 amazon linux에는 rvm, ruby, rails, npm, sqlite 등등이 기본적으로 깔려있었습니다. 저는 추가적으로 yarn과 rails 6.0.2 버전을 설치해 주었습니다. 

 

 

5. 실행하기

새로운 프로젝트를 만든 후 서버를 실행해보았습니다.

> rails new deali-laby

 

cloud9 위에서 테스트를 할때 브라우저로 localhost를 요청할 수는 없겠죠.

클라우드 9 환경 중앙 상단에 보면 preview 라는 tab이 있습니다. 여기서 preview running application을 눌러줍니다.

 

그러면 새로운 윈도우가 뜨면서 앱 화면이 보이는데요. 처음에는 이렇게 오류가 뜹니다 삐빅 정상입니다.

정상적으로 테스트를 하려면 cloud9  ec2 주소를 rails 프로젝트 config파일에 추가해주어야 합니다.

에러 화면에 보이는 그대로 config.host << "주소"를 복사해서 config/environments/development.rb 파일 제일 아래에 추가해줍니다.



그리고 나서 서버를 재부팅하고 테스트를 해보면!

 

짠 또 오류가 뜹니다.. 이건 제가 sqlite를 사용했기 때문인데요 서버에 디폴트로 설치되어있는 sqlite의 버전이 rails에서 사용하는 버전보다 낮기때문입니다. amazon linux는 프로그램을 설치할때 yum을 사용하는데요 찾아보니 yum에서는 3.7.17이 sqlite의 최신 버전이라고 합니다. 별수 없이 아래처럼 직접 설치를 해주어야 합니다.

https://stackoverflow.com/questions/59757064/upgrade-to-rails-6-causes-sqlite-dependency-error-on-centos

wget https://kojipkgs.fedoraproject.org//packages/sqlite/3.8.11/1.fc21/x86_64/sqlite-devel-3.8.11-1.fc21.x86_64.rpm
wget https://kojipkgs.fedoraproject.org//packages/sqlite/3.8.11/1.fc21/x86_64/sqlite-3.8.11-1.fc21.x86_64.rpm

yum install sqlite-3.8.11-1.fc21.x86_64.rpm sqlite-devel-3.8.11-1.fc21.x86_64.rpm

 

자 이제는 정말 잘 되겠지 기도하는 심정으로 다시 테스트를 해보면!

또 안뜹니다. 이때는 당황하지말고 오른쪽 상단의 네모친 버튼을 눌러줍니다.

그러면 cloud9 위의 윈도우가 아니라 여러분 컴퓨터의 브라우저로 직접 페이지를 확인할 수 있습니다.

이 시작 화면 보기가 참 길었네요.

6. github 연동하기

바로 개발을 시작할 수도 있겠지만 저는 github을 사용해서 버전관리를 하고 싶습니다. 

아래 처럼 cloud9 서버에 ssh key를 만들어 줍시다.

그리고 ssh agent를 실행한 후 key를 추가해줍니다. 이 key를 복사해서 github에 등록을 해야하는데요,

amazon linux에는 pbcopy 커맨드가 없네요.

 

cat <key path>로 key를 출력해서 직접 카피해줍니다.

이제 github 설정에 들어가서 ssh key를 등록해줍니다.

docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account

title을 입력하고 key를 붙여넣어주면 끝입니다. 등록한 키는 아래처럼 보입니다.

이제 cloud9 위에서도 github을 사용할 수 있습니다!

 

7. 환경 삭제하기

작업을 모두 마친 후에는 환경을 삭제해야겠죠. 삭제는 aws 콘솔에서 delete 버튼만 눌러주면 됩니다. 참 쉽죠

 

8. 결론

이렇게 cloud9을 이용해서 rails개발을 해보았는데요 아직 내부에 기능을 많이 사용해 본 것은 아니지만 협업하기에 참 편리하다는 생각이 들었습니다. 마침 제가 또 오늘 아이패드 에어4를 주문했는데 cloud9을 이용한다면 아이패드로도 개발을 해볼 수 있을 것 같네요! 기회가 된다면 그것도 포스팅을 해보겠습니다.

댓글