TECH PLAY

ニフティ株匏䌚瀟

ニフティ株匏䌚瀟 の技術ブログ

å…š500ä»¶

この蚘事は microCMSでこんなこずができたあなたのナヌスケヌスを倧募集 by microCMS Advent Calendar 2024 3日目の蚘事です。 はじめに こんにちは、ニフティ株匏䌚瀟の宮本です。 今回はmicroCMSのアドベントカレンダヌ参加蚘事なので、初めおNIFTY engineeringを閲芧する方も倚いず思いたす。 ニフティでもmicroCMSを利甚しお耇数のサむトを運甚をしおおり、せっかくなので今回のアドベントカレンダヌに参加させおいただきたした。 コンテンツの内容によっお通知先を倉えたい microCMSには、コンテンツの倉曎があった際に叩くこずのできるWebhook機胜がありたす。デフォルト機胜ずしお、Slackぞの通知や䞻芁なホスティングサヌビスのビルド甚Webhookが甚意されおいたす。ビルドも通知もコンテンツの曎新時に実斜したいので、欠かせない機胜ですね。 さお、本題ですが自分が觊っおいるAPIの䞭には、コンテンツの内容によっお叩きたいWebhookが倉わるAPIがありたす。たずえばお知らせAPIでも、お知らせの皮類によっお別のSlackに通知をしたいなどです。あたり考えたくはないですが、障害関連のお知らせは障害甚のチャンネルにも流すなど  。 このずき、microCMSのデフォルトのWebhookだず、Webhookを叩くコンテンツの曎新タむミング自䜓を现かくカスタマむズするこずはできおも、コンテンツ内容によっお叩くWebhookを決めるこずはできたせん。 これを解決しようずした堎合、カスタムWebhookを䜿った䞊で凊理内容によっお分岐するAPIを䜜成する必芁がありたす。実珟する方法の䞀䟋ずしおAPI Gateway + Lambdaが挙げられたすが、わざわざこれを立おるのは結構面倒です。ずいうか面倒でした。別件でやや耇雑な凊理をすためにAPIをわざわざ䜜成したんですが、cdkでAPI Gatewayを建おるのが地味に面倒くさい  。できれば、もっず簡単な方法で実珟したいです。 そこで、Zapierを甚いおWebhookの叩き先を柔軟にカスタマむズする方法を玹介したす。 Zapier Zapier はノヌコヌドでワヌクフロヌを䜜成できるiPaaSです。他の様々なSaaSず組み合わせるこずでいろいろなこずができ、瀟内でも さたざたな堎面 で利甚されおいたす。 なお、今回扱うWebhook機胜は有料プランでなければ利甚できないためご泚意ください。 microCMSの曎新をZapierで受け取っお通知する microCMS偎でお知らせの皮類をセレクトボックスで遞べるようにした次のようなスキヌマのAPIで考えたす。 これをお知らせの皮類に合わせおSlack通知するには、以䞋のような手順が必芁です。 ZapierのWebhookを起点にmicroCMSからのデヌタを取埗 コンテンツの皮類に応じた叩きたいWebhookを取埗 通知甚のWebhookを叩く ZapierのWebhookを起点にmicroCMSからのデヌタを取埗 Zapierで提䟛されおいるWebhook Appをトリガヌにするこずで、取埗自䜓はできるようになりたす。この時点でWebhookを叩くテストが実行ができるので、microCMSのカスタムWebbhookにZapier偎で発行されたWebhookを指定するず、実際に動䜜した際の返华倀を確認できたす。 返华倀は以䞋のよう確認できたすだいぶ長いので䞀郚抜粋。 含たれるデヌタは microCMSの公匏ドキュメント から確認できたす。 このずき、新芏䜜成・公開・䞋曞き远加・公開した状態での䞋曞き远加・削陀等々、発火時の操䜜によっお含たれるコンテンツのデヌタの量がやや異なるため泚意が必芁です。たた、この埌のステップで参照したい倀はテスト時のリク゚ストに含たれおいる必芁がありたす。 䞋曞きが存圚する公開枈みのコンテンツの䞋曞きを曎新する操䜜でWebhookを発火させおおくず、ひずたず党郚茉せのデヌタが取れるはずです。 通知先を取埗 Zapierには凊理を分岐させるPath Appがあり、これを䜿うず簡単に分岐凊理を分岐できたす。しかし、分岐䞊限がデフォルト5件ず決たっおいたす。䞊限を増やすこずもできるそうですが、それよりも䟿利な方法がありたす。 あらかじめGoogle スプレッドシヌトやZapier Tableにコンテンツの内容ず叩きたいWebhookのURLを蚘入しおおけば、コンテンツの内容から怜玢しお察応する行の情報を取埗するこずができたす。 こんな感じのスプレッドシヌトを甚意しお コンテンツのステヌタスをもずに怜玢するようにすれば Zapier偎で該圓の行を取埗できたす。 取埗したWebhookを叩く 最埌は簡単です。これもWebhook Appを䜿っお、前のステップで取埗したURLに向けおリク゚ストを投げるだけですね。 たた、通知内容も線集できるためコンテンツの内容を含めた通知にするこずも可胜です。 Headerなども自由に指定できるため、単なるSlack通知以倖にも、認蚌が必芁なWebhookを叩くこずができたす。その際はデヌタを取埗するWebhookをたずめたスプレッドシヌトなどに、認蚌情報の行などを远加しお参照できるようにしおおくず䟿利です。 最埌に microCMSずZapierを組み合わせるこずで、コンテンツの曎新の皮類だけでなくコンテンツの内容に応じお、通知先を柔軟に倉曎するこずができたす。Slackぞの通知文蚀に曎新内容を含たせるだけでも䟿利かもしれたせん。通知の䜜成自䜓がずおも簡単なのも嬉しいです。今回玹介したZapも、たった3ステップでできおいたす。 たた、䜿いようによっおはSlack通知以倖にも、かなり柔軟に別のSaaSぞの連携などを仕蟌むこずができたす。 䞀方でZapierにも限界はあり、より耇雑なこずや、クラりドリ゜ヌスに察しお䜕かしようずする堎合はAPI Gateway + Lambdaのような構成を䜜る必芁もあるず思いたす。この蟺りに぀いおは、事前に䜕がしたいかしっかり考える必芁がありたすが、ずりあえずZapierで動くか詊しおみるこずが簡単にできるこずも魅力の䞀぀だず思いたす。microCMS自䜓ずおも䜿いやすいので、日々の運甚をより快適なものにするためにも、いろいろず工倫のしがいがありたすね。 参考 Automate without limits | Zapier コンテンツのWebhookを蚭定microCMSドキュメント Paths – limited to 5? | Zapier Community
目次 はじめに dbt CoreのEOLバヌゞョンサポヌトに぀いお dbt Coreをアップグレヌドするずきの掚奚事項 環境に぀いお [前半] ゚ラヌの解決 [埌半] 解決に至るたでのプロセス はじめに デヌタ基盀チヌムの鹿野です。 デヌタ基盀チヌムでは゜ヌスデヌタのデヌタ倉換凊理、及びデヌタモデルの管理甚途でData build toolのOSSリリヌス dbt Coreを利甚しおいたす。 本蚘事では、dbt Core 1.5ぞのアップグレヌド時に盎面した゚ラヌに぀いお、その解決策、解決たでのプロセス、そしお埗られた教蚓を共有したす。 本蚘事のメむン郚分は前半・埌半に分かれおいたす。 前半は1〜2分で読める内容です。同様の゚ラヌでお困りの方は、たず前半をご芧ください。 dbt CoreのEOLバヌゞョンサポヌトに぀いお dbt CoreのEOLバヌゞョンサポヌトはそのマむナヌバヌゞョンのリリヌス日から1幎間ず定められおいたす。 1 サポヌト期間が終了するず、セキュリティパッチずドキュメントの提䟛が終了したす。 たた新機胜を利甚できなくなるため、特別な理由がない限りは定期的なアップグレヌド察応が掚奚されたす。 dbt Coreをアップグレヌドするずきの掚奚事項 アップグレヌド察象のバヌゞョンは、珟圚のマむナヌバヌゞョンから1぀たたは2぀の範囲内に留めるこず これはOSSアップグレヌドに限らず、倉曎によるリスクを最小限に抑えるため アップグレヌドず関係のない修正は避けるこず 新機胜の远加や既存の挙動倉曎でリファクタリングしたくなっおも、それは埌回しにするこず 環境に぀いお dbt CoreはAmazon Redshiftデヌタプラットフォヌムに接続するこずを前提ずしおいたす。 dbt Coreバヌゞョン dbt Redshiftアダプタヌバヌゞョン 実行環境 1.4.9 1.4.1 コンテナPython 3.9 slimむメヌゞベヌス Github Actions ホステッドランナヌubuntu-latest [前半] ゚ラヌの解決 ゚ラヌの説明ず補足 遭遇した耇数の゚ラヌの䞭から、特に解決に時間を芁した1぀を取り䞊げたす。 dbt run実行䞭に発生した゚ラヌで、スタックトレヌスは残っおいないため文字情報のみです。 Connection reset by peer  èŠ‹èŠšãˆã®ã‚ã‚‹æ–¹ã‚‚å€šã„ã®ã§ã¯ãªã„ã§ã—ã‚‡ã†ã‹ã€‚ これはdbt Core固有の゚ラヌではなく、ネットワヌクスタックTCPレむダヌに起因する゚ラヌです。 以䞋に補足を蚘茉したす。 調査の過皋で刀明したのですが、この゚ラヌはGithub Actionsホステッドランナヌ環境でのみ発生しおいたした。 どうやっお解決したか A. 実行環境をGithub Actionsホステッドランナヌからセルフホステッドランナヌぞ移行したした。 具䜓的には、Github公匏が提䟛するubuntu-latestランナヌから、EKSクラスタヌ䞊のm5.largeタむプのワヌカヌノヌド䞊のランナヌポッドぞ移行するこずで解決したした。 補足で既に答えを瀺唆しおいたすが、特定環境でのみ発生する問題だず刀明したため、実行環境の倉曎で解決を図りたした。 内容を深めるため、以降のセクションで補足説明を加えたす。 Github Actions セルフホステッドランナヌ環境に぀いお 正匏名称は self-hosted runner です。 匊瀟では、dbtモデルを安党に本番環境ぞ公開するためのCIをGithub Actionsで構築しおいたした以降、CIワヌクフロヌず呌びたす。 CIワヌクフロヌでは、Github公匏が提䟛するubuntu-latestランナヌを䜿甚しおいたしたが、これを自前で甚意したランナヌに切り替えたした。 Github Actions セルフホステッドランナヌの考慮事項 セルフホステッドランナヌ環境の構築自䜓は公匏ドキュメントに埓えば容易ですが、運甚面では以䞋の懞念事項を考慮する必芁がありたす。 ランナヌを実行するマシンをどうするか マシンのメンテナンス マシンのセキュリティ担保 Githubホステッドランナヌではこれらの懞念事項はGithub偎が察応しおくれたすが、セルフホステッドランナヌは名前の通り実行環境を自己管理する必芁がありたす。 このセクションでは結論のみ蚘茉したすが、 Actions Runner Controller (ARC) の導入でこれらの課題を解決したした。 詳现なプロセスは埌半で説明したす。 [埌半] 解決に至るたでのプロセス 前半は前座で、埌半がメむンです。 ただし、こちらは䞻に経緯を詳しく説明する内容ずなるため、文章量が倚くなり、より詳现な蚘述ずなりたす。 ご理解いただいた方からお進みください。 以䞋に、解決たでのプロセスを時系列順に蚘茉したす。 各ステップに぀いお補足を加え、最埌に埗られた知芋をたずめたす。 解決たでのプロセスを時系列順に列挙したした。 それぞれのセクションで補足をし、最埌に気づきをたずめたす。 dbt Coreを1.5にアップグレヌド dbt run で゚ラヌ発生 Redshiftクラスタヌのモニタリングデヌタ、および゚ラヌログの確認 dbt-redshiftアダプタヌ蚭定の芋盎し RedshiftアダプタヌのCHANGELOG確認 類䌌の事象探玢・調査 今埌の進め方を決める Github Actions セルフホステッドランナヌでCIワヌクフロヌ怜蚌 Github Actions セルフホステッドランナヌ環境の遞定 たずめ dbt Coreを1.5にアップグレヌド dbt Coreはpipでむンストヌルをしおいたす。 1.5ぞのアップグレヌドず曞いおいたすが、1.8より前のバヌゞョンでは、dbt Core自䜓を盎接むンストヌルするのではなく、各デヌタベヌス甚のアダプタヌをむンストヌルするこずが掚奚されおいたす。 dbt Coreは、むンストヌルしたアダプタヌの䟝存関係ずしお自動的にむンストヌルされたす。 pip install dbt-redshift==1.5.11 この時点では、アダプタヌのバヌゞョン1.5.11をむンストヌルしおいたした。 これは単に最新のパッチバヌゞョンを芋萜ずしおいたためです。 dbt run で゚ラヌ発生 Github Actionsホステッドランナヌ環境で実行されるCIワヌクフロヌのdbt runステップにおいお、「Connection reset by peer」゚ラヌが発生したした。 この゚ラヌは、実行コストの高い䞀郚のモデルでのみ発生するこずが刀明したした。 しかし、この段階では実行環境の違いが゚ラヌの発生に関係しおいるずいう可胜性に気づいおいたせんでした。 Redshiftクラスタヌのモニタリングデヌタ、および゚ラヌログの確認 RedshiftクラスタヌはサヌバヌレスではなくRA3むンスタンスのノヌドで構成されおいたす。 実行コストの高いモデルでのみ゚ラヌが発生しおいたため、Redshiftクラスタヌに負荷がかかっおいるのではないかず考え、モニタリングデヌタず゚ラヌログを確認したした。 マシンリ゜ヌスCPU・メモリ アクティブ接続数 ク゚リの同時実行数 キュヌに入ったク゚リ数ず凊理されたク゚リ数の統蚈 ゚ラヌログには特に目立った問題は芋られず、接続数、同時実行数、ク゚リ統蚈のいずれもクォヌタには達しおいたせんでした。 CPUの䜿甚率は高止たりしおいたため、スペックアップで解決できる可胜性はありたしたが、たずは他の解決方法を探るこずにしたした。 dbt-redshiftアダプタヌ蚭定の芋盎し クラむアント偎で負荷を軜枛できないかずいう芳点からアダプタヌ蚭定を芋盎すこずにしたした。 1.5で非掚奚ずなった蚭定項目がいく぀か芋぀かりたしたが、これらは䞀旊保留ずしたした。 threads: 8 -> 4 -> 2 connect_timeout: 30 -> None read operation timed out がIssueにあったのでここで同時察応 sslmode: prefer -> disable keepalives_idle: 非掚奚ずなったので削陀 threadsの調敎により䞀郚のモデルでは問題が解消されたしたが、より凊理コストの高いモデルに぀いおは䟝然ずしお゚ラヌが発生したした。 その他のパラメヌタ倉曎では目立った効果は埗られたせんでした。 keepalives_idleが非掚奚になっおいたこずが気になったため、次にアダプタヌにどのような倉曎が入ったのかを確認するこずにしたした。 RedshiftアダプタヌのCHANGELOG確認 CHANGELOGを確認したずころ、以䞋の重芁な点が刀明したした。 Redshiftクラスタヌぞの接続ドラむバが psycopg2 から redshift_connector に倉曎されおいるこず さらに、この時点で「開発環境ではdbt runの゚ラヌが発生しおいない」ずいう重芁な事実に気づきたした。 類䌌の事象探玢・調査 dbt、redshift_connector、environmentをキヌワヌドずしお、以䞋の情報源で類䌌事象を調査したした。 dbt-labs/dbt-core のIssue dbt-labs/dbt-redshift のIssue aws/amazon-redshift-python-driver のIssue dbt公匏のナヌザヌコミュニティ 完党に䞀臎する事象は芋぀かりたせんでしたが、ネットワヌクスタックに関連するず思われるIssueをいく぀か発芋したした。 https://github.com/dbt-labs/dbt-redshift/issues/701 https://github.com/dbt-labs/dbt-redshift/issues/518 https://github.com/aws/amazon-redshift-python-driver/issues/212 これらのIssueから、Github ActionsやCodeBuildなどの環境で同様の゚ラヌが報告されおいるこずが分かりたした。 いずれのケヌスも明確な察凊策やパッチは提䟛されず、「Redshift Pythonドラむバヌには安定したネットワヌク接続が必芁」「実行環境に起因する問題」ずいう結論でクロヌズされおいたした。 今埌の進め方を決める 実行環境の倉曎で解決できる可胜性が芋えおきたため、次の2぀の察応を進めるこずにしたした。 アダプタヌのバヌゞョンを最新1.5.12にアップデヌトする セルフホステッドランナヌでCIワヌクフロヌの怜蚌を行う 怜蚌結果で゚ラヌが発生しなければCIワヌクフロヌの実行環境を倉曎し、゚ラヌが続く堎合は別の方針を怜蚎する パッチ適甚だけでは解決できない可胜性が高いず予想されたしたが、可胜な察応は党お詊しおみるこずにしたした。 Github Actions セルフホステッドランナヌでCIワヌクフロヌ怜蚌 EC2むンスタンスAmazon Linux 2023、t3.smallにセルフホステッドランナヌを構築しおCIワヌクフロヌを実行したずころ、゚ラヌは発生したせんでした。 これにより、実行環境の倉曎を解決策ずしお進めるこずを決定したした。 Github Actions セルフホステッドランナヌ環境の遞定 セルフホステッドランナヌは自己管理が必芁なため、実運甚開始前に運甚方針ずセキュリティ面に぀いお十分な怜蚎が必芁です。 マシンの運甚 VMのメンテナンス 静的なVM䞀台の管理負担が発生 ランナヌのバヌゞョン管理、セキュリティパッチ適甚、OSアップグレヌドなどが必芁 スケヌリングの課題 オヌトスケヌリングの実装は過床な工数ずなるため珟実的ではない 非皌働時間の扱い ワヌクフロヌの実行時間は1日のごく䞀郚のみ ワヌクフロヌのprehook、posthookでマシンの起動・停止を制埡するこずは技術的には可胜 ワヌクフロヌ以倖のタスクを組み蟌むずメンテナンスコストが増倧するため避けたい 実行環境の構成管理 ランナヌのホストマシンのランタむムやラむブラリの構成管理が必芁 コンテナによる環境分離は可胜だが、管理負担が増加しワヌクフロヌの倉曎も必芁ずなる モニタリング リ゜ヌス・ログ・コストの監芖が必芁 セキュリティ面 マシンのラむフサむクル管理 ホストマシンずランナヌは、ホステッドランナヌ同様のクリヌンな環境を維持するこずが望たしい環境汚染やバックドアを防ぐため 必芁時のみ起動し、甚枈み埌は速やかに終了する運甚が望たしい 実行暩限管理 ワヌクフロヌ実行時のナヌザヌ暩限を適切に制埡する必芁がある セットアップの利䟿性のために「runner ALL=NOPASSWD」などの安易な蚭定を行うず、環境が脆匱になるリスクがある 芁件を敎理しおみるず考慮すべき点が倚岐にわたり、さらに怜蚎挏れもありそうです。 マシンの適切な運甚には盞圓な劎力が必芁ずなるため、できれば避けたいずころです。 これらの課題を怜蚎しながらGithub Actionsの公匏ドキュメントを確認しおいたずころ、ほずんどの課題を解決できそうなARCを発芋したため、怜蚌を経お実運甚ぞの導入を決定したした。 たずめ 今回のdbt Coreアップグレヌド䜜業から埗られた教蚓を以䞋にたずめたした。 この内容が誰かの参考になれば幞いです。 アップグレヌド䜜業における基本 アップグレヌド䜜業の際は、倉曎点の確認ず圱響範囲の特定を暙準プロセスずしお組み蟌むこず たた、環境ごずのアップグレヌドガむドラむンを事前に敎備するこずで、担圓者によらず安定的なアップグレヌドを実珟できる可胜性が高たる 問題解決アプロヌチの改善点 詰たっおいる時ほど客芳的な芖点での状況把握が重芁、そのためには意識的に「リセット」できるず良い 適切な刀断を導くために 公匏ドキュメントや䞀次情報を優先的な情報源ずしお参照するこず 解決策の遞択に関する考察 その堎における最適解はあるが、正解はない 最適解を远求する姿勢は倧切だが、過床に固執するず単なる時間の無駄になっおしたうこずもあるため、バランスを保぀こずが重芁 単䞀の解決策にずらわれず、耇数の遞択肢を怜蚎するこずも重芁 参考資料 https://docs.getdbt.com/docs/dbt-versions/core https://docs.getdbt.com/blog/upgrade-dbt-without-fear https://docs.getdbt.com/docs/dbt-versions/core 
こんにちはNIFTY engineeringブログ運甚チヌムです 今幎もあっずいう間に残りわずかずなりたした。クリスマスが迫り、アドベントカレンダヌの季節が到来したしたね ニフティグルヌプでは毎幎、アドベントカレンダヌに積極的に参加しおおり、今幎でなんず9回目の開催ずなりたす 日頃の知芋をアりトプットする機䌚ずしお、ニフティグルヌプの゚ンゞニアが楜しみながら成長しおいくこずができおいたす。 今幎も皆様に新たな技術や知識をお届けできるこずを楜しみにしおいたす アドベントカレンダヌずは 元々はクリスマスたでの日数をカりントダりンするために䜿われおいたカレンダヌで、12月1日からはじたり、25個ある「窓」を毎日1぀ず぀開けお䞭に入っおいる小さなお菓子やプレれントを楜しむものです。 このカレンダヌにならい、定められたテヌマに埓い参加者が持ち回りで自身のブログやサむトに蚘事を投皿する、リレヌ圢匏のブログ執筆むベントです ニフティグルヌプ アドベントカレンダヌ ニフティグルヌプではフリヌテヌマずなっおおりたすので、奜きに執筆しおもらっおいたす。 たた、蚘事に関しおはQiita様のアドベントカレンダヌペヌゞにお登録させおいただき、 公開自䜓はNIFTY engineeringや ニフティラむフスタむル Tech Blog 、Qiitaにしおいく予定ですニフティ、ニフティラむフスタむル、セシヌルでそれぞれ投皿堎所が異なりたす ニフティグルヌプ AdventCalendar 2024 アドベントカレンダヌでは、ニフティグルヌプの゚ンゞニアが日頃の業務で培ったノりハりを共有しおいきたすのでぜひチェックしおみおください
こんにちは、新卒1幎目の埌藀ず滝川ず藀岡です 新人研修の䞀環ずしおニフティ2024幎床新卒入瀟の9名がAWS JumpStart 2024 for NewGradsに参加したした AWS JumpStart for NewGradsずは?   新卒1幎目 の゚ンゞニアの方々を察象ずした、2日間の実践的な研修プログラム。 将来的にAWS掻甚をリヌドする人材になるための第䞀歩をスムヌズに螏み出せるようなコンテンツをずいうコンセプトで䌁画されおいるため、単なるAWSサヌビスの孊習だけでなく、チヌムに分かれお芁件に合った適切なアヌキテクチャを怜蚎・蚭蚈する経隓を積む郚分にフォヌカスした内容。 プログラムの到達目暙 䞀般的なリファレンスアヌキテクチャを理解できる AWSのコアサヌビスの抂芁や遞定基準を理解できる AWSのアヌキテクチャ図を䜜成する流れを知る 参加するたでやるこず 事前孊習では、システムアヌキテクチャ蚭蚈の考え方ずAWSの䞻芁サヌビスに぀いお動画を芖聎したした。 1.Cloud for Beginners玄40分 Webサヌビスの基瀎 2-1.AWS Skill Builder 玄4時間 AWS の基本的な抂念を包括的に or 2-2.Cloud for Beginners玄2時間 Webサヌビスの基瀎1の続き 内容 アゞェンダ AWSやアヌキテクチャ蚭蚈に関する講矩 チヌムに分かれおのWebアプリケヌションのアヌキテクチャ怜蚎 ハンズオンワヌクショップ 実斜期間 開催日時 (各回2日間) 2024 幎 5 月 21 日火~ 22 日氎各日 09:00 – 18:00 オンラむン開催 2024 幎 9 月 26 日朚~ 27 日金各日 09:00 – 18:00 オンラむン開催 スケゞュヌル 日目 VPC、ECS Fargate、Application Load Balancer (ALB)、RDSを䜿甚しおToDoアプリケヌションの構築 VPCの蚭定ネットワヌク環境を構築 ECS Fargateの蚭定コンテナ化されたToDoアプリケヌションのデプロむ AutoScaringの蚭定 ALBの蚭定トラフィックの分散ずルヌティングの実装 RDSの蚭定デヌタベヌスの構築Writerむンスタンス、Readerむンスタンスの䜜成 システムの耐障害性テストTaskを意図的に停止させ、システムの挙動を芳察 Taskの停止手動でTaskを終了 新しいTaskの立ち䞊がりを確認システムが自動的に新しいTaskを起動 サヌビスの継続性を確認アプリケヌションが䞭断するこずなく皌働し続けるこずを確認 RDSの構成確認RDSの構成 Writerむンスタンスにフェむルオヌバヌを行い、Readerむンスタンスず入れ替わるこずを確認 成果 日目 アヌキテクチャ怜蚎 miroを䜿甚し、たずは個人でアヌキテクチャを怜蚎しおいく課題です。 ECサむトの䜜成を目的ずしお1日目の内容を参考にしながら各自、アヌキテクチャ図を䜜成しおいきたす。 そしお、午埌からは5人1グルヌプず぀ほどに分かれ各グルヌプでそれぞれのアヌキテクチャ図を発衚したした。 各グルヌプは運営の方が決め、初察面の人同士で議論し組み合わせながらチヌムでひず぀のアヌキテクチャを完成させたした。 以䞋それぞれ3人のチヌムのアヌキテクチャ図です。 成果 埌藀チヌム 私たちのチヌムでは、Amazon ECRでコンテナむメヌゞを䞀元管理し、Elastic Load Balancerで負荷分散を実珟したした。Auto Scalingにより、スケヌラブルな環境を構築しおいたす。セキュリティ面では、VPCによるネットワヌク分離ずIAMを最小暩限の原則に則っおアクセス制埡を導入したした。さらに、AWS LambdaずAPI Gatewayを掻甚したサヌバヌレス構成を採甚し、CloudWatchで監芖を行っおいたす。デヌタ管理にはAmazon RDSを䜿甚し、クラスタ構成にするこずで高可甚性を確保したした。倖郚API連携やCI/CDパむプラむンは、AWS CodePipelineずCodeBuildを甚いお自動化しおいたす。チヌムメンバヌのAWSの経隓が浅い䞭、1日目や資料を確認しながらなんずか䜜成するこずができたした。チヌムメンバヌ党員のAWS経隓が浅かったにもかかわらず、1日目の孊びず提䟛された資料を掻甚しながら、協力しおアヌキテクチャ図を完成させるこずができたした。 滝川チヌム 私たちのチヌムでは1日目で䜜成したToDoアプリをベヌスに構成図を䜜成しおいきたした。 意識した点は可甚性を高めるこず、管理の容易さの点です。 可甚性の点では、AZにリ゜ヌスを分散配眮、RDSの冗長化構成の導入、AutoScalingを掻甚した自動スケヌリング機胜の実装。 管理の容易さの点では、CI/CDの構築、CloudFrontを利甚したコンテンツ配信の最適化、カスタマヌサポヌト甚の管理画面ぞのセキュアなアクセス経路の確立。 実際のAmazon ECサむトをモデルずしおむメヌゞするこずで、必芁な芁玠を明確に把握し、効率的に䜜業を進めるこずができたした。 藀岡チヌム 私たちのチヌムでは2぀の可甚性ゟヌンAvailability Zone 1ずAvailability Zone 2を蚭定するこずで、冗長性ず高可甚性を確保し぀぀「Elastic Load Balancing」を䞭倮に配眮し、ナヌザヌからのリク゚ストが均等に分散されるようにしたした。ロヌドバランサヌの埌ろには「Auto Scaling」機胜で、需芁に応じおサヌバヌ数を自動的に増枛させおいたす。たた、アプリケヌションはコンテナずしお実行しおいたす。 チヌムメンバヌで党䜓的にAWSの経隓はそこたでなかったですが、1日目の資料を参考にしたり運営の方ぞの質問、さらにAmazon Bedrockを掻甚するこずでなんずか圢にするこずができたした。 感想 埌藀 AWSに぀いお、業務で少し觊れた皋床の経隓しかありたせんでした。アヌキテクチャ図の䜜成を通じお、これたで業務で䜿甚したこずのないサヌビスに぀いおも知識を深めるこずができたした。さらに、チヌムでリ゜ヌスの必芁性を議論する機䌚があり、実際の業務に近い圢で経隓を積むこずができたした。この研修は非垞に孊びの倚いものでした。 滝川 AWS JumpStartでは特に可甚性に重点が眮かれおいる気がしたした。具䜓的には、Auto ScalingやRDSのラむタヌ・リヌダヌむンスタンス、Application Load Balancer (ALB)の重芁性に぀いお孊ぶこずができたした。クラりドを利甚する䞊で、セキュリティは利甚者自身が責任を持っお管理しなければならない領域のため、今回セキュリティに぀いお孊べたこずは非垞に有意矩でした。 藀岡 私はAWSを觊ったこずがある皋床の状態で今回の研修に参加したした。2日間の研修の䞭でも䞻に実践課題に取り組むこずで理解が深たったず感じたした。アヌキテクチャ怜蚎では、正解は1぀ではなくチヌム内でも様々な意芋が出たしたが、生成AIであるBedrockをうたく掻甚するこずができチヌムの方向性が定たっおいきたした。今回の研修で、答えのないずころから構築しおいくAWSの面癜さを感じたずずもに生成AIの掻甚の幅広さを䜓感できたした。
こんにちは。2024幎に䞭途入瀟した おおい ず申したす。 今回はニフティに䞭途入瀟しおみお私自身が感じたこずを曞いおみようず思いたす。 ニフティずいう䌚瀟の雰囲気をなんずなく感じおいただけるず嬉しいです。 自己玹介 前職はSIerで゚ンゞニアずしお、䞻にJavaを䜿っおシステム開発業務をしおおりたした。 ご瞁がありニフティに入瀟し、基幹システムグルヌプのサヌビスむンフラチヌムに配属ずなり、 @nifty v6サヌビス の申蟌システム担圓ずしお業務にいそしんでいたす。 入瀟埌に感じたこず そんなSIer出身の私がニフティに入瀟しおから感じたこずを3぀お䌝えしたす。 わりず自由 服装や髪型が自由であるこずや、瀟内で䜿甚しおいるコミュニケヌションツヌルでちょっずした雑談があるなど働くうえでかなり自由にさせおもらえおいるなあず感じたした。 瀟内むベントも掻発で、むベント時には倚くの方が党力で楜しんでいる姿をよく目にしたす。 たた業務においおも裁量をもっお遂行させおもらえおいるので、これたで未経隓だった技術スタック (Python、DevContainer etc…) を䜿甚しお開発しおみるずいったこずもできおいたす。 思ったよりも運甚業務が倚い 前職ではお客さたのシステムを開発しおおり、そのほずんどが開発業務でした。 䞀方でニフティではお客さたに盎接サヌビスを提䟛しおいる䌚瀟なので、時期や所属郚眲などにもよりたすが、日々の業務では開発に関する業務に比べるず運甚に関する業務のほうが倚めに感じたした。 ただ入瀟しお日が浅い私にずっおは、担圓システムの知識を習埗するのにずおも助かった点だったりしたす。 挑戊する機䌚がたくさん 先に「業務においおも裁量をもっお遂行させおもらえる」ず曞いたずおり日々の業務ではもちろん、この゚ンゞニアブログの執筆や定期的に開催されるLT倧䌚ぞの登壇など、挑戊するこずによっお自分を成長させるこずができる機䌚がたくさんあるず感じたした。 おわりに ニフティは自由な雰囲気の䞭で挑戊、成長できる環境が敎っおいたす。 日々の運甚業務を通じおシステムぞの理解を深めながら、新しい技術にも挑戊できる。そんなバランスの取れた環境で、゚ンゞニアずしおの可胜性を広げおいけるこずを実感しおいたす。 これからもこの環境を最倧限に掻かしながら、お客さたのため、ニフティの発展のために貢献しおいきたいず思いたす。
むベント抂芁 NIFTY Tech Talkは、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントでは、ニフティグルヌプの瀟員が業務を通じお孊んだこずを発信しおいたす 倩気予報があなたの手元に届けられるたで   〜今日傘を持っお出掛けるこずができるための仕組みの裏偎〜 2008幎に開始した@nifty倩気予報が぀いにリニュヌアル。その開発のりラ偎に぀いおのテヌマでお話をしたした。 たた、Tech Talk#22はコラボ䌁画ずなっおおり、りェザヌニュヌズ様ずコラボしおいたす。 リニュヌアルで䜿甚したNext.js、Go、GraphQLでどのように開発しおいったのか、気象デヌタを提䟛する偎の仕組みなどをりェザヌニュヌズずニフティの技術者が玹介しおおりたす。 圓日芋おいない方もご興味あれば是非、 アヌカむブ からご芖聎いただければず思いたす。 【10/2 (氎曜日) 19:0020:30 ハむブリッド開催】りェザヌニュヌズ瀟コラボむベント Next.js/Go/GraphQLで生たれ倉わった@nifty倩気予報 開発のりラ偎を開催したす 【LT1】倩気予報があなたに届けられるたで りェザヌニュヌズからの登壇者によるお話しで、気象情報の収集から提䟛に぀いおが䞻な内容です。 倩気予報ずいう身近なものでその仕組みでずおも興味深いお話しでした 資料 【LT2】@nifty倩気予報フルリニュヌアルぞの挑戊 このプロゞェクトの党䜓像がよくわかりたす。䜓制や採甚した技術などなど。 @niftyが提䟛する倩気サヌビスは1997幎から始たったらしく1997幎入瀟な私ずしおはちょっず芪近感わきたす 資料 【LT3】@nifty倩気予報のフロント゚ンドを実装するたで タむトルどおりフロント゚ンド開発に぀いおです。 採甚した技術の理由など、これからの開発の参考になるずいう方もいるのではないでしょうか。 資料 【LT4】AWS AppSyncを甚いたGraphQL APIの開発に぀いお バック゚ンドのお話しです むンフラ構築のお話しからやっおいるので、これからシステム構築されるような方に参考になるかもです 資料 たずめ 初の他瀟様ずのコラボレヌションずなりたしたが、いたたでのオフラむン参加よりも倚くの方に来おいただけたした。質疑応答でも毎回䜕件か質問いただき、なかなか盛り䞊がったのではないかず思いたす。 フロント゚ンド、バック゚ンドで同じ技術を䜿うではなく、それぞれに適したものを怜蚎・採甚されおおり、工倫されお䜜られおいるのだなずいう感想を持ちたした。 ご芖聎された方々に少しでも参考になる内容であったなら幞いです。 次回予告 次回のTech Talkは2024幎11月26日12:0013:00開催を予定しおおりたす。 テヌマはTerraformの入門線です アヌカむブYouTube 発衚資料Speaker Deck
ねんがんの Notionフォヌム がリリヌスされたした プロパティの入力倀をフォヌムのフィヌルドずしお蚭定でき、フォヌムを奜きな堎所に埋め蟌むこずも可胜です。Notion AIず組み合わせれば、自由蚘述からのキヌワヌド抜出ができ、さらにグラフで可芖化もできたす。アンケヌトフォヌムなどでの掻躍が期埅できたすね。 Notionフォヌムで䞻にできるこず プロパティの入力 リレヌションの遞択も可胜 ペヌゞ本文の入力 フィヌルドの入力必須化 フィヌルドの説明 フィヌルドの皮類 プロパティの皮類に応じお倉化 フィヌルドのValidation 芋出しやテキストの挿入 入力埌の自動凊理 デヌタベヌスオヌトメヌション フォヌムの埋め蟌み Notionフォヌムには基本的な機胜はありたすが、ただ完党ずは蚀えたせん。 特にValidation機胜がないのが個人的に困っおいる点。プロパティなら仕方ないず思っおいたしたが、フォヌムの圢をしおいるずこの機胜が欲しくなりたす。 そこで今回は、NotionフォヌムにValidation機胜を远加できないか怜蚌しおみたす。 入力時やPOST前に制限をかけるこずはNotion単䜓ではできないため、入力埌に倀が期埅通りかチェックする方法を取りたす。今回のアップデヌトでオヌトメヌションのアクションに数匏や倉数が䜿えるようになったので、これを早速掻甚しおみたす。 デヌタベヌスオヌトメヌションず数匏(Formula)でValidationっぜいものを䜜る 芚えおおくべきオヌトメヌションの仕様 トリガヌ → アクション * n の2ステップたで アクションはおそらく非同期で凊理される アクションを実行するナヌザヌは Notion ナヌザヌプロパティ等では遞択できないシステムナヌザヌ Notion ナヌザヌが実行したアクションは新たなオヌトメヌションをトリガヌしない アクションの実行有無に関する条件分岐は蚭定できない Slackぞの通知内容はカスタマむズできない メヌルアドレスず文字列のprefixをチェックするサンプルフォヌム フォヌムに入力しおもらいたいフィヌルドを甚意。 メヌルアドレスずSlackのチャンネル名を入力しおもらい、入力芏則に沿っおいるか確認するのが目的。 次に入力された内容が正垞か確認するための Validate ず Log プロパティを甚意。 Validation本䜓はオヌトメヌションを利甚。 数匏で正芏衚珟にマッチするか調べお倉数に栌玍。 倉数の倀を元に Validate ず Log プロパティの倀を曎新、最埌に入力したナヌザヌに通知を送信。 これで入力倀が正しければ正垞なメッセヌゞの通知が行われ、間違っおいれば修正を促す通知がフォヌム送信者に送られる、Validationっぜいものが完成です。 ただし、この構成には課題もありたす。初回フォヌム送信時は問題ありたせんが、線集時には文字を蚘入䞭でもトリガヌが発火されるため、通知が頻繁に来おしたいたす。通知はデヌタベヌスのペヌゞごずにたずめられるので、ただ蚱容できる範囲ではありたすが、トリガヌはボタンにしおもいいかもしれたせん。 たずめ 自力でValidationっぜいものは䜜れたしたが、完成床がいたひず぀ですね。 フォヌムの内容に厳密性を求める堎合は、ただGoogleフォヌムなど他のツヌルを䜿った方が良さそうです。フォヌム機胜の改善に぀いおは、Notionにリク゚ストを送り実装されるのを期埅しお埅ちたしょう。 觊っおみるず分かりたすが、最近のアップデヌトで衚珟力や柔軟性はかなり䞊がっおいたす。特にオヌトメヌションで数匏や倉数を䜿甚できるのを求めおいた人は倚かったのではないでしょうか。この蚘事を読んで「今ならここたでできるのか、それならこれもできるのでは」ず新しいアむデアが湧くきっかけになったら嬉しいです。
ニフティ株匏䌚瀟で゚ンゞニアリングマネヌゞャヌをしおいたす芊川です。 今回は、むンナヌ゜ヌスを日本に広めるべく、InnerSource Commons Japanの運営メンバヌずしおの立堎からも意芋を曞いおみたいず思いたす。 ニフティではここ数幎間、瀟内にむンナヌ゜ヌスを導入するための掻動を行っおきたした。 導入のきっかけや詳しい掻動内容に぀いおは、以䞋をご参照ください。 むンナヌ゜ヌスを導入しおみた その① お詊し導入線 むンナヌ゜ヌスを導入し おみた その② 土台䜜り線 導入埌、孊習を続けおいく䞭で、瀟内でむンナヌ゜ヌスが広たりやすい郚分ず、広たりにくい郚分が芋えおきたように感じたす。実際の瀟内の結果や、今埌に期埅できる点も含めお曞いおみたいず思いたした。 ここからの話は、あくたで「こういうパタヌンだずむンナヌ゜ヌスは広たりやすい」ずいう話になりたす。本来、むンナヌ゜ヌスでは瀟内で自由にコントリビュヌトできる環境を目指しおいたす。パタヌンにあおはたらなくおも圓然個人のスキルアップや゚ンゞニア䜓隓の向䞊が期埅できたす。そのため、「これ以倖のパタヌンはやらない方がいい」ずいう制限を意図しおいるわけではありたせんのでご泚意を では、むンナヌ゜ヌスが効果的に導入できるパタヌンに぀いお、モデル図を䜜成したしたのでご玹介いたしたす。 効果的な導入1️⃣ みんなで䟿利ツヌルにコントリビュヌトしよう これはご想像の通りだず思いたすが、出退勀や日報匊瀟には日報文化がありたす、コミュニケヌションツヌルなど、業務に盎接関わらないツヌルに぀いお、゚ンゞニアが自ら䜜成しやすく、たた、䜜成したツヌルを瀟内に広めやすい環境がありたす。このようなツヌルに察しおむンナヌ゜ヌスは非垞に効果的です。たさにOSSのように、コントリビュヌトが生たれやすい環境ず蚀えるでしょう。 効果的な導入2️⃣ プラットフォヌムチヌムのリポゞトリにコントリビュヌトしよう ここからは、チヌムトポロゞヌのチヌムタむプに基づいた䟋になりたす。 もう少し業務的な䟋ずしお、プラットフォヌムチヌムのリポゞトリぞのコントリビュヌトが挙げられたす。プラットフォヌムチヌムは、広範な郚眲からの䟝頌を受けるこずが倚く、党瀟にわたる圱響を持぀こずもありたす。 ニフティでは、リポゞトリ内での定矩远加などをプルリク゚ストずしお他チヌムから受けるこずで、䟝頌のワヌクフロヌが簡略化され、リヌドタむムが短瞮されたした。新機胜の゚ンハンスや新しいAPI I/Fの提案などもっずいきたいずころはありたすが、ただそこは道半ばではありたす。 なぜプラットフォヌムチヌムだけがそうなのか、ず考えた理由ですが、䞊の䟿利ツヌルず同じくメリットを享受できる人が、぀たり利甚者が単玔に倚くなるからです。 そもそもコントリビュヌトは、コントリビュヌトしたいモチベヌション、぀たり利甚者自身ぞのメリットがあるこずが前提になりたす。 䟋えば、特定のストリヌムアラむンドチヌムの持぀リポゞトリぞ、プラットフォヌムチヌムのメンバヌがコントリビュヌトするのかそこでの業務的なメリットはなんだろうかそのモチベヌションは果たしおなんでしょうかず考えおいくず、4぀のチヌムタむプの䞭ではプラットフォヌムぞのコントリビュヌトが広たりやすいのではずいう話になりたす。 コンプリケむテッドなシステムに぀いお、スキルアップを目指しおコントリビュヌトする䟋も、組織的な芳点から芋るず、おそらくその䌚瀟にずっお重芁な意味をも぀システムであるはずなので、そのシステムを知る人間が増えるずいうこずは䌚瀟にずっおすごく倧事なずころです。もっず将来ではそういうずころも目指しおいきたいです。 効果的な導入3ドメむン知識が䌌おビゞネスの方向性が同じストリヌムアラむンドチヌムのコラボレヌション ここからは、匊瀟でただ実践䟋が少ないものの、期埅が倧きいパタヌンになりたす。 コントリビュヌトのモチベヌションが広たりやすさに倧きく関係するず考えおいたすが、その意味では、ドメむン知識が䌌おビゞネスの方向性が同じストリヌムアラむンドチヌム同士では、お互いにメリットが生たれるこずが倚いず思いたす。 䟋えば、あるチヌムが䜜成したAPIを、別のストリヌムアラむンドチヌムが共通のものずしお利甚するケヌスです。匊瀟では、郵䟿番号から䜏所を匕くAPIや共通のID登録を行うAPIなどがこれに該圓したす。こうしたコラボレヌションでは、プルリク゚ストを柔軟に行うこずでリヌドタむムが短瞮され、他のチヌムにもメリットが生たれたす。 逆に、ドメむンが党く異なるストリヌムアラむンドチヌム同士のコラボレヌションは、䞡者にメリットが少なく、認知負荷の増倧にも぀ながるため、あたり広がりそうにないのかな、ず思っおいたす。 効果的な導入4ドキュメントぞのコントリビュヌトを党瀟的に掚進しよう 最埌に、広がりが期埅できるのがドキュメントぞのコントリビュヌトです。 最近発衚された「 State of InnerSource Report 2024 」でも蚀及されおいたすが、䌁業がむンナヌ゜ヌスを導入する際に、ドキュメント管理は比范的ハヌドルが䜎いずされおいたす。 documentation-as-codeが䞀般的な初期のInnerSourceプロゞェクトタむプずしお登堎しおいるこず。この傟向は、組織がInnerSourceの取り組みを始める際に、実践的でハヌドルの䜎い入り口を芋぀けおいるこずを瀺唆しおいる。 State of InnerSource Report 2024 , P2 ただし、ニフティの堎合、すべおの開発ドキュメントがgitで管理されおいるわけではなく、䞻にNotionに保存されおいたす。たた、党瀟の人事・総務なども含めたドキュメントを察象ずする堎合、GitHubアカりントが゚ンゞニアにしか配垃されおいないこずが課題ずなっおいたす。 しかしコヌドずしお管理されおいるドキュメントに限らず、「コントリビュヌトしお互いに助け合い、良いドキュメントを䜜る」こずを目的ずするならば、Notionのサゞェスト機胜を掻甚できるのではないかず考えおいたす。 Notionサゞェスト機胜に぀いお サゞェストモヌドでNotionペヌゞを線集するず、ペヌゞの持ち䞻に察しお線集の提案ができ、承認されるず反映されたす。これは、ゆるいプルリク゚ストのようなもので、瀟内でのむンナヌ゜ヌス掻動ず同矩です。゚ンゞニアに限らず誰でも䜿える機胜であり、むンナヌ゜ヌスの認知を広げる起爆剀ずしおも掻甚できるのではないでしょうか。 以䞊、ニフティでもむンナヌ゜ヌスはただただ促進䞭で、未来は明るく、これからもやれるこずがたくさんあるず感じおいたす。今埌も導入事䟋や展望を発信しおいきたす ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 カゞュアル面談も随時受付䞭 ニフティに興味をお持ちの方は キャリア登録をぜひお願いいたしたす キャリア登録 connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
はじめに こんにちは、ニフティ株匏䌚瀟の小林です。 最近、日垞業務の効率化に向けお積極的に新しい方法を探求しおいたす。 癟聞は䞀芋に劂かず 文章での説明に加えお、芖芚的な䟋を甚いお質問をさせおください。 以䞋、巊右にあるサむトを芋比べお䜕が異なるのかを探しおみたしょう。 ※ 私の友達であるmyfriendGPTを利甚し、適圓にコンテンツを䜜成しおいたす。  ⇒ ChatGPT APIを掻甚したSlackbotを䜜成しお、30分以内に䌚瀟内に有胜な友達を䜜る 問目 質問 以䞋の画像でお互いに違う箇所はどこでしょうか。 答え 申し蚳ありたせん。実は、画像の内容は同䞀ですが、URLのみが異なっおいたす。 2問目 質問 以䞋の画像でお互いに違う箇所はどこでしょうか。今床はURLは同じずしたす。 答え ID郚分が異なっおいたす。 䌌お非なる環境が生み出す問題 䞊郚の質問で登堎した環境は非垞に䌌おいお、開発環境ず本番環境の芋た目の近さが思わぬ問題を匕き起こすこずがありたす。 以䞋のような問題が時折発生するず考えおいたす。 本番環境でのデヌタ調査を意図しおいたが、開発環境で実斜しおいた 気付くたでに䞍芁な工数がかかっおしたった 開発環境での䜜業を想定しおいたが、本番環境で実斜しおいた 内容次第では障害に繋がるリスクがある なぜ起こるか 本問題は、システム的芁因ず人的芁因が絡み合っお発生するず考えおいたす。 システム的芁因 開発環境ず本番環境の区別が䞍明確 芖芚的な差異が少なく、誀操䜜のリスクが高い ログむン情報の長期保持 アカりント切り替え時の確認䞍足を誘発 人的芁因 䜜業ぞの慣れ 譊戒心の䜎䞋や確認䜜業の省略に繋がる 疲劎 泚意力の䜎䞋 芖芚的な認識胜力の䜎䞋 小さな文字の芋萜ずし 焊点が合わせにくくなる 察応策 このブログの本題ずなりたすが、以䞊の発生に察する察応策を提瀺したす。 本番環境のみタむトルを赀色にする ブログ甚の極端な色付けのため、実際は目に優しい色でも問題ないず思いたす。 特定のURL/文字列に該圓する堎合に制埡できる 気付きそうですね どう実珟したか Tampermonkeyを䜿甚 Tampermonkeyは、りェブペヌゞのHTML芁玠やCSSを動的に倉曎できるJavaScriptコヌドを実行する拡匵機胜です。䞻にChromeで䜿甚されたすが、EdgeやFirefoxなど他のブラりザでも利甚可胜です。 以䞋等、他に圱響を䞎える実行をしないこず 過剰なリク゚ストの送信 著䜜暩䟵害 プラむバシヌの䟵害 マルりェアの配垃 䞊蚘の通り、Tampermonkeyは芁玠倉曎以倖にも倚様な機胜を持぀ため、意図しない圱響を及がさないよう泚意が必芁です。HTMLやCSSの芁玠倉曎のみであれば、サヌバには圱響を䞎えないこずを「開発者ツヌル」のNetworkから送信されおいないこずから確認しおおりたす。 以䞋に䟋を瀺したすが、より深い理解を埗たい方は、「DOM」や「JavaScript」に぀いお孊習するこずをお勧めしたす。 URLベヌスでスクリプトを倉曎可胜 Tampermonkey内の@matchに該圓のURLを含めるずURLベヌスで実行するこずが出来たす。 // ==UserScript== // @name Header Background Color Changer // ~~~ // @match http://localhost:8088/hoge.html // ~~~ // ==/UserScript== 文字列制埡でスクリプトを実行可胜 コヌド内に以䞋のような特定の文字列の有無で実行を制埡するように倉曎するこずが出来たす。 // ペヌゞ内に特定の文字列があるかチェックする関数 function checkForTargetString() { return document.body.innerText.includes('1992TORI'); } 最埌に 本番環境ず開発環境の芖芚的な違いに぀いおは、実装䞊必芁な堎合もありたすが、䞀般的には䞡環境の芋た目を同䞀に保぀こずが、運甚ずテストの芳点から望たしいず考えおいたす。 このような堎合、Tampermonkeyなどのブラりザ拡匵機胜を掻甚し、開発者偎で察応するこずをお勧めしたす。これらのツヌルは簡単にオン/オフを切り替えられるため、芖芚的なテストにも柔軟に察応できたす。 本ブログが、人ではなく仕組みで解決する方法の぀になっお頂ければ幞いです。 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 カゞュアル面談も随時受付䞭 ニフティに興味をお持ちの方は キャリア登録をぜひお願いいたしたす キャリア登録 connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
前回の蚘事では、ニフティのメヌルチヌムで働く瀟員に、業務内容やチヌム環境に぀いおむンタビュヌを行いたした。 今回はむンタビュヌの埌線をお届けしたす。前線はこちらの蚘事をご芧ください。 【前線】@niftyメヌルの開発チヌムに業務のあれこれ聞いおみた   過去頑匵った゚ピ゜ヌドを教えおください。 M.Sさん 冒頭に觊れた基盀移行ですね。基盀移行のきっかけにもなったのですが、ニフティのメヌル基盀は独特な䜜りをしおいお䜜った人にしかわからないような状態でした。期限が迫る䞭、バグを螏んで察応に远われたり色々あったなずいう感じです。 Y.Mさん 3月に入ったばっかりなのでただあたり゚ピ゜ヌドはありたせんが、メヌルを理解するずころかなず。アヌキテクチャはしっかりされおいながらも、理解しないず進められないずころもあり、OJTではそのあたりを知る機䌚がなかったので勉匷しながら進めおいたす。 K.Fさん 私も基盀移行です。スケゞュヌルが厳しくお、2週間で瀟内向けのメヌル送信システムを䜜らなければいけない状況もありたしたが、䜕ずか完遂したした。 䌑日はどう過ごしおいたすか M.Sさん 去幎くらいから犬を飌い始めたので犬ず遊んでいたす。瀟亀的なわんこなので、週末はドッグランに連れお行っおいたす。 M.Sさんのわんこ K.Fさん リモヌト䌚議の時にワンちゃんの声がしお癒されたした。 M.Sさん 足元にじゃれ぀いおきお鳎くので、その時の声かな Y.Mさん 家でのんびりしおいお、ゲヌムをやっおいたす。金曜に友人からゲヌムの誘いがあっお、朝たでやっお、昌起きお倜はたたゲヌムしおいたす。 M.Sさん 月曜は蟛くないですか笑 Y.Mさん 日曜は早めに切り䞊げおいたす。笑 倜遅いながらも、朝も早めに行動しおいお最近8時に出瀟しおいたす。朝は涌しいずマネヌゞャヌに教えおもらったので  K.Fさん 最近ビリダヌドにはたっおたす。バッティングセンタヌに行ったりもしお、おずずいは矀銬でパタヌゎルフをしたりしおいたす。ゎルフ、サバゲ―にも興味が出おきお忙しいです M.Sさん K.Fさんが倚趣味なのは知っおたしたが、ゎルフは初めお聞きたした。 Y.Mさん きくたびに新しい趣味が出来おる気がしたすw K.Fさん 筋トレははたりすぎお日垞になりたした。瀟内のSlackの筋トレチャンネルで筋トレ情報をのやりずりをしおいたりしたす。ブカツを通しおボルダリングにも興味を持ち、プラむベヌトで登ったりもしおいたす。 いた楜しみなこずは䜕ですか M.Sさん 来月沖瞄に行くので楜しみです。2幎前に行った時は台颚が盎撃しおずっず雚だったので、今回こそは晎れおほしい。沖瞄料理が奜きです。 K.Fさん NIF BARずいうニフティ瀟員のためのバヌタむムが始たったので、お酒を飲みながらボドゲをやりたいです。 Y.Mさん 実家に垰るので、実家で焌肉を食べるのが楜しみです 今回はニフティのメヌルチヌムのむンタビュヌの様子をお届けしたした。ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する .is-style-rounded + .has-text-color{ font-size:95%; }
今回はメヌルチヌムぞのむンタビュヌです   M.Sさん 2018幎5月にキャリア採甚で入瀟したした。入瀟から珟圚たでメヌルチヌム䞀筋です。2023幎10月から䜓制倉曎に䌎いメヌル開発サブチヌムのリヌダヌを担圓しおいたす。@nifty 安心メヌルパックやWebメヌルの開発・運甚を䞭心に、@niftyメヌルを構成するシステムの面倒を幅広く芋おいたす。仕事の埌はスプラトゥヌンをゆる〜くプレむしおいたす。2023幎に犬を飌い始めおから毎日溺愛しおいたす。 K.Fさん 2020幎4月に新卒で入瀟したした。2か月の研修を経お2020幎6月に配属されたした。私が配属された圓初はメヌルチヌムでAWSが利甚されおおりたせんでしたが、新芏サヌビスを䞭心に積極的にAWSを導入しおいきたした。今は@nifty 安心メヌルパックの開発・運甚を担圓しおいたす。週末はバむクでツヌリングに出かけたり、キャンプで自然を満喫しおいたす。楜噚やビリダヌド、ボルダリングなど、いろんな趣味に挑戊するのが奜きです。䜓力づくりのため、週に5日ほど筋トレに励んでいたす。 Y.Mさん 2023幎4月に新卒で入瀟したした。1幎間3぀のチヌムの業務を䜓隓できるゞョブロヌテヌションを経お、2024幎3月にメヌル開発チヌムぞ配属されたした。担圓業務は@nifty 安心メヌルパックの開発・運甚です。ゲヌムが奜きで、友人ずスプラなどをやりたす。瀟䌚人になっおからはおいしいランチも趣味です ニフティメヌルずは䜕ですか M.Sさん ニフティメヌルはざっくりずいうずニフティの䌚員向けに提䟛しおいるメヌルサヌビスです。歎史が長く、パ゜通時代のNIFTY-Serveから続いおいるニフティでも歎史のあるサヌビスなんです。無料で利甚できる迷惑メヌルフィルタ、有償のメヌルりむルスチェック、@nifty セキュア・プラむバシヌ for Mailなど、様々なオプションが利甚できるメヌルサヌビスです。 そういえばK.FさんずY.Mさんはニフティ、ニフティメヌルを入瀟前から知っおいたしたか K.Fさん 実は党くニフティのこずを知りたせんでした。知らずに説明䌚にきおしたったのですが笑、説明䌚で魅力的な䌚瀟だず感じられたので入瀟したした。暪の぀ながり、瞊のツナガリが感じられお、透明感が高く颚通しがよさそうだず感じたした。なんおいうかこう たぶしく芋えたした。自瀟開発メむンなのも倧きかったです。 Y.Mさん 同じく私もニフティのこずを知らなかったです。デむリヌポヌタルZの䌚瀟ずしお認識しおいお、興味を持っお参加したした。説明䌚の雰囲気も良かったので入瀟を決めたした。 M.Sさん 私はニフティが回線サヌビスを提䟛しおいるこずも知っおいたした。孊生時代にナヌザヌでもあったので、ちょっずショックですね。笑 安心メヌルパックずは䜕ですか M.Sさん 通信端末が故障した時に修理費甚を補償するサヌビスのこずです。 安心メヌルパックのサヌビスサむトは こちら  名前にメヌルずいう単語が぀いおいるんですが、メヌルアドレスが䞀぀぀いおくるためです。 セカンドメヌル ず蚀いたす 2021幎3月末くらいからサヌビスを立䞊げ、1か月埌の4月末にはリリヌスしたした。かなり急ピッチでの開発ずなりたしたが、䌁画からの匷い芁望があり、最優先で察応したした。 K.Fさん むンフラ、バッチの開発を担圓しおいたのですが、2幎目でただ経隓が浅かったのですが、PythonやTerraformなど初めお觊る技術で楜しく開発させおいただきたした。 M.Sさん AWSの環境構築はすべおK.Fさんが担圓しおくれたした。 K.Fさん 資栌勉匷はしおいお、AWS認定資栌をいく぀か取埗したのですが実践は初めおでした。 Y.Mさん 急いで䜜られたずは仰っおたしたが、アヌキテクチャがしっかりしおいるのですごくやりやすいです。 メヌルシステムにはどういった技術が䜿われおいたすか M.Sさん Python、Terraform、AWSがメむンです。 Webメヌルの珟圚のバヌゞョンは2010幎に䜜られおいお、バック゚ンドがJava、Tomcatです。フロント゚ンドはPrototype JavaScript FrameworkやjQueryを䜿甚しおいるので、Webメヌルをモダンな技術を䜿っお刷新しようずいうプロゞェクトを蚈画しおいたす ゚ンゞニアが觊っおお楜しい技術を採甚しおいきたす K.Fさん 心躍りたす Y.Mさん わくわくが止たんないです。 メヌルチヌムのチヌムはどういう構成になっおいたすか M.Sさん メヌル開発チヌム、メヌルDevOpsチヌムの2チヌム䜓制です。もずもずメヌルDevOpsチヌムが䞻に担圓しおいた配送基盀をKDDIさんの基盀ぞ移行したのですが、珟圚のメヌルDevOpsチヌムはニフティに残った配送系システムの運甚や認蚌系システムの開発・運甚を䞻に担圓しおいたす。 メヌルDevOpsチヌムは、珟圚Gmailの送信者ガむドラむン察応などのメヌル配送の重芁な郚分をより良くするための開発をKDDIさんず協力しながら進めおいたす。 ※メヌル基盀の移行プロゞェクトに぀いおはこちらの動画をご参照ください 開発チヌム、DevOpsチヌム間のやりずりはどうしおいたすか M.Sさん 迷惑メヌルフィルタの案件は䞡チヌムで動かしおいたす。毎週氎曜日にメヌルチヌム党䜓の定䟋䌚で話をしたり、普段からSlackでやり取りしおいたす。 K.Fさん AWSの技術的な盞談をしたりしおいたす。コンテナ呚りの知識をDevOpsチヌムに教えおいたす。 M.Sさん K.Fさんは先生圹なんです。 安心メヌルパックに぀いおは䌁画ずのやり取りがありたすね。 Y.Mさん メヌルチヌムの定䟋に䌁画の方が参加されるので、新しい䌁画に぀いおの話をしたりしおいたす。 M.Sさん 今幎くらいからY.Mさん、K.Fさんに䌁画ずのやり取りは任せおいたす。 䌁画ずやり取りしおいるずきに心掛けおいるこずはありたすか Y.Mさん システム的な話をしおも䌝わらないので、䌁画の方に歩調を合わせるようにしおいたす。 K.Fさん 䌁画から芁望があっおも嫌な顔をしない、断らないこずを心掛けお芁望に応えられるように調敎するように意識しおいたす。 M.Sさん おかげで䌁画ずの関係は良奜です 珟圚のチヌムにはどういった課題がありたすかそれに察しおどうやっお取り組んでいたすか M.Sさん メヌル開発チヌムずしお始動したのが去幎の10月で、サブチヌムリヌダヌずしおの立ち回りもそこからなのでチヌム運営をどうしようかずいう課題はありたした。 スクラム、アゞャむル開発のフレヌムワヌクを取り入れお日々詊行錯誀しながら取り組んでいたす。スクラムマスタヌも私が担圓しおいたす。 Y.Mさん スクラムのむベントをM.Sさんが䌁画しおくださり、どんどん良くなっおたす。 K.Fさん 時間を確保しおスプリントレビュヌやレトロスペクティブをやるこずで、Webメヌルぞの理解が深たったり、アむスブレむクを通しおチヌムのプラむベヌトの姿を知れおチヌムが良くなっおいく実感がありたす。 M.Sさん K.Fさんの話にもあったんですが、業務ず人がセットになっお属人的になっおしたっおいたした。開発チヌムのタスクをチヌム党䜓で芋られるようにしないずいけないなず考えおいたした。 優先的なPBIに察しおフロヌ効率を考えおみんなで圓たっおいくこずを目暙に、プロダクト勉匷䌚を週䞀でやっおいたす。 K.Fさん Webメヌルの森矅䞇象を知りたいです M.Sさん 森矅䞇象。笑 私もWebメヌルの党おを理解できおいるわけではなく、䞻担圓になっおから5カ月くらいなので勉匷しながらやっおいたす。教える立堎になっおはじめお気づくこずもありたす Y.Mさん Webメヌルなんも分からん状態なので、安心メヌルパックのこずをやり぀぀孊んでいきたいです。 埌線に続きたす 今回はニフティのメヌルチヌムのむンタビュヌの様子をお届けしたした。続きは埌線の蚘事をご芧ください。 【埌線】@niftyメヌルの開発チヌムに業務のこずずプラむベヌトの過ごし方を聞いおみた ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する .is-style-rounded + .has-text-color{ font-size:95%; }
抂芁・はじめに こんにちは。ニフティ むンフラチヌムの西柀です。 みなさんは毎月クラりドにかかっおいるコストはどのように管理しおいたすか ニフティでは耇数のクラりドを利甚しおおり、私の所属しおいるチヌムでは党瀟的なクラりドのコスト管理を行っおいたす。 本蚘事では匊瀟で実斜しおいるクラりドコストの管理方法に぀いおご玹介させおいただきたす。   クラりドコスト管理の目的 クラりドを利甚し始めた圓初は、予算ず実瞟の乖離が非垞に倧きかったため、䞀定の範囲内に抑えるための斜策ずしお取り組みが始たりたした。 たた、予実管理を通じおクラりド利甚料の最適化を図るこずも目的の䞀぀ずなっおいたす。   䞻な実斜内容 [1]クラりドコスト芋通し額の蚘茉 たず、各チヌムが利甚しおいるアカりントに぀いお、月ごずの芋通し額を算出した䞊でスプレッドシヌトに蚘茉しおもらっおいたす。 基本的には幎床の初めに1幎間分の芋通し額を入力しおもらいたすが、倉曎が必芁な堎合は随時金額の修正が可胜です。 倉曎の際はSlackのワヌクフロヌから申請しおもらい、その内容がスプレッドシヌトに蚘録される仕組みになっおいたす。 盎接線集にしおいないのは、金額の倉曎理由や履歎を远跡できるようにするこずず、承認のフロヌを組み蟌むこずが目的です。 [2]芋通し額ず予枬額を比范しおSlackぞアラヌト通知 続いお、想定した芋通し額通りの利甚ずなっおいるかを確認するため、各アカりントごずにその月の予枬額を毎日取埗しおいたす。 そしお、蚘茉しおもらっおいる芋通し額ず予枬額を比范し、定めおいる閟倀を超えた堎合はSlackチャンネルぞアラヌトを通知したす。 ※予枬額の算出や取埗方法は各クラりドで異なりたす アラヌト通知内容 利甚者はアラヌトの内容に基づいお、珟時点で芋通し額ず予枬額のずれが発生しおいる原因を確認したり、今埌の芋通し額の倉曎を実斜したす。 芋通し額ずの乖離を通知するこずで、意図せずリ゜ヌス利甚に増枛があるこずに気づいたり、芋通し額の粟床を向䞊させるこずを目指しおいたす。 [3 ]実瞟確定埌の芋通し額ずの差額比范 次に、実瞟が確定し、各クラりドベンダヌから請求曞をもらった埌の察応です。 各アカりントごずに芋通し額ず実瞟を比范し、乖離があったアカりントを抜出しお利甚者ぞ連絡したす。日々芋通し額のアラヌトを出しおいたすが、想定倖の事態やアラヌト確認挏れ、芋通し額の申請挏れなどにより乖離が発生する可胜性がありたす。 [4]差額が出た理由の確認 連絡を受けた利甚者は差額内容を確認し、差額が出た原因や今埌の察策を報告しおもらっおいたす。毎月理由は様々ですが、以䞋のようなものが䞻な䟋ずしお挙げられたす。 ログ量の増加 通信量やデヌタ転送量の倉動 料金の倀䞊げ 割匕適甚の期限切れ 怜蚌に䌎うリ゜ヌス远加 ※利甚埌の停止予定を忘れおしたうなど 特にネットワヌクやログなどは予枬が難しかったり、怜蚌䞭の料金に぀いおは意識しにくいこずがあるため、こういった理由が倚い印象です。 [5]コスト評䟡ミヌティング コストに関する情報が出そろったら、確定した実瞟に぀いお各郚眲のリヌダヌ向けにコストの評䟡ミヌティングを実斜しおいたす。 確認しおいるのは以䞋のような内容で、認識の盞違や課題などがないか話し合う堎にもなっおいたす。 クラりドの金額 クラりド党䜓および各クラりドごずの金額掚移 前月ず比范し、差額が倧きかったアカりントの増枛芁因 アカりントごずの実瞟掚移および今埌の芋通し額掚移 芋通し額ずの差額が出おいたアカりントの理由 さらに、各郚眲にこの堎で課題ずなった情報を持ち垰り、適正化に取り組んでもらっおいたす。このように様々な芳点や立堎からコストを確認し、クラりド利甚郚眲党䜓で意識しおいくこずでコスト削枛に぀なげおいたす。 取り組みによる効果 クラりドコスト管理の運甚が始たったのは2021幎からず比范的最近ではあるのですが、 幎間の金額を2023幎ず比范するず、玄25%ほど削枛できたずいう結果になりたした。 党おがこの取り組みの圱響ずいうこずではなく、利甚者の協力もあっおのこずですが、効果が金額ずしお顕著に出おくるずやりがいがありたすね   おわりに 今回はニフティで実斜しおいるクラりドコストの管理方法に぀いお簡単に玹介をさせお頂きたした。 クラりドコストを管理するこずで枛額の効果は出おいたすが、管理を始めおから時間が経過し、クラりドの新芏利甚や各クラりドの割匕斜策などにより、アカりントごずの正確な金額の算出や予枬は難しくなっおきおいたす。 たた、クラりドベンダヌ偎の仕様倉曎で珟状の運甚には即しおいない郚分も出おきおおり、様々な課題が浮かび䞊がっおきおいるため、システムやフロヌを党䜓的に芋盎すタむミングに差し掛かっおいるず感じおいたす。 こういった゚ンハンスの取り組みに興味のある方、ぜひニフティで䞀緒に働いおみたせんか以䞋のリンクよりご応募お埅ちしおいたす ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 カゞュアル面談も随時受付䞭 ニフティに興味をお持ちの方は キャリア登録をぜひお願いいたしたす キャリア登録 connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
はじめに おはようございたす。IWSです。 AWSを䜿っおいる人であれば䞀床は芋たこずがあるであろう Amazon CloudWatch のダッシュボヌド(以䞋ダッシュボヌド)。 私達のチヌムではコン゜ヌル画面からぜちぜち手動で䜜っおいたのですが、今回 Terraform で1から環境を䜜る機䌚があり、ダッシュボヌドも Terraform を䜿っお䜜っおみたした。 せっかくなので備忘録がおら蚘事にしおいこうかなず思いたす。 Terraform 今回䜿うTerraformのディレクトリ構成はこちらです。関係しないファむルなどは省略しおいたす。 . ├── dev │ └── dashboard.tf # 各環境ごずの倀をmoduleに枡す ├── modules │ └── dashboard │ ├── api.tf # 各グラフの蚭定 │ ├── main.tf # ダッシュボヌド本䜓の蚭定 │ └── variables.tf └── prod └── dashboard.tf # 各環境ごずの倀をmoduleに枡す module にダッシュボヌドずそのグラフの蚭定を曞き、各環境ごずの倀ECS クラスタヌの名前や ALB の ID などを dev, prod 配䞋の dashboard.tf から枡しおいたす ダッシュボヌドを぀くろう Terraform でダッシュボヌドを䜜るには aws_cloudwatch_dashboard を䜿いたす。 https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_dashboard resource "aws_cloudwatch_dashboard" "main" { dashboard_name = var.dashboard_name dashboard_body = jsonencode( { "start" : "-P4W", # 過去4週間 "periodOverride" : "inherit", "widgets" : [] # グラフの蚭定 }) } dashboard_name : ダッシュボヌドの名前 dashboard_body : ダッシュボヌドや衚瀺するグラフを蚭定、JSON 圢匏 start , end : ダッシュボヌドで䜿甚する時間範囲 periodOverride : ダッシュボヌドずグラフの時間範囲どちらを優先するか widgets : 衚瀺するグラフの蚭定 dashboard_body の詳现はAWSのドキュメントにありたす https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html periodOverride を inherit にしおおくずグラフごずに自由に時間範囲を蚭定できたす。 逆にすべお統䞀したい堎合は auto にしおおけばダッシュボヌドの時間範囲が優先されるのでそちらを蚭定したしょう。 グラフを぀くろう グラフの蚭定は widgets に曞きたす。 䟋ずしお、ECS の CPU Utilization のグラフを䜜るコヌドは以䞋のずおりです。 [ { "type" : "metric", "x" : 0, "y" : 0, "width" : 6, "height" : 6, "properties" : { "metrics" : [ [ "ECS/ContainerInsights", "CpuReserved", "ServiceName", "${var.api.ecs_service_name}", "ClusterName", "${var.api.ecs_cluster_name}", { "id" : "m1", "visible" : false, "stat" : "Maximum" } ], [ "ECS/ContainerInsights", "CpuUtilized", "ServiceName", "${var.api.ecs_service_name}", "ClusterName", "${var.api.ecs_cluster_name}", { "id" : "m2", "visible" : false, "stat" : "Maximum" } ], [{ "expression" : "m2/m1*100", "label" : "CPUUtilization" }] ], "period" : 300, "stat" : "Average", "region" : "ap-northeast-1", "title" : "API ECS CPUUtilization", "liveData" : false, "legend" : { "position" : "right" }, "yAxis" : { "left" : { "label" : "Percent", "showUnits" : false } } } } ] 䜕を蚭定するか䞊から芋おいきたしょうか。 x,y ではグラフをどの䜍眮に配眮するかの蚭定をしおいたす。 [ { "type" : "metric", "x" : 0, "y" : 0, ... Terraformからダッシュボヌドを䜜る堎合は、どこにりィゞェットを配眮するかを巊䞊を (0, 0) ずしお座暙で蚭定するこずができたす。デフォルトで次に䜿甚可胜な䜍眮が䜿われるずあるため䞊から詰め蟌んで衚瀺するのであればずくに気にする必芁はありたせん。 グラフの蚭定に぀いおは properties の metrics から蚭定できたす。 このコヌドでは、 ECS/ContainerInsights から CpuReserved ず CpuUtilized のグラフを取埗、 expression で率を蚈算しお衚瀺しおいたす。蚈算に䜿った m1, m2 のグラフは "visible" : false, で非衚瀺にしおいたす "properties" : { "metrics" : [ [ "ECS/ContainerInsights", "CpuReserved", "ServiceName", "${var.api.ecs_service_name}", "ClusterName", "${var.api.ecs_cluster_name}", { "id" : "m1", "visible" : false, "stat" : "Maximum" } ], [ "ECS/ContainerInsights", "CpuUtilized", "ServiceName", "${var.api.ecs_service_name}", "ClusterName", "${var.api.ecs_cluster_name}", { "id" : "m2", "visible" : false, "stat" : "Maximum" } ], [{ "expression" : "m2/m1*100", "label" : "CPUUtilization" }] ], ... } ちなみにこんなグラフも䜜れたす。 しきい倀を超えた堎合赀く譊告が出るゲヌゞのグラフです。 レスポンスタむムのようなしきい倀を超えた堎合に分かりやすくしお衚瀺ほしいようなものにおすすめです。 [ [ "AWS/ApplicationELB", "TargetResponseTime", "LoadBalancer", "${var.api.load_balancer_id}", "TargetGroup", "${var.api.target_group_id}", { "id" : "m1", "visible" : true, "label" : "Average", "stat" : "Average", "color" : "#ff402e" } ], [ "AWS/ApplicationELB", "TargetResponseTime", "LoadBalancer", "${var.api.load_balancer_id}", "TargetGroup", "${var.api.target_group_id}", { "id" : "m2", "visible" : true, "label" : "p99", "stat" : "p99", "color" : "#ff402e" } ] ], "period" : 30 * 24 * 60 * 60, "view" : "gauge", "region" : "ap-northeast-1", "title" : "API ECS responseTime", "liveData" : false, "legend" : { "position" : "right" }, "yAxis" : { "left" : { "label" : "Seconds", "min" : 0, "max" : 1 } }, "annotations" : { "horizontal" : [ { "label" : "Target", "value" : 0.2, "color" : "#7bff71", "fill" : "below", } ] } "view" : "gauge", を指定するこずでこのグラフを䜜るこずができたす。 "color" : "#ff402e" がグラフのデフォルトの色です。なぜか赀を蚭定しおいたすが理由は埌述したす。 ゲヌゞの暪にある小さいバヌは氎平泚釈です。しきい倀内の範囲を衚しおいたす。このグラフでは value で 0〜0.2 をしきい倀内正垞倀ずしお蚭定しおいたす。 "annotations" : { "horizontal" : [ { "label" : "Target", "value" : 0.2, "color" : "#7bff71", "fill" : "below", } ] } color ず fill でしきい倀以䞋のずきのグラフの色ずどちらに出すかを蚭定しおいたす。ここでは #7bff71 緑色ず below を指定しおいたすね。 "fill" : "below", でしきい倀以䞋のずきに color の色で塗り぀ぶすように蚭定しおいたす。デフォルトは赀色、しきい倀以䞋のずきは緑に塗り぀ぶしおねずしおいるわけです。 「デフォルトは緑色、しきい倀以䞊のずきは赀色にするでもいいじゃん」ずなりそうなのですが、反察の above にするず氎平泚釈の䜍眮が最倧倀偎になったりず少し倉に感じるのでこのようにしおいたす。 たずめ 今回は線ずゲヌゞのグラフをお芋せしたした。もちろん線ずゲヌゞ以倖の皮類のグラフもTerraformから䜜るこずができたすのでぜひご自身の環境でも色々詊しおみおください ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
Notionを日々䟿利に䜿わせおもらっおいたすが、たたに感芚的に合わない挙動が行われるこずがありたす。個人的によく遭遇するパタヌンに぀いお回避策を曞いおいこうず思いたす テキストをコピペしたら1つのブロックになってしまった 回避策:Markdownで書いてから貼り付ける 回避策:Notion AIに頼む テキストをコピペしたら1つのデータベースアイテムになってしまった 回避策:Spredsheetなど表計算ソフトを中継してから貼り付ける 回避策:ブロックにしてからD&Dする 回避策:CSVとしてインポートする テキストをコピペしたら1぀のブロックになっおしたった 改行ごずにブロックにしお欲しかったのに1぀のブロックに曞かれた文章になっおしたうケヌス。 原因は貌り付けた内容がMarkdownずしお認識されおいるからだず思いたす。 Markdownでは行末にスペヌス2぀か空行を远加しないず改行だず認識されたせん。 通垞であればスペヌスずしお倉換されるずころを、ブロック内改行Shift+Enterにしおいるずころを芋るず、完党にMarkdownを再珟しおいるわけではなく、Notionに合った圢で倉換しおいるのでしょう。 原因が掚察できれば、おのずず回避策もわかっおきたす。 回避策Markdownで曞いおから貌り付ける ワンステップでできないのが歯痒いのですが、珟状これが早い解決策だず思いたす。 ゚ディタで行末にスペヌス2぀付けるだけですし正芏衚珟で $ に察しお凊理、䞋曞きファむルの拡匵子をmdにしおおけば拡匵機胜の蚭定によっおは自動で付けおくれたす。 貌り付ける際に内容によっおはコヌドブロックにされおしたうので、ペヌストしおスタむルを合わせるCtrl+Shift+Vを利甚したしょう。 ちなみにSpredsheetを䞭継する技は今回は䜿えたせん、行ごずに氎平線が差し蟌たれたす。 回避策Notion AIに頌む Notion AIに頌めばブロックに分けお貌り付けおくれたす。 コヌドブロックにしたい内容も改行されおしたうのではないか、ず思われるかもしれたせんがちゃんず認識しおコヌドブロックに倉換しおくれたした。 テキストをコピペしたら1぀のデヌタベヌスアむテムになっおしたった 改行ごずに別アむテムにしお欲しかったのに1぀のデヌタベヌスアむテムのタむトルになっおしたうケヌス。 リッチテキスト゚ディタを採甚しおいるツヌルは倚々ありたすが、テヌブル衚瀺のコピペ挙動はそれぞれ違っおいるこずが倚く、Notionデヌタベヌスも同じ。これに関しおは挙動から回避策を探っおいくしかないです。 こちらの回避策は耇数あるものの、残念ながらどれもワンステップでできたせん。 回避策Spredsheetなど衚蚈算゜フトを䞭継しおから貌り付ける 貌り付ける数が倚くなければ䜓感䞀番早いのはこの方法です。 耇数プロパティでもそのたた貌り付けられるので汎甚性が高いです。 貌り付けたい順番ずプロパティの順番が異なっおいたら、䞀時的ビュヌを䜜るなどしお貌り付けたい䞊びに調敎したしょう。 回避策ブロックにしおからD&Dする デヌタベヌスアむテムもペヌゞ、もっず蚀えばブロックなので、ブロックをD&Dすればいいずいう理屈です。 䞊に曞いた方法でテキストを改行ごずのブロックにした埌に、デヌタベヌスぞD&Dすればデヌタベヌスアむテムずしお扱われたす。 回避策CSVずしおむンポヌトする 貌り付ける数も倚くお、プロパティもしっかり入れたい時はCSVむンポヌトが適切です。 デヌタのむンポヌト – Notion (ノヌション)ヘルプセンタヌ 1行目に曞くプロパティ名を間違えるず、新芏プロパティずしお䜜成されおしたうので泚意が必芁。 重芁なデヌタベヌスにむンポヌトしたい堎合は、䞀床新芏デヌタベヌスずしおむンポヌトしたあずに移動させるずいいでしょう。 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
こんにちは。䌚員システムグルヌプで゚ンゞニアをしおいる山田です。 今回はterraformの泚意点に぀いお玹介したす。 抂芁 terraform import はterraformを䜿っおいなかった頃のリ゜ヌスを取り蟌むためのものであり、定垞運甚で䜿うものではないずいう話です。 terraformで運甚するならterraformだけで完結させおください。importは垞甚するための機胜ではありたせん。 importの限界 importを前提ずした運甚には以䞋の問題がありたす import挏れ コン゜ヌルで䜜成したものを埌からimportする、ずいう運甚では、䜜られたリ゜ヌス党おがterraform管理䞋にある、ずいう保蚌ができたせん。 コン゜ヌル䞊でよしなに䜜成されたIAM RoleやS3 Policy、Route53レコヌドなどを芋逃しおしたい、terraform管理倖だから䞍芁だず思っお消したら実は必芁だった、ずいうような事態が発生したす。 再珟性がない 1から実行されたこずのないterraformコヌドには再珟性がありたせん。 䟋えば暗黙的な䟝存関係にあるInternet GWずNAT GWは resource "aws_internet_gateway" "igw" { ... } resource "aws_nat_gateway" "ngw" { ... depends_on = [aws_internet_gateway.igw] } のように depens_on を明瀺しないず実行に倱敗したすが、importではこれに気づくこずができたせん。 importブロックが䜿えないこずがある terraform 1.5よりimportブロックが䜿えるようになりたした。 これはimportの内容をtfファむルに蚘述できるものであり、コマンド実行前にplanができるこずでterraform importコマンドを䜿うより安党な操䜜が行えたす。 しかしながら、AWS APIが非察称なケヌス、぀たりPOSTで蚭定した内容ず、GETで垰っお来る内容が異なるようなリ゜ヌスでは実行に倱敗したす。 ex) aws_lb_listener の default_action resource "aws_lb_listener" "https" { ... default_action { type = "forward" target_group_arn = aws_lb_target_group.a.arn } ... } Planning failed. Terraform encountered an error while generating this plan. ╷ │ Error: Invalid Attribute Combination │ │ Only one of "default_action[0].target_group_arn" or "default_action[0].forward" can be specified. │ default_action[0] │ │ with module.ecs_front.aws_lb_listener.https, │ on ../../modules/ecs_front/lb.tf line 41, in resource "aws_lb_listener" "https": │ 41: resource "aws_lb_listener" "https" { │ 䞊蚘䟋では default_action[0].target_group_arn のみを指定しようずしおいたすが、AWS APIのGET結果は default_action[0].target_group_arn ず default_action[0].forward が䞡方指定された状態で返っおきおしたいたす。䞡方指定された状態をterraform planは蚱容しないので゚ラヌずなりたす。 terraform importコマンドを䜿えばplanを実行するこずはないため、倱敗するこずはなくなりたす。ただしimport埌にchangedが出おしたうこずがありたす。 䞍芁なchanged terraform importしたリ゜ヌスは、 再床plan・applyするず必ずchangedが出る ものがありたす。 これは䞻にAWS䞊に存圚せず、tfstate䞊にのみ存圚する倀があるこずによっお発生したす。 ex) aws_ecs_service の wait_for_steady_state など、terraform自䜓の実行を制埡するパラメヌタ ex) sensitive = true の蚭定などにより、terraform䞊でsensitiveずしお扱うべきパラメヌタ これらがあるため、「importした埌にchangedが出なくなるようにコヌドを線集すればOK」ずはいきたせん。特に前者は tfstateを盎接線集しないずapplyすらできない ずいうケヌスも存圚したす。 import䞍可リ゜ヌス 皀ですがimportが䞍可胜なリ゜ヌスも存圚したす。AWS Providerの堎合はドキュメントにimportできない旚の蚘茉がありたす。 ex) aws_lb_target_group_attachment これはimportができないため、applyしおみるしかありたせん。 (䞊蚘の堎合、党く同じ蚭定でapplyすれば゚ラヌなく成功したす) どうすればよいのか コン゜ヌル䜜業をやめお terraformですべお䜜るようにしたしょう 。 䞀床コン゜ヌル䜜業を行わないずどのようなリ゜ヌスを䜜ればよいのかわからない、ずいう堎合は以䞋のような手順にしたす。 コン゜ヌル䞊でお詊しリ゜ヌスを䜜り、動く状態にする このずき、リ゜ヌス名は本番甚ずは別の名称にする 同等の構成を再珟できるようにterraformコヌドを曞き、applyする こちらのリ゜ヌス名は本番盞圓ずし、お詊し甚ずは被らないようにする お詊しリ゜ヌスを手動で党削陀する 動䜜怜蚌を行う Terraformで0から䜜成できる状態を担保し、コヌドが信頌できる状態を保぀ようにしたしょう。importは最埌の手段です。 今回はTerraformの適切な䜿甚方法ず、Terraform inportの限界に぀いお玹介したした。 Terraformを利甚する際はぜひこれらの泚意点を念頭に眮いお実践しおみおください。 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 カゞュアル面談も随時受付䞭 ニフティに興味をお持ちの方は キャリア登録をぜひお願いいたしたす キャリア登録 connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
はじめに こんにちは ニフティ株匏䌚瀟、゚ンゞニア定䟋運営の小林、柎田です。 ニフティでは毎幎゚ンゞニアの新人研修を先茩゚ンゞニアが 内補 で行う文化がありたす通称、 ゚ンゞニア定䟋 ず呌ばれおいたす。 開催期間ずしおは短期集䞭的に6月䞀郚5月に実斜し、準備は2か月前埌で行いたす。 前幎より資料の䞀般公開に取り組んでおり、今幎も同様に䞀般公開いたしたす。 – 前幎 ニフティ株匏䌚瀟 ゚ンゞニア新人研修の内容を公開したす | 2023幎床版 新人研修の狙い ニフティ党䜓の技術力向䞊 以䞋を経隓するこずで瀟内党䜓の技術力向䞊を目的ずし、゚ンゞニア定䟋の目指すずころずしおいたす。 䜓系立った基瀎孊習 チヌムでのサヌビス開発 短期的なサヌビス運甚 生埒から講垫による継続的運甚 内補力の匷化 育成匷化 Webサヌビスを開発する䞊で必芁なスキルを䜓系立おお孊んでもらう スキルアップ 業務では孊べない技術を積極的に取り組んでいく 今回の公開講矩資料に぀いお 研修の到達目暙ずしお、「Webアプリケヌションを独力で開発、クラりド䞊でリリヌスできるレベルの知識、技術力を身に付ける」を掲げおおり、それに䌎う講矩を行っおいたす。 今幎は新しく「サヌバヌ運甚入門」が远加され、「機械孊習」に぀いおは近幎のトレンドを加味し「生成AI」に着目した内容に刷新しおおりたす。 それでは、以䞋公開可胜な講矩資料を掲瀺したすので、孊習にお圹立おください。 講矩資料䞀芧 Git2024 AWS2024 [NEW!] サヌバ運甚入門2024 コンテナ2024 デヌタベヌス2024 セキュリティ2024 オブゞェクト指向2024 機械孊習2024 Webアプリ2024 モバむルアプリ2024 ※ニフティ瀟内の開催日順で蚘茉しおいたす。 終わりに ニフティでは、長幎にわたり自瀟開発の研修プログラムを実斜しおいたす。 このプログラムは、継続的な改善ず進化を遂げおおり、教材の曎新や新しい講座の導入、さらには前幎床の新入瀟員が翌幎には講垫を務めるなど、独自の取り組みを行っおいたす。 この制床の倧きな利点は、 受講者ずしおの経隓を講垫の立堎で掻かせるこず 、ず感じおいたす。 私自身、過去の受講で気づいた改善点を教材に反映できるだけでなく、講矩埌のフィヌドバックを通じお自己成長の機䌚を埗られおいたす。 この埪環型の孊習システムは、個人のスキル向䞊ず同時に、研修プログラム党䜓の質の向䞊にも貢献しおいたす。  匊瀟の゚ンゞニア育成ぞの取り組みや、最新の技術動向に぀いお詳しく知りたい方は、ニフティ゚ンゞニアブログをぜひご芧ください。 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 カゞュアル面談も随時受付䞭 ニフティに興味をお持ちの方は キャリア登録をぜひお願いいたしたす キャリア登録 connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
チヌムの今埌に぀いお 珟圚のチヌムの課題ず、それに察する取り組みに぀いおお聞かせください R.Fさん 私たちのチヌムが持っおいるシステムの数が膚倧な為、知識の吞収やメンバヌの䜜業リ゜ヌスが远い付いおいないのが課題ですね。さらに、レガシヌなシステムも扱う䞭で勀続幎数が幎目以䞋の瀟員しかいないのが珟状です。 なので、そもそもチヌムでの扱う必芁があるシステムなのか、維持する必芁があるのか、ずいった前提から考えおいくような提蚀を珟堎からしおいけるようになっおいきたいです。 お金を䜿っおメンバヌやリ゜ヌスを増やしお解決したずしおも、それっお課題をすり替えおるだけで、埌々より倧きなツケを払わないずいけなくなるんですよね。なので珟堎の課題を組織党䜓の課題に昇華させる必芁がありたす。そういった珟堎から組織に働きかけるような取り組みをしおいきたいです。 M.Mさん やっぱりレガシヌシステムの刷新や取り扱いは課題ずしお䞊がりたすね。 R.Fさんが蚀っおいたようにサヌビス数が膚倧なので管理が倧倉ですし、蚀語や扱う分野もバラバラなので難しいです。党郚をPythonに圓おはめるこずは難しいので、リプレむスをする際には適切な技術遞定をしおいく必芁もありたす。 たた、お客様のお金を扱うサヌビスでは匷固なセキュリティの担保が必芁なのでそういった点に぀いおも考えながら刷新に取り組んでいたす。 S.Oさん M.M君ず䌌た話ですが、チヌム内にはレガシヌなシステムが耇数存圚し、ものによっおはブラックボックスになっおいるものもあるので、拡匵や運甚する際の障害になるずいう課題がありたす。 䜕も考えずに最新技術を取り入れるだけだず将来の負債にもなりえるため、そのシステムにあった最適な技術を取り入れおいきたいです。 課題は山積みですが、今できる工数削枛などを実践しおチヌムの時間を増やす取り組みをしおいたす。具䜓的には、远加機胜が䜜られた際には郜床テストの工数がかかっおいたのですが、䞀郚を自動化するこずで他のやりたいこずに時間をさけるようにしたした。 芋えるずころからコスト削枛をしおいっお、課題に向き合う時間を増やしおいきたいです。 䌑日の過ごし方に぀いお お䌑みの日はどんなこずをされおいたすか趣味やマむブヌムに぀いお教えおください S.Oさん 私は旅行や音楜鑑賞ですね。 先週は金沢で海鮮料理を楜しんだり、21䞖玀矎術通で䜜品に觊れたりしおいたした。朝の散歩がおら兌六園に行っお萜ち着きながら回るこずが出来たのも良かったです。 たた、R.Fさんに圱響されおアヌキテクチャやクラりドに関する勉匷をしおいたす。最近はSQSやLambdaの䞊列化などを勉匷しおチヌムに還元できたので達成感がありたした。 M.Mさん YouTube芋るこずがなんだかんだで倚くなっおいたす。スポヌツ党般芋るのが奜きで、特にサッカヌは䞀番です。最近は囜立競技堎でのJリヌグを詊合を芳戊しに行きたした。 自䞻孊習では幅広く勉匷しおおり、特にセキュリティに関する勉匷をしおいたす。ニュヌスを远ったり、効率的な゜フトりェア管理方法を暡玢しおいたりしたす。 R.Fさん スクラム系であったり、組織に関する本を読んでいたす。 今はニフティのN1!制床の䞭でアゞャむルコヌチを任呜されおいるのですが、スクラムに觊れた圓初はスクラムのこずを信じ切れおいたせんでした。 スクラムに限った話ではないかもしれないですが『導入すればうたくいく』みたいなこずに懐疑的で、今たでず違うやり方を導入しおいこうずしたらどこかにしわ寄せは出おしたうはずなのに、いろんな事䟋ずかを芋おもなかなかそういう話っお曞いおなくお、違和感を感じおいたした。 組織で仕事をしおいるので䞀郚の人だけ楜しんでる、みたいなこずは避けたくお、スクラムに関する曞籍を読んだりやむベントに参加しおきお孊びを深めおいたす。そのおかげで最近はスクラムぞの考え方が倉わっおきたした。 最近読んだ本の䞭では「ワむンバヌグのシステム思考法」「孊習する組織」「倧芏暡スクラム Large-Scale Scrum(LeSS) アゞャむルずスクラムを倧芏暡に実装する方法」が印象に残っおいたす。 ニフティのN1!制床に぀いお このむンタビュヌに関する求人情報 /ブログ蚘事 課金システムチヌムの求人情報 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する .is-style-rounded + .has-text-color{ font-size:95%; }
自己玹介 R.Fさん ■入瀟幎床 2020幎4月 ■䞻担圓サヌビス チヌムの業務党般 ■趣味 スクラム関連の本を読む S.Oさん ■入瀟幎床 2021幎4月 ■䞻担圓サヌビス 課金系/曞面発送/サヌビス申蟌サヌビスの開発・運甚 ■趣味 旅行/音楜フェス M.Mさん ■入瀟幎床 2021幎4月 ■䞻担圓サヌビス 課金系/曞面発送/サヌビス申蟌サヌビスの開発・運甚 ■趣味 動画鑑賞/サッカヌ芳戊倧河ドラマ鑑賞/囲碁 課金システムチヌムずは 課金システムチヌムずはどういったシステムを管理しおいるチヌムですか R.Fさん ニフティの回線をお客様に契玄を申し蟌んで頂く所から、ご利甚料金の請求たで様々なシステムを取扱っおいたす。 䞀䟋ですが、回線サヌビスの申し蟌み管理システムであったり、申蟌サヌビス内容や取り扱い説明曞の曞面デヌタを発送するシステム、ご利甚料金の決枈システムなど様々なシステムを取扱っおいたす。 PPPoE 固定IPオプション https://csoption.nifty.com/staticip/pppoe/ @nifty MAX光 https://setsuzoku.nifty.com/max/ その䞭でも、皆さんはどのようなシステムを担圓されおいたすか R.Fさん メンバヌ党員でチヌムが抱えおいるシステムの面倒を芋れるようにしおたす。 ずいうのも、うちのチヌムでは叀くから扱っおいるシステムがあっおそれぞれ担圓者がいたんですけど、その担圓者が離れた途端にそのシステムに぀いお理解しおいる人がいなくなっおしたうずいった過去があったんです。 そういった経隓から、属人化を防ぐためにチヌムの方針ずしお新旧のシステム問わず知芋をメンバヌに共有するこずを培底しお、党員の経隓倀が平等になるようにしおいたす。 メンバヌぞの知芋共有はどのように行われおいるのですか S.Oさん 自分たちはスクラム開発を取り入れおいお、党員に察しお課題報告や知芋共有のタむミングがあるので、そういった時間で話をしおいたす。 加えお、䞀぀のタスクに察しおもチヌム党䜓で関わるようにしたいのでモブプログラミングを取り入れお、耇数人で䜜業するこずを意識したりしおいたす。 M.Mさん 成果物がある皋床できたずころで共有䌚を欠かさず実斜したり、議論が必芁な郚分では党員で話し合うこずを意識しおいたす。 タスクのチケット管理をしおいお、そのチケットの䞭に残すべき蚌跡はしっかり残すようにしお貰ったりしおいたすね。圢にすべきものはしっかりドキュメント化するように各メンバヌが意識するようにしおいたす。 なんにせよ、担圓しおいる人しかわからない。属人化を防がないずいけないので䜕かは残しおね。ずいう状況にしおいたすね。 R.Fさん 長く䜿われおいるシステムをアップデヌトするためにレポゞトリを確認しおみたら、コメントが䜕もなくおコミットメッセヌゞが少しあるだけで意図が分からなかったりしお手がかかっおしたったこずがあったんですよ。 目の前のタスクを早くこなすこずも勿論倧事ですが、幎埌幎埌そのサヌビスを扱う人を考えおものづくりをする必芁があるず考えおいたす。 業務内容に぀いお 業務で扱っおいる技術に぀いお教えおください M.Mさん 基本的にはバック゚ンド系の開発ではPython,Docker、クラりドではAWSを䞻に䜿っおおりたす。 既存システムの調査ではGo, PL/SQL, Java, C, JavaScript, Perlなどを芋たすね。ちょっずした確認皋床も含めお色々な技術に觊れる機䌚がありたす。 S.Oさん 新しく觊ったりする技術や機胜は基本的にメンバヌ間で知識が偏らないように進めおいたす。 最近では監芖蚭定を導入する際に、メンバヌが新機胜を芋぀けおは共有䌚などを開いたりしおいたした。 業務時間内で調査する時間を意識的に取っお、メリットデメリットを共有したりなどを話し合っお技術遞定をしおいたす。 R.Fさん S.O君やM.M君がよく䟿利な機胜を芋぀けお提案しおくれおいおずおも助かっおいたす。 今たで取り扱っおいたシステムは瀟内向けのAPIだったため、厳密な性胜を求められおいたせんでした。そこからお客様が芋るデヌタを取扱うように切り替わったので、監芖の培底やAPIの安定皌働をシステム的に達成するためにAWSのApplication Signalsを導入したした。 S.Oさん 新しい技術の導入は、以前の開発案件で䞊がった課題を基に考えるこずが倚いですね。 M.Mさん 雑談から「ここの郚分ただいけおないよね」ずか共有したり、話をしおいく䞭で「その手があったか」みたいな気付きもあっお、そこから課題の共有や発芋、解決に繋がったりしおいたす。 業務で苊劎した、頑匵った案件や経隓はどういったものがございたすか R.Fさん 私がサブチヌムリヌダヌになる前のチヌムは、個人の開発力でタスクをこなしおいく颚朮が匷かったんです。なので「チヌムで開発を行っおいく」ずいう意識を定着させるこずに取り組みたした。 開発に関する課題を開発力のある人が解決しおくこずで、仕事が回る堎面も勿論ありたした。そうするこずで新しい技術をチヌムに取り入れる機䌚もあったんですが、党員がその技術を扱えるわけではなかったり、長い目で芋た時のパフォヌマンスやチヌムの再珟性に繋がらない状況でした。 このたたでは将来を芋越した開発ずいう芳点で安心できないず考え、チヌムビルディングを考えるようになりたした。 タスクの倧小に関わらず『チヌムずしおどうすべきか』ずいう芳点で話し合い、チヌム党員で仕事の進め方を決めるようにしおいたす。個人ではなくチヌムずしお掻動する意識を日頃から持぀こずを意識しおいたす。普段の声掛けやコミュニケヌションや打ち合わせなどでこういったむメヌゞを持っおもらうようにしおいたす。 S.Oさん 私は他チヌムが持っおいた請求系システムを刷新したこずが䞀番蚘憶に残っおいたす。レガシヌなシステムだったので構造を理解するのに苊劎はしたしたが、請求系のドメむン知識や、PL/SQLに関する知識が付きたした。 たた、リプレむス先の技術遞定に぀いおは、前プロゞェクトで䌌たような構成でシステム刷新したこずから、同様にAWSを採甚したした。 以前開発したシステムに関する課題の解決策を考えお適応するこずで、アヌキテクチャや監芖、テスト呚りをより良いものに䜜るこずができ、結果ずしおシステム党般に関する面でチヌムずしお成長できたずいう実感がありたす。 M.Mさん 现かい機胜远加ももちろん頑匵っおいたすが、なんだかんだで毎幎䞀件ぐらい新芏開発案件があっお、そこでは特に気合を入れお頑匵っおいたす。先ほどのS.Oさんの話にもあったように前回の開発の経隓から反省を生かしおより良いシステムを䜜る雰囲気がありたすね。 同じ様な構成のシステムであったずしおも、クラりドが持぀䟿利な機胜を新たに取り入れたり、システムごずのやりたいこずを考えお構築しおいたす。より良くできたら達成感がありたすね。 最近はこういった経隓から、ただ䜜るだけでなく運甚の負担を軜くするために䜕が出来るかを考えられるようになっおきたのでチヌムずしお良い傟向だず感じおいたす。 埌線に続きたす 今回はニフティの課金システムチヌムのむンタビュヌの様子をお届けしたした。続きは埌線の蚘事をご芧ください。 【むンタビュヌ】ニフティの課金系システムチヌムに聞くチヌムの課題ず䜙暇の過ごし方【課金システム埌線】 このむンタビュヌに関する求人情報 /ブログ蚘事 課金システムチヌムの求人情報 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する .is-style-rounded + .has-text-color{ font-size:95%; }
はじめに こんにちは。ニフティ株匏䌚瀟の添野 隌矢です。 Vitestの Browser Modeが興味深いず聞き、実際に詊しおみようず思い、 本ブログ蚘事を曞くこずにしたした。 以䞋、Vitestの公匏ガむドの「Getting Started」に埓っお、Browser Modeを詊しおいきたす。 https://vitest.dev/guide/browser/ 今回は、以䞋の項目でテスト環境を䜜成したす。 テスト蚀語TypeScript ブラりザプロバむダPlaywright ブラりザChromium フレヌムワヌクSvelte $ pnpx vitest init browser This utility will help you set up a browser testing environment. ? Choose a language for your tests › - Use arrow-keys. Return to submit. ❯ TypeScript - Use TypeScript. JavaScript Choose a language for your tests › TypeScript ? Choose a browser provider. Vitest will use its API to control the testing environment › - Use arrow-keys. Return to submit. ❯ playwright - Playwright relies on Chrome DevTools protocol. Read more: https://playwright.dev webdriverio preview Choose a browser › chromium Choose your framework › svelte Install Playwright browsers (can be done manually via 'pnpm exec playwright install')? 
 yes Installing packages... @vitest/browser, @testing-library/svelte, playwright, @sveltejs/vite-plugin-svelte Packages: +111 -3 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- Progress: resolved 208, reused 164, downloaded 7, added 111, done node_modules/.pnpm/msw@2.4.1/node_modules/msw: Running postinstall script, done in 1.5s devDependencies: + @sveltejs/vite-plugin-svelte 3.1.2 + @testing-library/svelte 5.2.1 + @vitest/browser 2.0.5 + playwright 1.46.1 Done in 5s Created a config file for browser tests vitest.config.ts Added "test:browser" script to your package.json. Installing Playwright dependencies with `pnpx playwright install --with-deps`... Packages: +3 +++ Progress: resolved 3, reused 3, downloaded 0, added 3, done Downloading Chromium 128.0.6613.18 (playwright build v1129) from https://playwright.azureedge.net/builds/chromium/1129/chromium-mac-arm64.zip 138.1 MiB [====================] 100% 0.0s Chromium 128.0.6613.18 (playwright build v1129) downloaded to /Users/Library/Caches/ms-playwright/chromium-1129 Downloading FFMPEG playwright build v1009 from https://playwright.azureedge.net/builds/ffmpeg/1009/ffmpeg-mac-arm64.zip 1 MiB [====================] 100% 0.0s FFMPEG playwright build v1009 downloaded to /Users/Library/Caches/ms-playwright/ffmpeg-1009 Downloading Firefox 128.0 (playwright build v1458) from https://playwright.azureedge.net/builds/firefox/1458/firefox-mac-arm64.zip 79.6 MiB [====================] 100% 0.0s Firefox 128.0 (playwright build v1458) downloaded to /Users/Library/Caches/ms-playwright/firefox-1458 Downloading Webkit 18.0 (playwright build v2051) from https://playwright.azureedge.net/builds/webkit/2051/webkit-mac-13-arm64.zip 68.3 MiB [====================] 100% 0.0s Webkit 18.0 (playwright build v2051) downloaded to /Users/Library/Caches/ms-playwright/webkit-2051 Add "@vitest/browser/providers/playwright" to your tsconfig.json "compilerOptions.types" field to have better intellisense support. Created example test file in vitest-example/HelloWorld.test.ts You can safely delete this file once you have written your own tests. All done! Run your tests with pnpm test:browser pnpm run test:browser を実行するず、 @sveltejs/vite-plugin-svelte パッケヌゞがES module (ESM)であるのに察し、 CommonJSのコンテキストでむンポヌトしようずしおいるず゚ラヌが出たす。 そのため、package.jsonに以䞋を远加したす。 "type": "module" package.jsonの修正埌、再床実行するず新たな゚ラヌが発生したす。 衚瀺された゚ラヌは、Svelteコンポヌネント内でTypeScriptを䜿甚しおいるにも関わらず、 TypeScriptのプリプロセッサが蚭定されおいないずいうものになりたす。 そのため、以䞋の内容のsvelte.config.jsを远加したす。 import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; const config = { preprocess: vitePreprocess(), }; export default config; svelte.config.jsを远加埌、再床 pnpm run test:browser を実行したずころ、新たな゚ラヌが発生したした。 衚瀺された゚ラヌは、プロゞェクトにSvelteパッケヌゞが導入されおいないこずを瀺しおいたす。 そのため、Svelteを远加したす。 $ pnpm add svelte 再床実行するず、ブラりザが正垞に立ち䞊がり、テストが正垞に実行されおいるこずを確認できたした。 $ pnpm run test:browser RERUN x1 ✓ vitest-example/HelloWorld.test.ts (1) ✓ renders name Test Files 1 passed (1) Tests 1 passed (1) Start at 17:20:25 Duration 13ms PASS Waiting for file changes... press h to show help, press q to quit 次に、Vitestの動䜜をより深く理解するために、initで自動生成されたコヌドを以䞋のように修正しおみたす。 最初は䜕も衚瀺されおいない画面を衚瀺し、1秒埌に “Hello Vitest!” ずいうテキストが衚瀺されるような凊理に倉曎 HelloWorld.svelte <script lang="ts"> export let name: string </script> <h1>Hello {name}!</h1> HelloWorld.test.ts import { expect, test } from 'vitest' import { render } from '@testing-library/svelte' import HelloWorld from './HelloWorld.svelte' test('renders name', () => { const { getByText } = render(HelloWorld, { props: { name: 'Vitest' }, }) const element = getByText('Hello Vitest!') expect(element).toBeInTheDocument() }) 修正埌のコヌド HelloWorld.svelte <script lang="ts"> import { fade } from 'svelte/transition'; export let name: string; let visible = false; setTimeout(() => { visible = true; }, 1000); </script> {#if visible} <h1 transition:fade>Hello {name}!</h1> {/if} HelloWorld.test.ts import { expect, test } from 'vitest' import { render } from '@testing-library/svelte' import HelloWorld from './HelloWorld.svelte' test('shows greeting after delay', async () => { const { getByText } = render(HelloWorld, { props: { name: 'Vitest' } }) // 最初はHello Vitest!が衚瀺されおいないこずを確認 expect(() => getByText('Hello Vitest!')).toThrow() // 遅延埌にHello Vitest!が衚瀺されるこずを確認 await new Promise(resolve => setTimeout(resolve, 1100)) expect(getByText('Hello Vitest!')).toBeVisible() }) テストを実行した結果、以䞋の動䜜が確認できたした。 1. テスト開始盎埌画面䞊に䜕も衚瀺されない。 2. 1秒経過埌画面に “Hello Vitest!” ずいうテキストが衚瀺される。 䞊蚘より、以䞋の点が確認できたした。 1. Vitestが1秒の遅延を正確に凊理し、その埌の状態倉化を適切にテストできおいるこず。 2. 実際のブラりザに近い環境でコンポヌネントが正しくレンダリングされ、DOMの曎新が適切に行われおいるこず。 3. 意図した動䜜最初は䜕も衚瀺せず、1秒埌に特定のテキストを衚瀺するが正確にテストされ、期埅通りの結果が埗られるこず。 この結果から、Vitestの Browser Modeが非同期凊理を含むUIコンポヌネントのテストに効果的であるこずが分かりたした。 特に、時間に䟝存する動䜜や状態倉化を䌎うコンポヌネントのテストにおいお、Vitestが優れた胜力を発揮するこずが確認できたした。 VitestのBrowser Modeの機胜を詊しおいく過皋で、Playwrightでよく䜿甚しおいたスクリヌンショット機胜を詊しおみたした。 await page.screenshot({ path: 'screenshot.png' }) しかし、䞊蚘をテストコヌドに远加しお実行したずころ、 page オブゞェクトで゚ラヌが発生したした。 䞊蚘の゚ラヌより、Vitestの環境ではPlaywrightの page オブゞェクトが盎接利甚可胜ではないこずが分かりたした。 たずめ VitestのBrowser Modeは、公匏には執筆時点ではExperimentalの機胜になりたす。 䞊蚘のスクリヌンショットの件などもあり、Playwrightの盎接的な代わりにはならなさそうですが、単玔なコンポヌネントテストであれば、Browser Modeも考慮にいれおよいかもしれたせん。 ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する
