記事

TerraformとAnsibleを使ってVPSを構築する

インフラストラクチャ

概要この記事はMakuake Advent Calendar 2020の20日目の記事です。 TerraformとAnsibleを組み合わせてVPS上でサーバー構築をしてみたのでその手順をまとめておこうと思います。 動機趣味で開発しているアプリケーションのインフラ環境をIaCで整備したかったので、勉強を兼ねてTerraformを使ってみました。 環境 Terraform v0.14.0 Ansib...

Ansible VPS OpenStack Terraform

docker-compose.ymlで指定した環境変数がコンテナビルド中に参照できない

インフラストラクチャ

概要 docker-compose.ymlのserviceの1つにenv_fileを指定し、環境変数を設定したが、サービスがbuildするコンテナ内(Dockerfile側)では参照できなかった。 vueのアプリケーションをコンテナ内でnpmを使ってビルドしており、アプリケーション側でprocess.env.VUE_APP_API_ENDPOINTという形でアプリケーションのビルド時に環境変数を参...

Docker Docker Compose Tips

認証・認可の基本

アプリケーション

概要最近認証サービスの開発に携わっているので今一度基本的なことを再確認しておく意味でまとめる。 Software Design 2020 11月号の認証・認可の特集を参考にしている。 IDと認証・認可の関係性 ID Identity(身元) システム利用のための管理単位 ex. ユーザー、モノ、組織 etc... Identifier(識別子) データとして管理される単位 ex. SasS...

FIDO IAM LDAP OAuth OpenIDConnect SAML SSO 認可 認証

ネットワーク用語まとめ

ネットワーク

概要 ネットワークに関して知識が曖昧なワードをまとめる。 IPv4 Internet Protocol version 4 IP(Internet Protocol)の一種 OSI参照モデルにおいてはネットワーク層に位置づけられるプロトコル 32ビットのアドレス空間を持つ 2の32乗=42億9496万7296個がIPv4のIPアドレス総数 インターネットの普及とともに枯渇してきた cf. ...

IP ロードバランサー

Kubernetesドキュメントのリーディングーコンセプトのまとめ

インフラストラクチャ

概要Kubernetesを本格的にキャッチアップしていくためにドキュメントを読んだので、オレオレメモを残す。全部は長いのでメモ書きはコンセプトの章だけにする。 kubernetes.io Kubernetesとは何か?cf. Kubernetesとは何か? Kubernetesとは何か? 宣言的な構成管理 自動化の促進 コンテナ化されたワークロードやサービスの管理のためのプラットフォーム 過去を...

Docker コンテナ Kubernetes

Golangでインメモリなキャッシュを実装する

アプリケーション

概要Golangのインメモリキャッシュのライブラリは良さそうなものが存在するが、軽量でシンプルなもので十分だったので自前で実装してみた。 実装要件 複数のデータを保持することができる。 期限付きのデータをメモリに保持することができる。期限が来たらメモリから破棄されること。 キャッシュへの同時参照、更新を考慮し、データのロックが意識されていること。 初期設計※github.com - bmf-sa...

Golang キャッシュ

Go CodeReviewCommentsのまとめ

アプリケーション

概要github.com - CodeReviewCommentsを読んでメモしておきたいことをまとめる。 Comment Sentences コメントの終わりはピリオドで終わるようにする。 golang.org - commentary Copying 別のパッケージから構造体をコピーするときは、予期しない参照に気を付ける。 メソッドがポインタの値に関連付けられているならTではなく*Tを使うよ...

Golang コードレビュー 

JWTとは

アプリケーション

概要JWTについて調べたことをまとめておく。OAuthやOpen ID Connectなど実際の利用事例については触れない。 JWTとはJWT(JSON Web Token)は、JSONデータ構造を用いたURLセーフなClaim(JWTを用いたJSONオブジェクトはClaim Setと呼ばれる)を表現するフォーマット。JWTでは、デジタル署名またはメッセージ認証コード(MAC)を用いたJWS(JS...

JWT

gRPCとはーGolangでgRPCに入門するー

アプリケーション

概要GolangでgRPCに入門する。 gRPCとはgRPCとは、Googleが開発したRPC※実現のためのプロトコル。HTTP/2の利用を前提としている。 gRPCではGoogleが開発しているProtocol BuffersというIDL(インターフェース定義言語)でAPI仕様を定義するシリアライズフォーマットを使用する。 gRPCの通信方式にはHTTP/2の仕様に則った4つのパターンがある。 ...

Golang gRPC マイクロサービス HTTP/2 RPC