LoginSignup
0
0

More than 3 years have passed since last update.

Cloud9用のEC2インスタンスを’’終了’’した話(Railsチュートリアルの環境再構築)

Posted at

はじめに

Railsチュートリアル第2章完了後に失敗した話。
環境を再構築し、ローカルWebサーバ起動を行い、アプリ動作を確認するまで。

開発環境

  • 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の環境を作成。
スクリーンショット 2021-02-27 21.14.06.png
次に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"

クローンが完了し無事にソースコード の復元に成功。
スクリーンショット 2021-03-06 0.17.55.png

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.ローカルWebサーバにてアプリ起動
rails serverでサーバ起動しアプリ動作を確認。無事に動作することを確認。
スクリーンショット 2021-03-06 18.44.00.png

まとめ

改めてGitの有り難さを実感することになった。
GitのクローンはSubversionのチェックアウトとはその内容が異なる。
Gitサーバのデータをほぼ全てコピーしてくるため、仮にサーバ側のデータが失われたとしても、クライアントにあるクローンを戻せばほぼ復元できるそうだ。Gitいいね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0