Slide 1

Slide 1 text

【Sansan Tech Meetup】インフラエンジニアが考えるプロダクトと組織 Windows⾼速起動という AWS EC2の謎機能が 意外と役に⽴った 技術本部 Sansan Engineering Unit 落合 秀俊

Slide 2

Slide 2 text

写真が入ります 落合 秀俊 Sansan株式会社 技術本部 Sansan Engineering Unit SI企業で官公庁/電⼒業界/通信業界 等の硬い顧客向けにインフラの 設計・構築をしていた元オンプレおじさん。2020年1⽉から SansanにJoin。 家族でキャンプが趣味です。去年からトイプードルを家族に迎え て、⼀緒にお出かけしては写真撮って楽しんでます。

Slide 3

Slide 3 text

なぜWindowsの起動が速くなってうれしいのか WindowsサーバでAuto Scaling環境にしているから - APサーバにWindows Server(EC2)を使⽤している - Auto Scaling環境で、CodeDeployのBlue/Green Deployを利⽤ > アプリデプロイのたびに新規にEC2を起動する > Windowsなので(?)、毎回OSがリフレッシュされるのは安定性に寄与している 起動が速くなると、どんなうれしいことがあるのか - デプロイ時間を短くしたい > 時間は10分〜30分程度、低スペックな開発環境が顕著に遅いのが不満 - インスタンス障害発⽣時の復旧時間を短くしたい > 障害発⽣から使えるようになるまでトータルで15分以内に収めたい

Slide 4

Slide 4 text

設定さえすれば起動が速くなる夢のような機能 https://aws.amazon.com/jp/about-aws/whats-new/2022/01/aws-speed-optimizations-windows-instances-ec2/ AWSの新機能紹介ブログ

Slide 5

Slide 5 text

設定さえすれば起動が速くなる夢のような機能 フラグを⽴てるだけで 65%⾼速化 しかも無料 https://aws.amazon.com/jp/about-aws/whats-new/2022/01/aws-speed-optimizations-windows-instances-ec2/

Slide 6

Slide 6 text

設定さえすれば起動が速くなる夢のような機能 https://aws.amazon.com/jp/about-aws/whats-new/2022/01/aws-speed-optimizations-windows-instances-ec2/ フラグを⽴てるだけで 65%⾼速化 しかも無料 そこだけ聞くと超怪しい…… どういう仕組みで速くなるのか?

Slide 7

Slide 7 text

検証 設定コマンド aws ec2 enable-fast-launch ¥ --image-id ami-xxxxxxxx ¥ --snapshot-configuration TargetResourceCount=20 ¥ --launch-template LaunchTemplateName=windows-fastlaunch,Version=¥$Latest ¥ --max-parallel-launches 6 ① ② ③ ④ ① ⾼速化したいAMI ID ② ⾼速起動したいInstance数 - 指定した数だけ、⾼速化済みEBS Snapshotが作られる - 運⽤するときのInstance数を指定した ③ ⾼速化設定で使うEC2 Launch template - 指定しないとDefault VPCにSubnetが作られる - ⾼速化処理専⽤のSubnetを指定した ④ このコマンドでの⾼速化処理の並列実⾏数 - ②と紛らわしい - SubnetのIPアドレスが不⾜しない範囲に設定する

Slide 8

Slide 8 text

⾼速化コマンドを実⾏すると - EC2 Instanceがわらわらと起動してきて、勝⼿にTerminateする - ⾼速化済みEBS Snapshotが作られる(TargetResourceCountで指定した数)

Slide 9

Slide 9 text

⾼速化の動作原理 ドキュメント・挙動からの予想も含まれています - sysprepしたAMIから起動した後の、初期セットアップ処理を事前にや っておく分、速くなる - Windows AMIはsysprepされた状態 > sysprepは、Windows OSイメージのコピーをしたい場合に使⽤する > システム固有情報を消去した状態 - AMIから初回起動時にWindowsの初期セットアップ相当の処理を実施している > PC買ってきたときの初期セットアップで、⾔語、キーボードレイアウトなど設 定しているのを思い浮かべてください - 初期セットアップ後のEBS Snapshotを取っておく > Snapshotから起動することで時間短縮

Slide 10

Slide 10 text

⾼速化の動作原理 EC2起動 Windows 初期セットアップ処理 通常のWindows起動処理 (各種Service起動など) EC2起動 Windows 初期セットアップ処理 EC2 terminate EBS Snapshot作成 通常のAMIからのWindows起動 Windows起動⾼速化 EC2起動 通常のWindows起動処理 (各種Service起動など) 事前処理 EBS Snapshot AMI AMI ここがなくなる分 速くなる ここがなくなる分 速くなる

Slide 11

Slide 11 text

測定結果 - Auto Scalingのログで測定 > Auto Scaling発動させ、Activity historyのStart, Endから確認 - 2分程度削減できた > 起動時間はスペックアップ以外の短縮⽅法がほとんどないので、2分でも減るの は効果あり - コスト > 完全無料ではない (EBS Snapshot分が必要) > AMI 1種類当たり、$10 〜 $20 /⽉ 増加 Instance Type 通常AMI ⾼速化済みAMI 削減率 t3.medium 10:27 8:39 -18% m5.2xlarge 8:37 7:08 -17% 安いt3.mediumでm5.2xlargeと同等の起動時間になった

Slide 12

Slide 12 text

- AMIのWindows起動⾼速化は、sysprep後初めて起動した時の初期化処理 を先にやっておくことで実現している - WindowsでAuto Scalingを⾏っているような環境には役⽴つ - なかなかWindowsでこんなことしているシステムは少ないですよね - AWSは⽇々⼤量のUpdateしているので、こういうマニアックな機能もある のがすごいところ - 効果 > デプロイ時間短縮 > インスタンス障害時の復旧時間の短縮 - 起動時間は2分弱短縮できた まとめ

Slide 13

Slide 13 text

会社概要 12 表参道本社 神山ラボ Sansan Innovation Lab 社 名 Sansan株式会社 所在地 表参道本社 東京都渋⾕区神宮前5-52-2 ⻘⼭オーバルビル13F グループ 会社 Sansan Global Pte. Ltd.(シンガポール) Sansan Global Development Center, Inc.(フィリピン) Sansan Corporation(アメリカ) ログミー株式会社 株式会社ダイヤモンド企業情報編集社 クリエイティブサーベイ株式会社 株式会社⾔語理解研究所 従業員数 1,317 名(2023年5⽉31⽇時点) 2007年6⽉11⽇ 設 ⽴ ⽀店:⼤阪、名古屋、福岡 サテライトオフィス:徳島、京都、新潟 拠 点 寺⽥ 親弘 代表者

Slide 14

Slide 14 text

Sansan 技術本部 採⽤情報 https://media.sansan-engineering.com/infra-engineer

Slide 15

Slide 15 text

No content