2020年5月20日水曜日

Beanstalk(.ebextensions)

1)goopysのマウント、shellコマンドを実行時にsudoレベルの権限を与えたいのが目的で追加しました。
00.docker.config
---------------------------------
commands:
  01_privileged:
    command: 'sed -i "s/docker run -d/docker run --privileged -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh'
---------------------------------


2)オートスケーリングの設定になります
02.autoscaling.config
---------------------------------
option_settings:
  aws:autoscaling:asg:
#    Availability Zones: Any
    Cooldown: '360'
#    Custom Availability Zones: 'Any'
    MaxSize: 4
    MinSize: 1
---------------------------------

解説:

3)VPCとサブネットマスクの割り当てを目的とした設定です。

03.network.config
-------------------------------------
option_settings:
   aws:ec2:vpc:
      VPCId: vpc-00559897548a65551
      Subnets: subnet-0a71a2ed41ae765d7,subnet-05819fd12f2c72c75
--------------------------------------

解説:

4)セキュリティグループの割り当て用の設定です
04.security.conf
(valueにセキュリティグループIDを入力する)
-----------------------------------
option_settings:
  - namespace: aws:autoscaling:launchconfiguration
    option_name: SecurityGroups
    value: sg-09f2c614732cb8ae5
-------------------------------------

5)NLBの443ポートの割り当て用の設定
05.nlb-secure-listener.config
-------------------------------------
option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
-------------------------------------

解説

6)ELBタイプをNLBにデプロイ時に指定をするために設定したコンフィグですが
(現在、未使用です)
06.network-load-balancer.config
-----------------------------------------
option_settings:
  aws:elasticbeanstalk:environment:
    LoadBalancerType: network
------------------------------------------


7)インスタンスタイプ割り当て用のコンフィグです。(t2.microで指定してます)
07.InstanceType.config
-----------------------------------------------------
option_settings:
  - namespace:   aws:autoscaling:launchconfiguration
    option_name: InstanceType
    value:       t2.micro
-----------------------------------------------------
                         
8)スケールアウト、スケールイン用のコンフィグです。
8.auto-scaling-trigger.config
-----------------------------------------------------
option_settings:
  - namespace: aws:autoscaling:trigger
    option_name: MeasureName
    value: CPUUtilization
  - namespace: aws:autoscaling:trigger
    option_name: Statistic
    value: Average
  - namespace: aws:autoscaling:trigger
    option_name: Unit
    value: Percent
  - namespace: aws:autoscaling:trigger
    option_name: UpperThreshold
    value: "40"
  - namespace: aws:autoscaling:trigger
    option_name: LowerThreshold
    value: "20"
  - namespace: aws:autoscaling:trigger
    option_name: UpperBreachScaleIncrement
    value: "1"
  - namespace: aws:autoscaling:trigger
    option_name: LowerBreachScaleIncrement
    value: "-1"
  - namespace: aws:autoscaling:trigger
    option_name: BreachDuration
    value: "2"
-----------------------------------------------------

解説:
①メトリクス:CPUUtilization
②統計:平均
③単位:パーセント
④上限しきい値:40%(CPU使用率)
⑤増分のスケールアップ :+ 1インスタンス
⑥下限しきい値:20%(CPU使用率)
⑦増分スケールダウン:-1インスタンス
⑧BreachDuration:2分
トリガーが発生する前に、メトリクスがその定義されている制限 (UpperThreshold と LowerThreshold で指定される値)
を超えることができる時間 (分)。


10)cloud watch log用のコンフィグになります。
10.cloud-watch-logs.config
-------------------------------------------------------
option_settings:
  - namespace: aws:elasticbeanstalk:cloudwatch:logs
    option_name: StreamLogs
    value: true
--------------------------------------------------------

11)タイムゾーンの設定
11.timezone.config
--------------------------------------------------------
commands:
  01-set_timezone:
    command: cp /usr/share/zoneinfo/Japan /etc/localtime
---------------------------------------------------------

0 件のコメント:

コメントを投稿

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...