aws-sdkというgemのバージョンアップをした
昨日あるアプリに入っているasw-sdkというgemのアップデートを行いました。(まだステージングのみ)
aws-sdkはAmazon S3、Amazon EC2、DynamoDB など、AWS の多くのサービス向けの Ruby クラスを提供してくれるgemです。
Amazon S3のAWS署名バーション2が2019年6月24日に廃止されるため、バージョン3以上にアップデートする必要がありました。
以下のリンクはそのgemです。
今後またgemのバージョンアップをすることがあると思うので行なった手順のメモをしておきます。
手順 (ローカルでバージョンアップ)
①そのままの状態でテスト全部通ることを確認
②Gamfileでaws-sdkの3系以上を指定してbundle update
今回はGemfile内で以下のように指定しました。
意外とたくさんのgemにも関連していたようで、新たなgemがたくさん入りました。
③テスト実行して落ちた場所確認
大量にテストが落ちましたw
④どこに影響出ているかあたりをつけコード修正
今回は config/initializers/aws.rb に
Aws::VERSION = Gem.loaded_specs["aws-sdk"].version
と追記しました。
⑤テスト全部通ることを確認
⑥aws-sdkが使われている場所を探す
全ファイル検索等駆使してaws-sdkが使われている起点を探します。
そこからコードを追っていき流れを把握します。
⑦ブラウザで確認し、うまく動くか確かめる
これで大丈夫そうでしたらステージング環境へのデプロイに進みます。
手順(ステージングへデプロイ)
①sshで接続する
このコマンドでsshでステージング環境のアプリに接続します。
②.envやデータの確認
sshで接続したら、.envファイルの確認やデータの確認をします。
/var/www/アプリ名/current配下にアプリ本体が置いてありました。
.envファイルは/var/www/アプリ名/shared/.envに置いてありました。
③コンソールでデータを確認
sshで接続した時railsコンソールを立ち上げる際は以下のコマンドで立ち上がります。
実際にデータ弄るのは心配というときは以下のように--sandboxオプションをつけてあげるとコンソールをexitで出た後、行なった処理がロールバックされるので安心です。
RAILS_ENV=staging bin/rails c --sandbox
④デプロイチェック
以下のコマンドでデプロイが正常にできるか確認します。
bundle exec cap staging deploy:check
⑤デプロイ
大丈夫そうだったら以下のコマンドでデプロイを実行します。
bundle exec cap staging deploy
感想その他
この手順は今後も行う機会が出てくると思いうのでしっかり覚えて使いこなせるようになろうと思います!!
sshをもっとマスターしたいです!