288 Views
January 29, 20
スライド概要
2020/1/28 Ltech#10 不動産・住宅情報サイト「LIFULL HOME'S」の中の人が語るAWS活用前線
テクノロジー本部技術開発部基盤開発ユニットプラットフォームグループ
秀野 亮
LIFULL HOME'Sを運営する株式会社LIFULLのアカウントです。 LIFULLが主催するエンジニア向けイベント「Ltech」等で公開されたスライド等をこちらで共有しております。
社内通貨の構成 LTech#10 LIFULL Co., Ltd. 秀野 亮@ryo0301
自己紹介 ● ● ● ● 物件検索エンジン AWS移行 不動産情報コンソーシアム ADRE 社内通貨 LIFULL COIN
社内通貨の取組み
社内通貨の取組み ● LIFULL COIN ● ブロックチェーン上に 御天道様を作るプロジェクト
社内通貨の取組み ● フラットな評価をする仕組みとして参考にしたもの ○ 「御天道様が見ている」という日本古来の道徳観 ○ アダム・スミスの道徳感情論にある「公平な観察者」 ○ PSYCHO-PASSのシビュラシステム ● 会社の社是である利他主義やガイドラインの可視化・ 推進が目標
システム構成
社内通貨での構成(理想) KMS AppSync Quorum Cognito ALB LIFULL COIN Wallet
Quorumのノード管理 Quorum ● Quorumというブロックチェーン ● 2つのネットワークで構成されている ○ ○ P2Pのネットワーク 分散合意アルゴリズムはRaft ● ノードの起動・停止イベント ○ ○ Fargateタスクで発火、EventBridgeで処理 StepFunctionsのExpress Workflowを実行
起動・停止イベント
Event Bridge default イベントバス Step Functions Expressワークフロー ノード情報参照 RegisterInstance Fargate Quorumクラスター Cloud Map 起動イベント StartExecution WaitOperation RegisterTargets ヘルスチェック ALB TargetGroup
Event Bridge default イベントバス Step Functions Expressワークフロー DeregisterTargets ALB TargetGroup Fargate Quorumクラスター 停止イベント StartExecution DeregisterInstance Cloud Map WaitOperation raft.removePeer
備考 ● CloudMap ○ ○ 更新処理は前回の処理が終わってからじゃないとダメ DupuricateRequestエラーは正常レスポンスも返すのでスルー ● StepFunctions ExpressWorkflow ○ ○ ○ Standardは最長1年、Expressは最長5分 Standardはat-most-onceモデル、Expressはat-least-onceモデル 内部的にStateを持っていないので冪等性を担保するよう設計 ■ 途中で最初からやり直し ■ 同時に複数ワークフロー実行 ● ECS TaskStateChangeイベント ○ ○ FargateタスクのdesiredStatusの変化でも発火する イベント形式はEventBridge SchemaRegistryで参照できる