Elastic BeanstalkでT3インスタンスのUnlimitedモードを無効にして起動するようにする
やりたいこと
(ほぼタイトルのまんまですが、、、)
今回の目標は、Elastic Beanstalk環境でebextensions
を使って、EC2のT3インスタンスをUnlimitedモードを無効にして起動するようにすることです。
T3インスタンスのUnlimitedモードはデフォルトで有効になっている
公式ドキュメントにも以下のように記載があります。
T3 インスタンスは、デフォルトで unlimited として起動します。T3スポットインスタンスを unlimited として起動し、CPU クレジットを計上するためのアイドル時間なしに、すぐに短期間使用する場合は、余剰クレジットの料金が発生します。24 時間の平均 CPU 使用率がベースラインを超えた場合は、余剰クレジットに対しても課金されます。T3スポットインスタンスは標準モードで起動して、コストが高くならないようにすることをお勧めします。
余剰クレジットこわぁ。。。/(^o^)\
Unlimitedモードを無効にしてT3インスタンスを起動するようにする
今回は、AutoScalingで自動で起動されるEC2インスタンスでもUnlimitedモードを無効にしておいてほしいので、ebextensions
を使って対応します。
以下のファイルを作成して、.ebextensions
フォルダ内に置いてデプロイします。
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インスタンスのコンソール画面から反映されているか確認してみます。
参考
Author And Source
この問題について(Elastic BeanstalkでT3インスタンスのUnlimitedモードを無効にして起動するようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/kino_puehddby/items/41d4c6e2438ab9c351af著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .