Cloud9용 EC2 인스턴스를 “종료”한 이야기(Rails 튜토리얼의 환경 재구성)

소개



Rails 튜토리얼 2장 완료 후 실패한 이야기.
환경을 재구성하고 로컬 웹 서버를 시작하고 앱 동작을 확인할 때까지.

개발 환경


  • MacOS Catalina 10.15.7
  • Safari 13.1.3
  • AWS Cloud9
  • Rails 5.1.6
  • Ruby 2.6.3
  • Heroku 7.47.6

  • 사건



    EC2 인스턴스를 종료했습니다. 정지가 아닌 종료.
    특히 백업적인 것은 취하지 않고, Cloud9는 남아 있지만, 새롭게 작성한 EC2 인스턴스와는 연결할 수 없다.

    해결책



    일순간 「해버렸다. 전부 재작성 밖에」라고 생각했지만,
    잘 생각하면 Github에 코드를 커밋하고 있지 않을까 깨닫는다.
    그래서 이하의 순서로의 재구축을 검토.

    1. Cloud9 새로 만들기

    Rails 튜토리얼 1장에서 실시한 순서대로 신규로 Cloud9 구축.
    우선은 신규로 새롭고 새로운 Cloud9의 환경을 작성.

    그런 다음 install, update 명령에 대한 문서 제외 설정을 추가하고 Rails를 설치합니다.
    $ printf "install: --no-document \nupdate:  --no-document\n" >> ~/.gemrc
    $ gem install rails -v 5.1.6
    

    2. Github에서 복제
    Cloud9에 Rails 튜토리얼 2장에서 작성한 toy_app의 소스 코드를 클론.
    URL은 Gibhub 리포지토리 URL을.
    $ git clone "URL"
    

    복제가 완료되고 성공적으로 소스 코드를 복원하는 데 성공했습니다.


    3. Gem 설치
    Rails 튜토리얼 제1장의 리스트 1.5에 있는 내용으로 Gemfile을 재기록.
    그런 다음 bundle install을 실행합니다.
    $ bundle install
    

    4. DB 마이그레이션 실행
    이대로 rails server를 실시해 앱 기동하면 「ActiveRecord::PendingMigrationError」가 발생한다. rails db:migrate를 먼저 실행해 DB를 갱신해 둔다.
    $ rails db:migrate
    

    5. 로컬 웹 서버에서 앱 시작
    rails server로 서버 기동해 앱 동작을 확인. 안전하게 작동하는지 확인.


    요약



    다시 Git의 고마움을 실감하게 되었다.
    Git의 클론은 Subversion의 체크 아웃과는 그 내용이 다르다.
    Git 서버의 데이터를 거의 모두 복사해 오기 때문에, 만약 서버측의 데이터가 손실되었다고 해도, 클라이언트에 있는 클론을 되돌리면 거의 복원할 수 있다고 한다. Git 좋아요.

    좋은 웹페이지 즐겨찾기