Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS AppConfigとOpenFeatureで手早く機能フラグを導入する[LT size...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Arthur
November 26, 2024
Technology
830
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS AppConfigとOpenFeatureで手早く機能フラグを導入する[LT size] / CloudNative Days Winter 2024 船上LT会
https://cloudnativedays.connpass.com/event/334620/
Arthur
November 26, 2024
More Decks by Arthur
See All by Arthur
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
910
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
750
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
1.3k
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
2.1k
オブザーバビリティプラットフォームの企画からリリースまで──PO・TLから見るMackerelの裏側 / ”ユーザー体験”の起点となるUXとアプリ開発──トヨタ・Nissan・はてなのプロダクトと開発現場から見える、設計の多様なアプローチ【TECH DRIVERS Day1】
arthur1
0
160
オブザーバビリティプラットフォーム開発におけるオブザーバビリティとの向き合い / Hatena Engineer Seminar #34 オブザーバビリティの実現と運用編
arthur1
0
730
デフォルトの16:9(960*540px)のケース / Google Slide Size Test
arthur1
0
5k
1920*1080pxに設定したケース / Google Slide Size Test
arthur1
0
5k
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
1.1k
Other Decks in Technology
See All in Technology
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
260
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
140
Kiro Ambassador を目指す話
k_adachi_01
0
130
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
160
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
170
水を運ぶ人としてのリーダーシップ
izumii19
4
990
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
310
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
100
Comment regagner la souveraineté de vos données tout en étant payé grâce à Nostr !
rlifchitz
0
200
AIAU_UMEMOGU_ninomiya_slide
ninomiya_ii
0
260
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
3
830
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
1
1k
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Tell your own story through comics
letsgokoyo
1
960
The Invisible Side of Design
smashingmag
301
52k
Amusing Abliteration
ianozsvald
1
210
Being A Developer After 40
akosma
91
590k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
A better future with KSS
kneath
240
18k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Navigating Weather and Climate Data
rabernat
0
230
Transcript
AWS AppConfigとOpenFeature で手早く機能フラグを導入する [LT size] id:arthur-1 株式会社はてな 2024-11-26 CloudNative Days
Winter 2024 船上LT会
Arthurと申します 株式会社はてな Mackerel開発チーム 「オブザーバビリティの実現」チーム テックリード・プロダクトオーナー 𝕏: @Arthur1__ CNDW2024のOSS展示企画に参加して います。現地でお会いしましょう! 2
Mackerel作ってます 3
[LT size]? 本編にProposalを出していました(不採択) 1/4サイズで雰囲気だけでもお届けできればと思います より詳細に興味がある方は、本日の船上LT会もしくは CNDW2024の会場でぜひディスカッションしましょう! 4
Amazon ECS 上で動く マイクロサービスに 5
フィーチャーフラグ を導入したい 6
手っ取り早く 欲しい 7
業界の標準には 則りたい 8
自前で作り込むと 将来困るかも 9
フラグの更新と デプロイは 分離したい 10
アプリケーションの可用性 を落としたくない 11
外部のFFSaaS (Feature Flag as a Service) 新規契約する時間もない 12
🤔 13
💡 14
OpenFeature × AWS AppConfig 機能フラグ 15
登場人物 16
OpenFeature フィーチャーフラグの標準化を目指すプロジェクト CNCFのIncubating Projectsに採択されている https://openfeature.dev/ フィーチャーフラグの評価をするAPIを、特定のベン ダーに依存しない形で提供する 17
OpenFeature Client フィーチャーフラグのバックエンドに合わせて、Providerを 差し替える 18 Introduction | OpenFeature https://openfeature.dev/docs/reference (Licensed
under CC BY 4.0)
様々なProvider https://github.com/open-feature/go-sdk-contrib • 環境変数 • flagd • ConfigCat など、self-hosted /
SaaS問わず、様々なフィーチャ フラグバックエンド向けに用意されている 19
OpenFeatureのいいところ • 標準に統一することで、認知負荷が減らせる • 後述のAppConfigをやめて別のものにしよう、となって も、コードの差分はProviderを差し込むところだけ • 標準化により、「機能フラグはこういうことができるべ きだ」というラインが宣言されている ◦
フィーチャーフラグの仕組みを自作するにしても、 道標になる 20
AWS AppConfig 機能フラグ AWS AppConfig アプリケーションのデプロイを行わずとも、アプリケー ションの設定を調整できる、AWSのマネージドサービス 機能フラグという種類の「設定」では、フィーチャーフラグ に特化した形で構造化されたデータを扱える 21
AppConfig機能フラグの画面 22
AppConfig機能フラグの画面 23 各フラグの値をBooleanで設定できる
AppConfig機能フラグの画面 24 属性としてBoolean以外の情報も付与可能 有効/無効だけでなく制限値を定義する時に便利
バリアントも作れる 25 デフォルトはfalseだけど、このユーザーならtrue、と いうフラグも作れる
AppConfigのいいところ • AWSを利用している環境に導入しやすい • 可用性が十分ある。SLA 99.9% ◦ cf.) https://aws.amazon.com/jp/config/sla/ •
AppConfig機能フラグは、OpenFeatureにおける フラグ評価の各種概念と1対1でマッピングできる 26
OpenFeature×AppConfig OpenFeatureとAppConfigを組み合わせると、今回の ニーズに叶うソリューションになりそう! しかし現時点で、OpenFeature/AWSともに AppConfig向けのOpenFeature Providerを提供して いない! 27
じゃあ どうする? 28
ないなら 作ればいいじゃない 29
AWS AppConfig Provider https://github.com/Arthur1/openfeature-provid er-go-aws-appconfig/ AWS AppConfig機能フラグをバックエンドとする OpenFeature Go SDK向けProvider
今回具体的な実装には触れませんが、比較的簡単に作れました 30
構成図 31 AWS AppConfig Amazon ECS Task AWS AppConfig Agent
My App OpenFeature Go SDK AWS AppConfig Provider (自作) +
AppConfig Agentを経由 ECS/EKS/Lambda向けにAWS AppConfig Agentが提供され ている シンプルなHTTPコールで設定を取得できる 設定を一定期間キャッシュすることで、コストを削減&パ フォーマンスの劣化防止 ProviderとしてもAppConfigに直接APIを投げるのではなく、
AppConfig Agentに対してリクエストを投げている 32
コード例 33 // AppConfigのConfigurationに関する名前をセットして providerを実体化 provider := appconfigprovider.New("appName", "envName", "cfgName")
// 以降のコードは AppConfig Providerに依らない openfeature.SetProvider(provider) client := openfeature.NewClient("app") evalCtx := openfeature.NewTargetlessEvaluationContext(map[string]any{ "userID": "12345", }) isEnabled, err := client.BooleanValue(ctx, "feature1", false, evalCtx)
おしまい 34