LoginSignup
1
0

More than 3 years have passed since last update.

Elastic BeanstalkでT3インスタンスのUnlimitedモードを無効にして起動するようにする

Last updated at Posted at 2020-04-28

やりたいこと

(ほぼタイトルのまんまですが、、、)
今回の目標は、Elastic Beanstalk環境でebextensionsを使って、EC2のT3インスタンスをUnlimitedモードを無効にして起動するようにすることです。

T3インスタンスのUnlimitedモードはデフォルトで有効になっている

公式ドキュメントにも以下のように記載があります。

T3 インスタンスは、デフォルトで unlimited として起動します。T3スポットインスタンスを unlimited として起動し、CPU クレジットを計上するためのアイドル時間なしに、すぐに短期間使用する場合は、余剰クレジットの料金が発生します。24 時間の平均 CPU 使用率がベースラインを超えた場合は、余剰クレジットに対しても課金されます。T3スポットインスタンスは標準モードで起動して、コストが高くならないようにすることをお勧めします。

余剰クレジットこわぁ。。。/(^o^)\

Unlimitedモードを無効にしてT3インスタンスを起動するようにする

今回は、AutoScalingで自動で起動されるEC2インスタンスでもUnlimitedモードを無効にしておいてほしいので、ebextensionsを使って対応します。

以下のファイルを作成して、.ebextensionsフォルダ内に置いてデプロイします。

disable-t3-unlimited.config
files:
  "/tmp/disable-t3-unlimited.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash
      instance=`curl -s http://169.254.169.254/latest/meta-data/instance-id`
      region=ap-northeast-1
      aws ec2 modify-instance-credit-specification --region $region --instance-credit-specification "InstanceId=$instance,CpuCredits=standard"

commands:
  disable-t3-unlimited:
    command: |
      /tmp/disable-t3-unlimited.sh
      rm -f /tmp/disable-t3-unlimited.sh

補足

1. EC2インスタンスメタデータの取得

実行中のEC2インスタンスのメタデータは

http://169.254.169.254/latest/meta-data/

で取得できます。
今回はinstance-idが欲しいので、そいつだけ取得しています。

2. リージョンの指定

今回はリージョンをap-northeast-1に設定してありますが、EC2を置いているリージョンを指定する必要があります。

region=ap-northeast-1

3. aws ec2コマンドを叩く際の注意点

記事の中で下のコマンドを普通に叩いていますが、aws ec2コマンドを叩くためには先にIAMユーザーの認証情報を設定しておく必要があります。

aws ec2 modify-instance-credit-specification --region $region --instance-credit-specification "InstanceId=$instance,CpuCredits=standard"

今回は主題とズレるため割愛させていただきますが、AWSの認証情報を設定するためのebextensionsを別に作ることをおすすめします。

確認してみる

EC2インスタンスのコンソール画面から反映されているか確認してみます。
t3-unlimited.png

できてた\‪( ´ ‿`)‬/
t3-unlimited-2.png

参考

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