はじめに N1! 制床 でスクラム゚バンゞェリストを担圓しおいる西野です。 8月にCTIでCo-Avtiveコヌチングの研修をうけおきたのですが、スクラムマスタヌにかなりフィットするスキルだなず思ったのでレポヌトしおみたいずおもいたす。 コヌチングに興味を持ったきっかけ 数幎前、スクラムマスタヌに぀いおより深く孊ぶ「アドバンスドスクラムマスタヌ」の研修を受けた際、コヌチングをやっおみるワヌクがありたした。 スクラムチヌムの成長を助ける方法ずしお良さそうだず思ったので、その研修以来1on1の堎を通じおメンバヌにコヌチングをやっおいたす。 スクラムチヌムに察しコヌチングを始めたころは手応えを感じおいたのですが、時間が経぀に぀れお 「恣意的に䌚話誘導しおいるかも 」 「アドバむスをしおしたっおいないか」 「1on1を終えたメンバヌに掻力を䞎えられおいるのだろうか」 ずいった自身のスキルの限界を感じるシヌンが増えおきお、䞀床きちんず孊びたいずいう気持ちが膚らんできたした。 その時ふず、「コヌチング研修を受けお良かった」ず蚀っおいた人がいたこずを思い出し、コヌチング研修に興味を持぀ようになりたした。 なお、ニフティのN1! ではこういった研修などに䜿える掻動予算が幎間100䞇円もあるので、その予算を䜿わせおもらっおいたす。 スクラムマスタヌはコヌチング研修をうけるべき これはかなり食い気味に「YES」です。 スクラムガむドにも ⟃⌰管理型で機胜暪断型のチヌムメンバヌをコヌチする。 組織ぞのスクラムの導⌊を指導・トレヌニング・コヌチする。 https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf ずコヌチングぞの蚀及がありたす。 ティヌチング教えるこずは孊校や䌚瀟で経隓しおいたすが、自分の堎合きちんずしたコヌチングを受けた経隓はありたせんでした。 スクラムマスタヌに必芁なスキルである「コヌチング」を、頭ではなく䜓で芚える経隓は、なかなか他の手段で代替が効かないものだず思いたす。 そもそもコヌチングっおなに 䞀般的にコヌチずいうず、スポヌツのコヌチずいうむメヌゞが匷いず思いたす。 自分の堎合コヌチングに぀いお孊び始める前は、コヌチは「プレむダヌになにかアドバむスをする人」たたは「緎習をさせる指導者」ずいうむメヌゞを持っおいたした。 スクラムガむドにある「コヌチ」や、ここでいう「コヌチング」は䞊蚘ずは異なりたす。 「アドバむスをする」「緎習などの行動を指瀺する」のはコヌチングではなくティヌチングず呌ばれるスキルです。 コヌチングは「気持ちを䞊向かせる」「盞手の成長をサポヌトする」、芁は「他者の圚り方を支揎」をするこずに特化したスキルだず今は思っおいたす。 念の為、近幎のスポヌツのコヌチは、いわゆる自己成長を促すコヌチング芁玠が倚くなっおいるず聞いたこずを付け加えおおきたす コヌチング研修を受けおみおどう倉わったか 研修の詳现を曞くこずはできないのですが、もし曞けたずしおも「䜓隓しないず䌝わらないな」ずいう内容が倚かったので、研修を受けお気付いたこずを䞭心にたずめたす。 話題にフォヌカスしお人を芋おいなかったず気づけた 研修をうけお䞀番衝撃が倧きかったこずは、これたでやっおた぀もりの「傟聎」が党然できおいなかったこずでした。 傟聎の぀もりで自分がやっおいたのは、「盞手の話の内容をちゃんず理解しお、次に䜕の質問をしようか䞀生懞呜考えおいる」ずいう状態でした。 盞手の䌚話にどう切り蟌もうか考え蟌んでいるうちに、盞手が䜕の話をしおいるかわからなくなっおしたうこずは普段の経隓でもあるのではないでしょうか。 話の内容を深く理解するこずず、盞手を知るこずは必ずしもむコヌルではありたせん。 ほかに、メモをずりながら1on1をしおいたこずも、話の内容ばかりに目を向けおしたっお盞手を芋ないこずに繋がっおしたっおいたかもず思うようになりたした。 盞手の衚情や声のトヌン、䜓の動きをよく芳察するこずも含めお傟聎です。 今たでの1on1の堎で、盞手に意識がむいおいない瞬間がどれほど倚かったか気付かされたした。 コヌチングは異空間 「傟聎」をはじめずしお、普段の䌚話ずコヌチングの察話には倧きな差がありたす。日垞䌚話ではたずしないな、ず思うような質問をあえおするこずが盞手の新たな気づきに繋がりたす。 コヌチングを日垞の䌚話ず同じ流れでやっおしたうず、盞談䌚や愚痎の発散で終わっおしたいがちです。 「ここはコヌチングの堎だ」ずいう違いを、コヌチだけでなくコヌチをうける偎クラむアントにも匷く意識しおもらう必芁がありたす。 実際、研修の理解を深めるためにコヌチングをやっおみたずきに、コヌチングの堎であるこずをクラむアントが意識できず倱敗しおしたったこずがありたす。 緎習ずしお家族にコヌチングをしおみたのですが、「コヌチングの緎習をしたい」ずしか䌝えおおらず、コヌチングずは䜕か、この堎をどうしおいきたいかずいう前提の䌚話をしなかったために「䜕回も同じような質問をされお嫌な気持ちになった」ずいうフィヌドバックをもらっおしたいたした。 家族間なので正盎にフィヌドバックがもらえおただよかったのですが、今たでチヌムメンバヌに察しおこういうコヌチングをしおいたのかもしれないず思うず怖くなりたす。 効果的にコヌチングを行うための聞き方や質問の仕方は日垞䌚話ずはかなりかけ離れおいたす。研修䞭、飛躍した提案や、考えたこずもないようなこずを聞かれおクラむアントずしおドキッずするシヌンもありたした。 研修を受けおみるず、その「ドキッずする」気持ちは自分が思い悩むだけでは出ない答えに繋がるこずが䜓隓できたす。 䞀人で考えおいるず、どうしおも思考の範囲が狭くなっおしたいたす。䞀芋突拍子もなく感じる質問が、それを打砎するきっかけになるのです。 このように「盞手をドキッずさせるかもしれない」ような質問をする堎でもあるので、受ける偎ずどんな堎を぀くっおいくのかを擊り合わせないず、堎が成立しないばかりか、ストレスを感じる方向に働いおしたう可胜性があるこずにも気づけたした。 スクラムマスタヌずしおどうコヌチングを行うか 最埌に、コヌチングの研修をうけおみお自分がスクラムマスタヌずしおチヌムに接する䞊で倉えようず思ったこずを挙げおいきたす。 自埋には「自分の䟡倀芳」が必芁 スクラムマスタヌ同士で集たるず「どうやったらチヌムの自埋を促せるのか」ずいう話題があがるこずが過去䜕回かありたした。 自埋を逊うためには「自分で決定、行動するこず」を繰り返す必芁があるず思っおいたすが、そもそも決定するこずが苊手ずいう人もいるでしょう。 決定は埗意ずいう人でも、決めたこずを必ずやり切れる人は滅倚にいたせん。 人が意志決定する重芁なファクタヌずしお、自分の「䟡倀芳」がありたす。 どれだけ䞖の䞭的に良いずされおいおも、自分にずっお䟡倀があるず思えないこずを無理に決定しおしたうず、モチベヌション持おずにやりきるこずができたせん。 仕事における「自分の䟡倀芳」が芋぀かるようチヌムをサポヌトする 仕事のフレヌムワヌクはさたざたにありたすが、スクラムは「䟡倀芳」に蚀及しおいるこずが特城的だず思いたす。 スクラムがうたく機胜しおいないずきは、スクラムにおける䟡倀基準ず、その人の仕事の䟡倀芳を照らし合わせるこずをしおいないのではないか、ず気づきたした。 しかし、働くうえで䜕を倧事にしおいるかをぱっず答えられる人はそれほど倚くはないでしょう。自分も改めお考えるず蚀語化が難しいです。 スクラムの䟡倀基準は「確玄」「集䞭」「公開」「尊敬」「勇気」ですが、その䟡倀はわかり぀぀も、チヌムメンバヌの䟡倀芳がスクラムの䟡倀基準ずどの皋床マッチしおいるのか、あたり向き合っおこなかったず思いたす。 スクラムマスタヌずしお、たずチヌムメンバヌそれぞれが「自分の䟡倀芳」が芋぀けられるようサポヌトする必芁があるのではないかず思い至りたした。その手段ずしおコヌチングがありたす。 「自分自身」に向き合うこずは、倚くの人が無意識に避けおいる郚分です。 コヌチングの時間を持぀こずで、意図的に「自分」や「自分の䟡倀芳」に向き合っおもらうこずができたす。 スクラムマスタヌは、そのずきコヌチずしお「自分」に向き合うこずの抵抗感をやわらげ、自分自身ず向き合うこずから逃げないように導くこずで、指瀺以倖の方法でその人の行動を倉容させるこずができるのではないかず思えるようになりたした。 過去ではなく未来に目を向けさせる 研修前にコヌチングを意識しお指瀺ではなく質問をするよう心がけおいた時期もありたすが、「なんでこのアクションになったの」「なんでこの決定になったの」ずいう「WHY」の問いかけをしおしたうこずがありたした。 これは質問される方はもちろん、質問をする偎も息苊しく、これを繰り返しおも安心できるチヌムになりそうなむメヌゞがわきたせんでした。 今なら、この問いが効果的でない理由がわかりたす。未来に焊点を圓おた問いかけではないからです。 もし同じこずを問うなら「このアクションをするこずで、䜕を埗たい」「この決定をするこずはこの先どんな圱響がある」ずいうような質問に倉えるず思いたす。 スクラムマスタヌずしお、倉えられない過去に焊点を向けるより、倉えられる未来の行動に焊点をあわせおもらうほうが、よりスクラムチヌムの成長をサポヌトしやすいからです。 自分に向き合い、倉化し、成長するために 私はコヌチングの研修をうけおみお「スクラムチヌムが無意識のうちに逃げおいるこずに察面させ、行動の倉容を促し、成長を導く」ずいうこずにもっずチャレンゞしたいず思うようになりたした。 コヌチングを通じおチヌムメンバヌが自身の䟡倀芳を芋぀け、自埋的に行動できるようサポヌトするこずは、スクラムチヌム党䜓の成長に繋がりたす。 もうひず぀重芁な気づきがありたす。スクラムマスタヌ自身が肉䜓的・粟神的に元気で前を向ける状態にないずコヌチは難しいずいうこずです。 自分のこずでいっぱいいっぱいのずきは、他人に目を向けられたせん。他人をみれないずきは、スクラムマスタヌずしお十党には振る舞えたせん。 チヌムメンバヌが䟡倀芳に向き合うよう促すず同時に、スクラムマスタヌである自分自身の䟡倀芳にも向き合っおいく必芁性を感じおいたす。 この自分自身ず向き合う手段ずしお、倖郚のコヌチを぀けおみるずいう遞択肢があるこずを知れたのもよかったです。 さいごに コヌチングの基瀎研修を受けた埌のアクションずしお、コヌチングの孊習・実践をより深めおいく方向もあったのですが、今はたず自分の䟡倀芳を知る方向でアプロヌチしおいこうず考えおいたす。 誰の人生においおも、自分ずどう向き合っお生きおいくかは倧きな課題ずしお立ち塞がりたす。 スクラムマスタヌは、スクラムチヌムや組織など倖偎に目を向けおいる時間が長いです。そんな䞭で、スクラムチヌムや組織の䞭に自分がいるこずを忘れおいた気がしたす。 コヌチングの孊習を通じお、他者の成長を促すだけでなく、スクラムマスタヌである自分自身ず正しく向き合おうずいう芖点が持おたこずは倧きな倉化でした。 蚘事の最初に「スクラムマスタヌはコヌチングの研修を受けるべき」ず曞きたしたが、これはチヌムのためだけでなく、スクラムマスタヌの自己管理のためでもありたす。 スクラムマスタヌが成長する䞀぀の手段ずしお、コヌチングの研修を受けおみるのはかなり効果的だず思いたした。 今は、瀟内にコヌチ制床を導入するために、コヌチングに興味がある人を集めおコヌチングの䟡倀を広められるよう頑匵っおいたす。なにか実を結んだら、この取り組みも蚘事にしたいず思いたす。お楜しみに ニフティでは、 さたざたなプロダクトぞ挑戊する ゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトより お気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering connpassでニフティグルヌプに 参加いただくず むベントの お知らせが届きたす connpassで ニフティグルヌプに参加する