Linkode.TechBlog
https://blog.linkode.co.jp/
株式会社リンコードでは音声認識関連サービスの開発を中心に、大規模サーバから組み込みシステムまで様々な言語や知識を駆使して、ソフトウェアの課題を解決しています。
フィード

「伝わらない」をなくす。生成AI時代に見直したい資料作成術 - 「Slidocs(スライドックス)」という解法
Linkode.TechBlog
はじめに あなたが会議で受ける質問・回答の多くが単に「伝わっていない」ための確認やそれを埋めるためのやりとりだったりすると思います。 あるいは、聞き手の立場で、後から資料を見返したとき、箇条書きの短いテキストとグラフだけが並んでいて、「結局、なぜこの結論になったんだっけ?」と頭を抱えたことはないでしょうか。 私たちは日々、資料作成において「伝わらない」を生む多くのジレンマを抱えています。 この長年の課題を解決する手法として、「Slidocs(スライドックス)」という資料フォーマットを定義します。(このブログ記事のようなフォーマットです。) スライド要素とドキュメント要素を併せ持つこのフォーマッ…
1日前

技術負債の返済を「売上に効く投資」に変える ―― 実践から学んだ進め方
Linkode.TechBlog
はじめに 新しい機能や顧客要望の取り込みは、売上に直結する“見えやすい投資”です。一方で、ライブラリ更新やアーキテクチャ整備、セキュリティアップデートといった技術負債の返済は“売上に直結しない投資”と見なされ、開発投資の意思決定の場で優先度が下がりやすいのも事実です。しかし、実際の技術負債の返済がもたらす成果・価値は売上アップを阻害している要因を排除するもので、「売上に効く投資」になるはずです。 経営陣は技術負債の悪影響(開発効率の低下、セキュリティリスクの増大)を頭では理解しています。それでも投資判断に迷いが生じるのは、「投資額に見合う成果が、いつ・どう売上や事業に効くのか」が十分に可視化さ…
1ヶ月前

AWS EKSクラスタでArmコンテナを動かす方法
Linkode.TechBlog
この記事では、AWS EKSクラスタでArmアーキテクチャのコンテナを動かす方法について説明します。Armコンテナは、特にコスト効率が求められるワークロードに適しています。ここでは、Terraformを使用してEKSクラスタをセットアップし、Javaアプリケーション(Spring Boot)をArmコンテナでデプロイする手順を紹介します。
2ヶ月前

Amazon Cognito リフレッシュトークンローテーション検証
Linkode.TechBlog
2025年4月にサポートが発表されたCognitoリフレッシュトークンローテーション機能を検証し、その動作とセキュリティ効果を解説します。 対象読者 認証機能を扱うフロントエンド・バックエンド開発者 Cognitoを利用中または導入検討中の技術者 セキュリティ向上に関心のあるエンジニア 背景 2025年4月、Amazon Cognitoでリフレッシュトークンローテーション機能のサポートが発表されました。 Amazon Cognito が更新トークンのローテーションに対応 この機能により、リフレッシュトークンの使い回しによるセキュリティリスクを軽減できるようになりました。 本記事では実際の検証結…
6ヶ月前

JetBrainsのJunieを使ってTerraformのコードを生成する
Linkode.TechBlog
前回の「TerraformでAmazon EKSクラスタを構築して、ArgoCDでアプリケーションをデプロイする」ではTerraformによるIaC化の説明をしました。実はこのコードのほぼすべては生成AIを使って作成したものでした。(流石に解説文までは生成AIを使ってはいません) 本記事では、環境構築ためのコードをどうやって生成させたかについてご紹介します。
7ヶ月前

TerraformでAmazon EKSクラスタを構築して、ArgoCDでアプリケーションをデプロイする
Linkode.TechBlog
TerraformなどのIaCのツールを使ってシステムを構築するメリットの一つに冪等性があります。ですが、EKSのようなKubernetesクラスタを構築した後、継続的デプロイのためにArgoCDをインストールする段階で kubectlやhelmコマンドを使いがちです。(ArgoCDのインストールの解説はkubectlやhelmコマンドで説明される事が多いです。) このようにすると冪等性が保てなくなってしまいます。 本記事では、ArgoCDのインストールやArgoCDのアプリケーションのカスタムリソースの登録までをTerraformでIaC化する方法を解説します。
8ヶ月前

REST APIでフィルタリングをサポートする方法
Linkode.TechBlog
なぜAPIにフィルタリング機能が必要になるのか Webサービスを運営している時に、サーバサイドではAPIにフィルタリング機能を求められる事がしばしば起こります。このようなAPIの一例として、タスク管理ツールでのタスクの一覧を返す以下のようなAPIがあります。 openapi: 3.0.1 info: title: OpenAPI definition version: v0 servers: - url: http://localhost:8080 description: Generated server url paths: /tasks: get: tags: - tasks-contr…
1年前

