6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWSのEC2上に環境変数を設定する方法

Last updated at Posted at 2021-06-03

環境

macOS: Big Sur Ver11.2.3
Rails: 6.1.1
Ruby: 2.6.5
インフラ:AWS(EC2)
Webサーバ:Unicorn

困っていること

AWSのEC2を使ってポートフォリオをデプロイし、さらにACMで証明書取得, Route53でドメイン取得後、SSL化まで行ったところ、Googleマップが表示されなくなった。
ブラウザのコンソールを確認すると「Google Maps JavaScript API error: InvalidKeyMapError」と表示されている。
したがって、APIキーをEC2上で設定できていないのではと推測。

解決方法

①EC2にSSHで接続し、Vimを開く

% cd .ssh
% SSH接続のコマンド(ssh -i hoge.pem ec2-user@アプリのIPアドレス)

接続後、
[ec2-user@ip-172-31-0-160 ~]$ sudo vim /etc/environment

②環境変数を記述する

内容を変更するには「i」を押して編集モードにする。
変更し終わったら「esc」を押して編集モードを終了してから「:wq」で保存して終了すること。

export GOOGLE_MAPS_API_KEY='APIキーを貼り付け'

③設定できたか確認

一度EC2から抜けます。

[ec2-user@ip-172-31-0-160 ~]$ exit

ログアウトしたらもう一度EC2にログインし、以下のコマンドを実行
[ec2-user@ip-172-31-0-160 ~]$ env | grep 環境変数の名前

これで設定した環境変数が表示されればきちんと設定できています。

④Webサーバを一度ストップさせ、再起動させる

一度EC2を抜けて、ローカルのターミナル上でアプリケーションのフォルダに移動します。
以下のコマンドを実行し、Unicornをストップさせる。

% bundle exec cap -t production unicorn:stop

次に、もう一度EC2にSSH接続してログインし、アプリのフォルダに移動します。
Unicornの起動状況を確認するとmasterプロセスなどが起動されていないと思います。

[ec2-user@ip-172-31-0-160 take_out_app]$ ps aux | grep unicorn
ec2-user 16164  0.0  0.0 119436   916 pts/0    S+   03:05   0:00 grep --color=auto unicorn

ここまで確認できたら、Unicornを再起動しましょう!

[ec2-user@ip-172-31-0-160 take_out_app]$ RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D
→特に何も表示はされませんが成功しています。

もう一度プロセスを確認!
masterとworkerという名前のプロセスが実行され、再起動できているのがわかります。

[ec2-user@ip-172-31-0-160 take_out_app]$ ps aux | grep unicorn
ec2-user 16196  1.0 12.6 486816 127348 ?       Sl   03:08   0:01 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 16204  0.3 12.3 488336 123972 ?       Sl   03:08   0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user 16216  0.0  0.0 119436   948 pts/0    S+   03:10   0:00 grep --color=auto unicorn

これでブラウザでアプリケーションにアクセスしてみると、無事にGoogleマップが表示されていました!

おまけ(Vimから抜けるコマンドまとめ)

① :w → 作成・編集したファイルを保存
② :q → vimをそのまま終了
③ :q! → 編集した内容を保存しないでvimを終了
④ :wq → 編集した内容を保存してvimを強制終了

6
6
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
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?