こんにちは。streampackのtsuchiです。
最近、業務で大量アクセスが想定される動画案件を経験したので、その際のノウハウを共有します。
AWSの構築/運用経験がある方にはお馴染みの「上限緩和申請」についての話です。
特に、動画配信環境において、注意が必要なポイントをご紹介します。
※本内容は、2019年3月29日時点のものとなります。
はじめに
AWSリソースにはデフォルトの制限があり、大きく分けてリソース数の制限と性能の制限があります。
それらの制限を解放するために「上限緩和」が必要になります。
ここでは簡単に、「量」の上限緩和 ・「質」の上限緩和と表現します。
種類 | 説明 |
---|---|
「量」の上限緩和 | リソース不足を解消するために行う |
「質」の上限緩和 | 高い性能の要件を満たすために行う |
#CloudFront
CDNとして使われるCloudFrontの上限をみてみましょう。
→Amazon CloudFront の制限
リソース | デフォルトの制限 |
---|---|
ディストリビューションごとのデータ転送レート | 40 Gbps |
1 秒あたり、ディストリビューションあたりのリクエスト | 100,000 |
(※「一般的な制限事項」から一部を抜粋) |
これらを超える性能を求める際には、上限緩和が必要になります。
AWS マネジメントコンソールの**「サポート」 - 「サポートセンター」 - 「Create case」**から申請しましょう。
その際に申請する上限値の計算方法が複雑で面倒なのです……
こちらのドキュメントに計算式が記載されていますので、参考にしてみてください。
→CloudFront上限緩和申請 計算方法&申請手順
■計算式
①動画の平均ビットレート(byte)×最大同時視聴数(人)=データ転送レート(bps)
②(1÷1セグメントあたりの長さ(秒)+1÷Cache TTL(秒))×最大同時視聴数(人)=リクエスト数/秒
#ELB
ELBで緩和できる設定値は、「数の上限緩和」のみとなっています。
→Elastic Load Balancing の制限
ただ、ELBには「暖機申請」というものが存在します。
あらかじめ急激な負荷が予想される場合には、この暖機申請が必要です。
検索するといろいろと情報は見つかりますので、申請方法や詳細はここでは割愛します。
#EC2
AWSの上限緩和といえば「VPCの数」「EIPの数」がお馴染みです。
ですが、EC2関連で意外と忘れがちなのが「インスタンスタイプの数」。
あまり知られていないかもしれませんが、大きなインスタンスタイプだと
デフォルトで使用できる数が制限されていることがあります。
現状の上限値は、AWSマネジメントコンソールの**「EC2ダッシュボード」-「制限」**から確認できます。
事前に使用予定のインスタンスタイプの数に余裕があるか、確認しておきましょう。
#Media Services
Media系のAWSマネージドサービスとはいえ、これにも上限は存在します。
どれくらいのリソース数・性能が必要なのか、事前に検証や確認の上、緩和申請をお忘れなく。
たとえば、MediaLive・MediaPackageは「チャンネル最大数」などの「量の上限緩和」、
MediaStoreは「1秒あたりのトランザクション最大件数」などの「質の上限緩和」を実施することができます。
おわりに
上限緩和申請をするには、AWSから上限値の妥当性が求められることがあります。
その際は申請後にAWSから追加情報を要求されるため、2,3日では申請が通らないこともあります。
スケジュールに余裕を持って申請を行い、安心して本番を迎えられるよう準備しましょう。