1
0

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 1 year has passed since last update.

Elastic Beanstalk Amazon Linux 2 Docker プラットフォームに移行した際に変更した箇所

Last updated at Posted at 2021-12-04

Elastic Beanstalkで使用していたAmazon Linux AMI ベースの Docker プラットフォームがリタイヤ予定になっていたので、Amazon Linux 2 Docker プラットフォームへ移行しました。その移行作業で変更した箇所をメモ。

↓対象の環境はざっくりこんな感じ

  • 起動するDockerコンテナは1つ
  • ローカルCLIからeb deploy
  • デプロイ時にEBがDockerfileを参照してカスタムイメージをビルド
  • EC2インスタンス2台 ALBで冗長化
  • WebフレームワークはRails 5系

変更点

1. Dockerrun.aws.jsonを追加

Dockerrun.aws.json
{
  "AWSEBDockerrunVersion": "1",
  "Ports": [
    {
      "ContainerPort": "3000"
    }
  ]
}

移行前はソースバンドル(デプロイに使用するzipファイル)に含まれたDockerfileを自動で読み込んでビルドしてくれたのですが、Linux 2になってからはdocker run用のAWS独自フォーマットのファイルが必要になりました。
AWSEBDockerrunVersionはDocker Composeを使用しないので1、ContainerPortはDockerfileのEXPOSEと合わせています。

ちなみにdocker-compose.ymlが含まれていると、Dockerrun.aws.jsonを無視してdocker composeとして起動してしまうので注意が必要です。

2. .ebextensionsで設定していたnginx設定を.platform/nginxに移動

.platform/nginx/nginx.conf など

デプロイ時に拡張したい設定をまとめておける.ebextensionsにnginxの設定を記載していたのですが、移行後はうまくnginxの設定ファイルに展開できなくなりました。
そのため移行に伴い、EBで用意しているnginx設定を展開してくれるディレクトリを用意。.patform/nginx以下に上書きや追加したいファイルを配置するとデプロイ時に自動でインスタンスに展開してくれます。
例).platform/nginx/nginx.conf → /etc/nginx/nginx.conf

3. timezoneの設定方法をtimedatectlに変更

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
↓
timedatectl set-timezone Asia/Tokyo

Amazon Linux 2はCentOS7ベースと言われているのでタイムゾーン設定をtimedatectlで行うよう変更。
ちなみにAmazon Linux AMIの方はCentOS6ベースと言われています。

4. eb deploy時の不要なファイルを記載するファイルの名前を変更

.gitattributes.ebignore

eb deploy時に作成されるソースバンドルに含めないファイルを記載するファイル名を変更。.gitignore的なやつですね

5. おまけ)EBデプロイ時のログファイル名が変更

/var/log/eb-activity.log/var/log/eb-engine.log

まとめ

移行自体はブルーグリーンデプロイで行っていますが、そちらはEBの環境 URLのスワップを使用したらほぼワンクリックで行うことができました。
今更ながらAmazon Linux 2への移行を行いましたが、こういった作業が初めてだったため良い勉強になりました。特に公式ドキュメントを読み込むことの大切さを学べた気がします。

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?