Help us understand the problem. What is going on with this article?

cloud-initに日本語が含まれるとインスタンスが正常に起動しない

概要

AWSが提供するECSのAMIバージョンami-06c98c6fe6f20c437 (2.0.20191031 x86_64 ECS HVM GP2)、ami-0064e711cbc7a825e (2.0.20191024.3 x86_64 HVM gp2) において、cloud-initスクリプト内に日本語が含まれるとインスタンスが正常に起動しない不具合が見つかってます。
再現の検証は行ってませんが、最新のAmazon Linux 2 AMIイメージでも同様の現象が発生するとAWSより回答が得られました。

現象

AWSのリソースはTerraformで管理しており、スケールアウト時は常に最新のイメージを取得する仕組みを作ってました。

data "aws_ami" "this" {
  most_recent = true

  filter {
    name   = "architecture"
    values = ["x86_64"]
  }

  filter {
    name   = "name"
    values = ["amzn2-ami-ecs-hvm-*"]
  }

  owners = ["amazon"]
}

先日スケールアウトを実施したところ、AMIがami-06c98c6fe6f20c437 (2.0.20191031 x86_64 ECS HVM GP2) に更新されていたのですが、このバージョンを利用するとコンテナインスタンスにSSHで接続できない、ECSクラスタに正しくマッピングされず、defaultクラスタが作成されるといった障害が起きました。

原因を調べたところ、userdata経由でcloud-initを実行していたのですが、スクリプト内に日本語が含まれると正しくインスタンスが起動しない問題と判明。
システムログでも対象AMIでエンコーディングに関するエラーが出ていました。

UnicodeEncodeError: 'ascii' codec can't encode characters in position 429-431: ordinal not in range(128)

問題のcloud-init。

cloud-init.cfg
#cloud-config
repo_update: true
...
# 日本語のコメントがあるとインスタンスが正常に起動しない

ちなみにシステムログはマネージメントコンソールだとEC2のInstance Settingsから確認することができます。

Screen Shot 2019-11-13 at 13.49.56.png

サポートに問い合わせたところ、Amazon ECS-optimized AMIAmazon Linux 2 AMIのいずれも同様の現象が再現され、cloud-initの挙動に関する不具合と回答を得られました。
AMIが改修されるまでの間は、一時的な回避策として日本語のコメントを外すか、不具合の起きないami-057631c6a4834e06d(2.0.20191014 x86_64 ECS HVM GP2)を利用するのが良さそうです。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away