TerraformでAPIGatewayにCognitoをオーソライザとして使用する環境を構築してみた Part2
Linkode.TechBlog
Part2ではAPIGatewayの方を構築していきます。Part1で作成したCognitoをオーソライザとして使用する構成です。 またAPIGatewayのAPIをコールするとLambdaを実行するようにしたいので、一緒にLambdaも作成してます。 Lambdaはnodejs18.xを使用します。 gole
2年前

TerraformでAPIGatewayにCognitoをオーソライザとして使用する環境を構築してみた Part1
Linkode.TechBlog
Cognitoの構築方法を忘れないように、Terraformを使ってコード化しておこうと思います。 また、せっかくなのでAPIGatewayを前段に配置してCognitoをオーソライザとして使ってみるところまでを試してみようと思います。 こちらの記事(Part1)ではCognitoの構築をメインに記述します。(※今回IDプールは使用しませんが後学のためにコード化だけしています。) Part2ではAPIGatewayの構築とCognitoのオーソライザ設定を主に記述します。 gole
2年前

AWS Cognito ユーザプールでユーザ属性(カスタム属性)をIDトークンに含める
Linkode.TechBlog
CognitoのLambdaトリガーを使ってみようと思い検証をしていたところ、定義したカスタム属性がIDトークンに含まれていなかったので対処法を調べました。特に大したことない内容ですが忘れないように記述します。
2年前
Keycloakの知識を背景に、AWS Cognitoを調査してみて感じたこと
Linkode.TechBlog
Keycloakの使用方法はある程度確認したので、今度はAWSのCognitoを自分への夏休みの宿題としてちょっとだけ調査してみました。 実際にCognitoを触ってみて、Keycloakとどこが違うのかを軽く確認したのでその内容を感想レベルで記述していこうと思います。
2年前

KeycloakのAdmin REST APIでユーザを作成する
Linkode.TechBlog
前回の記事でAdmin REST APIを使ってレルムの作成を行いました。 今回はユーザの作成をして、そのユーザにレルムの作成権限をマッピングしてみようと思います。 マスターレルムにユーザを作成して、そのユーザでレルムを作成することで作成したレルムの管理をそのユーザで行うことができます。 (※レルムを作成したユーザには自動でそのレルムのアクセス権限が付与されます。) They will be granted full access to any new realm they create.
2年前

KeycloakのAdmin REST APIでレルムを作成してみる
Linkode.TechBlog
Keycloakを使用する機会があったので、色々と使い方を調査してみました。 Keycloakは管理画面を提供してくれているのですが、今回は管理画面からではなくAdmin REST APIを使用して「レルム」の作成をしてみます。 なお、管理画面の操作方法については公式ドキュメントに記載があります。
2年前

Stripeでサブスクリプション決済のAPIを試してみた Part2
Linkode.TechBlog
前回の記事でクイックスタートでStripeのサブスクリプション機能を試してみました。 決済は完了後、カスタマーポータル画面を表示させるところまでは確認できましたが、 サンプルコードにはWebhookをハンドリングする処理があり、こちらの動作をまだ確認できていません。 今回はこのWebhook機能の動作を確認していきたいと思います。 StripeのWebhook機能について ローカル環境でWebhookを確認する Stripe CLIのダウンロード Stripe CLIでログイン テスト環境用に通知の転送 Webhookの動作確認する 成功時 失敗時 まとめ
3年前

Stripeでサブスクリプション決済のAPIを試してみた Part1
Linkode.TechBlog
オンライン決済を使ってサブスクリプションの仕組みを取り入れたい場合にどのようにすればよいか調べてみました。 実際に試してみた方がわかりやすいと考え、使いやすそうな決済APIサービスを使ってオンライン決済の流れを確認してみることにしました。 オンライン決済APIを提供しているサービスは多々ありますが、今回はテスト環境構築の簡易さと機能の多さからStripeを選定しました。 Stripe 決済フローについて 決済(サブスクリプション)機能の動作を確認 サンプルコードのダウンロード 商品を作成する サーバ環境構築 クライアントを確認 lookup_keyが設定されていないことを確認 lookup_k…
3年前

Google Translation APIのカスタムコネクタを作成する方法
Linkode.TechBlog
今回はカスタムコネクタを作成する手順について記載します。 前回の投稿ではPowerAppsから既存のコネクタを使用していましたが、 今回作ったカスタムコネクタで差し替えて前回作成したPowerAppsを動作させたりすることが可能となります。 カスタムコネクタとは Cloud Translation API カスタムコネクタの作成 1. 全般 2.セキュリティ 3.定義 3.1.全般 3.2. 要求 3.3. 応答 4. コード(プレビュー) 5. テスト Power Appsからの参照 まとめ 参考
3年前

PowerAppsで簡単な翻訳アプリを作成する方法
Linkode.TechBlog
今回はPowerAppsでMicrosoftのTranslatorというサービスを使用して簡単な翻訳アプリを作成してみようと思います。 PowerAppsとは コネクタとは PowerAppsでアプリを作成する Power Apps Studioを開き、空のアプリの作成する まずは基本的な機能を実装する アイテムの配置 アクションを設定してみる コネクタと連携してみる アクションの編集 まとめ 参考 PowerAppsとは Power Apps は、ビジネス ニーズに合ったカスタム アプリを構築するために短時間で開発できる環境を提供するプラットフォームです。 Power Apps とは - P…
3年前

