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

スタートアップのFeature環境 #AWSStartup #AWSStartup_Kansai

Yusuke WADA
November 19, 2024

スタートアップのFeature環境 #AWSStartup #AWSStartup_Kansai

AWS Startup Meetup 大阪 Vol.3 LT by @fillz_noh

Yusuke WADA

November 19, 2024
Tweet

Other Decks in Technology

Transcript

  1. 4
 • 株式会社スマートラウンド
 • 2人目SRE
 • 大阪在住、フルリモート
 ◦ 月1東京
 •

    好きなAWSサービス
 ◦ AWS WAF
 • 最近のお気に入り
 ◦ Bedrockで翻訳ファイル生成
 01 自己紹介 こんにちは! 和田 友助(WADA Yusuke)

  2. 01 自己紹介 smartroundとは 5
 • ミッション 
 ◦ スタートアップが可能性を最大限に発揮で きる世界をつくる


    
 • プロダクト 
 ◦ スタートアップ・投資家間のデータ作成・共 有プラットフォーム

  3. • ECS on Fargateで運用
 • ステージング環境 : developブランチ(メインブランチ)
 ◦ リリース前のテスト・動作確認がメイン


    ◦ 特定ブランチの確認をしたい時、Slackで宣言して使い終わったらdevelopブランチに戻す
 • ローカル環境では確認難しい開発する時に動作確認が不便
 ◦ 外部連携でローカル専用のクレデンシャルが用意出来ない時など…
 ◦ 静止点の環境が欲しい…
 • 特定ブランチの確認をじっくり行いたい
 
 02 ステージング環境あるあるの課題 
 Feature環境の自動生成
 8
 → ブランチ( PR)単位ごとの専用環境 
 Feature環境の誕生 
 https://pr番号.example.com

  4. 02 Github Actionsで作成
 Feature環境の自動生成
 Githubプルリクエストにて 
 create envとコメント
 トリガー
 ALBのリスナー、リスナールール

    
 ターゲットグループ、 Route53 DNSレ コード等のリソースを作成 
 Terraform 
 ecspressoでデプロイ
 デプロイ
 Github Actions上でビルドして
 ECRへプッシュ
 イメージ
 Build &Push
 9

  5. • 指定時刻にMax/Minのキャパシティを変更出来る
 ◦ 止めたい時間に0/0 と変更するとdesired キャパシティも0になってタスク0になる
 03 Application Auto Scaling


    コスト抑えたい
 14
 スケジュールスケーリングどうでしょう? 
 $ aws application-autoscaling put-scheduled-action \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/*****-app \ --scheduled-action-name off-hours-scale-in \ --schedule "cron(0 13 * * ? *)" \ --scalable-target-action MinCapacity=0,MaxCapacity=0 毎日22時に実 行

  6. • 月〜金の朝6時にECSタスク1にする
 03 Application Auto Scaling
 コスト抑えたい
 15
 朝に起動させる場合 


    $ aws application-autoscaling put-scheduled-action \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/*****-app \ --scheduled-action-name on-hours-startup \ --schedule "cron(0 21 ? * SUN-THU *)" \ --scalable-target-action MinCapacity=1,MaxCapacity=1 平日朝6時に 実行