Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テスト環境のインフラ・運用コストを下げたい話〜全部入りEC2を超えていけ

n1215
August 27, 2022

 テスト環境のインフラ・運用コストを下げたい話〜全部入りEC2を超えていけ

PHPカンファレンス沖縄2022の発表資料です

n1215

August 27, 2022
Tweet

More Decks by n1215

Other Decks in Programming

Transcript

  1. 自己紹介 from 京都 - 中榮健二 (なかえけんじ) - twitter: @n_1215  -

    株式会社Nextat 取締役 - Webアプリのバックエンドがメインのはず。インフラ専任ではない - ここ最近はGoを使ったりUnityを使ってクライアント側をやったりPHP以 外の仕事も増加 Nextat Inc. 2
  2. 例1. 弊社の場合 全部入りEC2 nginx + PHP-FPM + MySQL + Redis

    複数サービスが同居している 勤怠管理システム、プロジェクトAのテスト環境 etc. EC2の時限起動・停止によるコスト削減 社内システムの場合は 定期DBバックアップ(cron)-> S3 アクセス元IPアドレス制限やBasic認証 リモートワークの時代だが? Nextat Inc. 6
  3. 弊社の事情 インフラ専任の開発者はいない Webアプリ開発の片手間にできる人がやる 特定の人に偏りがち 「これのデプロイどうするんだっけ?」 創業初期はWebサイト製作の比率も高かった 共用レンタルサーバ → VPS →

    IaaSと変遷してきた 本番環境はコンテナを使う比率が高い ただテスト環境や社内システムの場合はEC2で良くない?となりがち 医者の不養生 Nextat Inc. 8
  4. FaaS AWS Lambda や Google Cloud Functions 無料枠は大きい場合が多い AWS LambdaはPHPの公式対応がない

    リクエストを処理している時間だけの課金も選べるため、リクエストが少ないサ ービスで非常に安上がり EC2を使う時間だけ起動・停止するよりも高い効果が得られる 普段慣れているアプリケーション開発の構成を変える必要がある FaaS特有の知識が必要になるので必要なインフラ知識はむしろ増える ローカルでの再現に難あり 今回はこれもパス スケーラビリティ重視の場合やインフラコスト削減への強い要望がある場合 はAWS縛りの中のLambdaは強力な選択肢 Nextat Inc. 21
  5. クラウドプロバイダのコンテナ系マネージドサービス AWS ECS、App Runner、Cloud Runあたり ローカルでの再現は比較的楽 デプロイパイプラインの一部は自前になるのでPaaSより少し手間 大抵はコンテナイメージをビルドしてコンテナレジストリに保存するくらい 料金について ECS

    on Fargate: リクエストがなくてもお金はかかる+ロードバランサの 料金 App Runner: リクエストがなくても待機状態。コンテナインスタンス数を 完全に0にはできないが今後に期待 Cloud Run:無料枠あり。コンテナインスタンス数の最小を0にできるので その点はFaaSの特性にも近い Nextat Inc. 22
  6. Redis 地味に高い セッションストア・キャッシュストア用途(シェアードナッシング) AWS: ElastiCache for Redis https://aws.amazon.com/jp/elasticache/redis/ GCP: Memorystore

    for Redis https://cloud.google.com/memorystore?hl=ja Redis Enterprise Cloud(AWS/GCP/Azure対応) https://redis.com/redis-enterprise-cloud/overview/ セッション情報もRDBに入れてしまう手もある。特にテスト環境 Upstashってどうなの? https://upstash.com/ Nextat Inc. 31
  7. 非同期処理・キュー AWS ECSでキューワーカー起動 + SQS SQSは無料枠が割と大きい ECSを常時起動させる分で料金がかかってくる GCP Cloud Runでキューワーカー起動

    + Pub/Sub Webアプリ用とは異なり、CPUを常に割り当てる設定が必要になる分で料金 がかかる GCP Cloud Tasks 料金的には期待できそう GCPへのロックインにはなるのでローカルでの再現率は落ちる Nextat Inc. 35