コンシューマ駆動契約テスト用ツールのPactを使う
Linkode.TechBlog
以前の記事で、Spring BootのソースコードからOpenAPI仕様のフォーマットのAPI定義書のYamlファイルを生成するようにしました。このYamlファイルを受け取ったフロントエンド・エンジニアはバックエンドの仕様を確認しながら開発を開始できるようになります。 しかしながら、バックエンドの開発が進んでも、フロントエンド開発チームが想定している仕様が遵守される保証はありません。実際、多くの現場ではバックエンド開発チームが断りなくAPI仕様を変更したものをデプロイする事がよくあります。その結果、アプリケーションが動作しなくなり、原因究明のためフロントエンドの開発がストップしてしまいます。 …
3年前

OpenAPIのAPI定義書をソースコードから自動生成する
Linkode.TechBlog
ほとんどのWebサービスの開発では、Webサービスのフロントエンドを担当するフロントエンド・エンジニアとバックエンドを担当するバックエンド・エンジニアに分かれて開発します。フロントエンドは、バックエンド側が提供するHTTPベースのAPIを利用して構築されます。このため、フロントエンドの開発にはバックエンドのAPI仕様書が必須になります。 API仕様書は最近ではOpenAPI仕様のフォーマットに従って(ほとんどはyamlファイルで)書かれる事が多くなりました。ただし、バックエンドのプログラマとしてはAPIの仕様書を書くよりも、バックエンドのプログラムそのものを書きたいのが本音だと思います。そうは…
3年前

GitLab CI/CD のビルド環境から外部のリポジトリを取得する
Linkode.TechBlog
この記事は、GitLabのプライベートリポジトリでGoのパッケージの管理、CI/CDでの運用を調査したものです。
3年前

Serverless Framework で API Gateway のカスタムドメインを設定する
Linkode.TechBlog
Serverless Framework を用いて、API Gateway の カスタムドメインを設定する方法を調査しました。
3年前

既存のCognitoにTerraformからLambdaトリガーを設定する
Linkode.TechBlog
Terraform でインフラの構成構築を行っている際に、既存の CognitoにLambdaトリガーを取り付けたい、というシーンがありました。 Cognito IDP の Data Sources(data ブロックで表現される、Terraformの外部で定義された情報を参照できるリソース)を頼りにトリガーとなる Lambda の設定ができないかと Terraform のリファレンスを眺めていたのですが、残念ながら既存のCognitoに対して変更を行えそうなリソースが見つかりませんでした。 そこで、Terraform から AWS CLI のコマンドを実行して Lambda の取り付けができ…
3年前

Deno を Solaris (OpenIndiana) で動かす
Linkode.TechBlog
JavaScript/TypeScript ランタイムの Deno を OpenIndiana に移植しました。
4年前

GitLab で管理している AWS SAM プロジェクトの自動デプロイに AWS CodePipeline を使う
Linkode.TechBlog
GitLab で自動デプロイを実施するには GitLab CI/CD が使えるのですが、今回は AWS CodePipeline (と CodeCommit、CodeBuild) を使って AWS SAM プロジェクトの自動デプロイを構成してみました。
4年前

slack-go で Sign in with Slack を試す
Linkode.TechBlog
Go 言語のライブラリ slack-go を使って Sign in with Slack の動作を見てみました。
4年前

Docker Compose CLI を使って Keycloak を AWS ECS にデプロイする
Linkode.TechBlog
Docker Compose CLI を使い、docker-compose.yml の設定から Keycloak を AWS ECS にデプロイします。
5年前

Keycloak を試してみる
Linkode.TechBlog
オープンソースのアイデンティティ・アクセス管理ソフトウェアである Keycloak を試してみました。 Keycloak を OpenID Connect の Identity Provider としてセットアップし、クライアントと認可コードフローの動作を確認します。
5年前

AWS Lambda(Go) で Lambda レイヤーを活用する
Linkode.TechBlog
Serverless Framework を使い、AWS の Lambda(Go) で Lambdaレイヤーを活用する方法を調べてみました。
5年前

Terraform で ECS 環境を構築する④ 〜DynamoDB, SQS, ECR, CodePipeline 編〜
Linkode.TechBlog
このシリーズの一旦の完結編です。 前回構築した ECS にデプロイする仕組みを構築します。 また、コンテナアプリから利用する DynamoDB と SQS も Terraform で構築します。 blog.linkode.co.jp blog.linkode.co.jp blog.linkode.co.jp
5年前

API Gateway から Lambda 関数を非同期で呼び出す
Linkode.TechBlog
Serverless Framework を使い、AWS の API Gateway から Lambda 関数を非同期で呼び出す方法を調べてみました。
5年前