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
Arthur
November 26, 2024
Technology
840
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
はじめてのグラフ信号サンプリング
arthur1
0
50
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
2.4k
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
790
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
1.3k
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
2.9k
オブザーバビリティプラットフォームの企画からリリースまで──PO・TLから見るMackerelの裏側 / ”ユーザー体験”の起点となるUXとアプリ開発──トヨタ・Nissan・はてなのプロダクトと開発現場から見える、設計の多様なアプローチ【TECH DRIVERS Day1】
arthur1
0
180
オブザーバビリティプラットフォーム開発におけるオブザーバビリティとの向き合い / Hatena Engineer Seminar #34 オブザーバビリティの実現と運用編
arthur1
0
750
デフォルトの16:9(960*540px)のケース / Google Slide Size Test
arthur1
0
5.1k
1920*1080pxに設定したケース / Google Slide Size Test
arthur1
0
5k
Other Decks in Technology
See All in Technology
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.6k
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
2
320
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
110
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
230
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
3.1k
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
130
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.4k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
220
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
1
490
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The SEO Collaboration Effect
kristinabergwall1
1
510
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Utilizing Notion as your number one productivity tool
mfonobong
4
420
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
730
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Git: the NoSQL Database
bkeepers
PRO
432
67k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
810
Accessibility Awareness
sabderemane
1
160
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