aws-sdkというgemのバージョンアップをした

 

昨日あるアプリに入っているasw-sdkというgemのアップデートを行いました。(まだステージングのみ)

aws-sdkAmazon S3Amazon EC2、DynamoDB など、AWS の多くのサービス向けの Ruby クラスを提供してくれるgemです。

Amazon S3AWS署名バーション2が2019年6月24日に廃止されるため、バージョン3以上にアップデートする必要がありました。

以下のリンクはそのgemです。

github.com

 

 

今後またgemのバージョンアップをすることがあると思うので行なった手順のメモをしておきます。

 

手順 (ローカルでバージョンアップ)

①そのままの状態でテスト全部通ることを確認

 

②Gamfileでaws-sdkの3系以上を指定してbundle update

今回はGemfile内で以下のように指定しました。

gem 'aws-sdk', '~> 3'

意外とたくさんのgemにも関連していたようで、新たなgemがたくさん入りました。

 

③テスト実行して落ちた場所確認

大量にテストが落ちましたw 

 

④どこに影響出ているかあたりをつけコード修正 

今回は config/initializers/aws.rb 

Aws::VERSION =  Gem.loaded_specs["aws-sdk"].version

と追記しました。

 

⑤テスト全部通ることを確認

 

aws-sdkが使われている場所を探す

全ファイル検索等駆使してaws-sdkが使われている起点を探します。

そこからコードを追っていき流れを把握します。

 

⑦ブラウザで確認し、うまく動くか確かめる

これで大丈夫そうでしたらステージング環境へのデプロイに進みます。

 

 

手順(ステージングへデプロイ)

sshで接続する

ssh  (sshで入れるユーザー名)@(.ssh/configで設定したIPアドレスの名前)

 

このコマンドでsshでステージング環境のアプリに接続します。

 

②.envやデータの確認

sshで接続したら、.envファイルの確認やデータの確認をします。

/var/www/アプリ名/current配下にアプリ本体が置いてありました。

.envファイルは/var/www/アプリ名/shared/.envに置いてありました。

 

③コンソールでデータを確認

sshで接続した時railsコンソールを立ち上げる際は以下のコマンドで立ち上がります。

RAILS_ENV=staging bin/rails c

 

実際にデータ弄るのは心配というときは以下のように--sandboxオプションをつけてあげるとコンソールをexitで出た後、行なった処理がロールバックされるので安心です。

RAILS_ENV=staging bin/rails c --sandbox

 

 

 

 

④デプロイチェック

以下のコマンドでデプロイが正常にできるか確認します。

bundle exec cap staging deploy:check 

 

⑤デプロイ

大丈夫そうだったら以下のコマンドでデプロイを実行します。

bundle exec cap staging deploy

 

 

 

感想その他

この手順は今後も行う機会が出てくると思いうのでしっかり覚えて使いこなせるようになろうと思います!!

sshをもっとマスターしたいです!