1
1

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】Elastic IP解放→割り当て後に必要な事

Last updated at Posted at 2020-04-06

この記事は?

AWSのElastic IP(以降EIP)再割り当て時の対応に関する記事です。

想定する読み手

  • AWSでのデプロイ経験が乏しい方
  • AWSでデプロイしたアプリを使わないからインスタンス停止、IP解放した方
  • EIPを再割り当てしたけどアプリが起動できない方

著者開発環境
mac
Ruby 2.5.1
Rails 5.2.3
AWS
nginx
mySQL
unicorn

そもそもElastic IPとは

AWSで取得できる、アプリへアクセスするためのIPアドレスです。
特定のIPアドレスを指定することはできませんが、ランダムで取得したEIPは、解放※しない限り占有する事ができます。
(※解放:インスタンスに紐付けしているEIPの占有を解除する事)

使用料金
起動中のEC2インスタンスに割り当てたEIPは無料(1インスタンスにつき1つ。2つ目以降は有料)で使用できます。
停止中インスタンスに割り当てられているEIPは有料。(0.005ドル/1時間)
インスタンスを停止していると1ヶ月で、0.005ドル×24(時間)×30(日) = 3.6ドルかかります。
日本円で400円くらいでしょうか。

著者は使用しないアプリがあったのでインスタンスを停止していたのですが、AWSから請求があった事を知り、EIPを解放しました。

が、訳あって久しぶりにアプリの挙動を本番環境で確認するべく、停止していたインスタンスを起動し再度EIPを割り当てました。
すると、アプリが起動しなかった訳なんです。

EIP再割り当て時に必要なことって?

結論、必要な対応は以下の2点でした。

  • 本番環境nginx設定内部でelasticIPの書き換え
  • ローカル環境config/deploy/production.rb内のelasticIP書き換え

考えてみれば当然の事なんですが、デプロイ時にEIPを記載していた箇所がありました。
そこのEIPを新しく割り当てたEIPに書き換える必要がある、という事ですね。

実際にやった事

本番環境nginx設定内部でelasticIPの書き換え

本番環境にて、nginxの設定画面を開きます。
デイレクトリは自身のアプリのディレクトリです。

ターミナル
[ec2-user@ip-xxx-xx-xx-xx アプリ名]$ sudo vim /etc/nginx/conf.d/rails.conf

以下のような画面が開くはずです。

ターミナル
server {
  listen 80;
  server_name 52.68.124.79;   #ここを書き換え
  root /var/www/アプリ名/current/public;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
    root  /var/www/アプリ名/current/public;
  }

  try_files $uri/index.html $uri @unicorn;

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }

  error_page 500 502 503 504 /500.html;

  location = /favicon.ico {
    log_not_found off;
  }
}

この中のserver_nameという箇所がEIPを記載する箇所なので、ここを新しいEIPに書き換えます。

ローカル環境config/deploy/production.rb内のelasticIP書き換え

これは読んで字の如くなので割愛しますが、
config/deploy/production.rb内にもEIPを記載している箇所がありますので、そちらも新しいEIPに書き換えます。

以上の対応で著者のアプリは久々に起動できました。

おわりに

今回の記事は、読む方をかなり限定するかもしれませんが、それでも誰かのお役に立てれば嬉しいです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?