Lapis Lazuli

technical blog for web developer

How to write Makefile

about Makefile When use golang development, almost use Makefile. Used by build and run go application.but I don't understand this format. So, I explain structure of Makefile. title of process: process this command is minimum. other how to.…

Swagger is the great tool

Use swagger when make open api Use swagger in work project. I feel is great tool at openapi. First, when I made the new api at current project. Make dummy response api, its client side develop efficient. We have many new develop points. it…

Spannerを使ってみて大体の感想

GCP

久しぶりの更新になります。今回はGCPのCloudSpannerについてです。 決してサボっていた訳ではありません。仕事が・・・というよくあるやつです。 CloudSpannerとは GCPが誇る分散型データベースです。 なんと言っても最大の特徴は、ノードを増やすことでス…

GCPは赤字だったけど売上は伸びている

先日、GCPが5900億円の赤字であるニュースが掲載されていました。forbesjapan.com現状、パブリッククラウドはシェア1位のAWSを筆頭に、2位のAzure、GCPは3位という位置にいます。 3位といえど差は歴然で、去年のデータですが下記のようになっています。www.…

【ツール】DBクライアントを購入したので使ってみた結果

今回は使ってみて良かったツール類を紹介したいと思います。 数ヶ月前にセールをやっていたので、前々から気になっていたTablePlusを購入しました。 tableplus.com 購入した理由とメリット 一番の大きな理由はモダンで軽快なUIで使い勝手が良いという点です…

MySQL5.6がEOLに

まだまだ使っているところが多いと思われるMySQL5.6が2021年2月のEOLになります。www.mysql.com意外に早いなーと思いましたが、ExtendedSupportはGAから8年なので、リリースされたのは2013年なんですね。 移行するのでしたら、5.7は2023年10月までいけるので…

【Unity】SQLiteがAndroidで更新されなくて困った話

久しぶりにゲーム制作をやったので、今回はその時にハマった事を。ゲーム自体は某ノベルゲーなのですが、そのテキストや背景、BGMの情報を保存するのに都合が良かったのでSQLiteを使う事にしました。 スタンドアロンなゲームで特に通信はしないので、DB使お…

2021年の抱負

今年も終わりに近づいてきたので、去年に続き抱負の記事を書きます。 こうして振り返ってみるとブログも1年半くらい続いているんですよね・・・すぐ書かなくなるかなと思いましたが、習慣にすると続けられるものです。 この調子で2年、3年と続けていきたいで…

【Go】エラー処理にxerrorsを使う

GO

Goでエラー処理する事は頻繁に出てくると思います。 使われるのは大体標準パッケージのerrorsを使う事が多いと思いますが、Goには準標準パッケージとしてxerrorsがあります。 最近使ってみたら良かったので、今回はxerrorsについて書いていきます。 何がメリ…

MySQLのB-Treeインデックスを理解する

MySQLのインデックスには一般的にB-Treeインデックスというものが使われています。 BTreeはインデックスのアルゴリズムなのですが、今回は何故これが一般的なのかについてです。 B-Treeとは インデックスは実テーブルのデータを素早く探す為の索引ですが、ア…

terraformのベストプラクティスとは

terraformは手軽にファイルに書いて実行できますが、しばらくするとある事で悩む事になります。 それは・・・terraform自体の構成をどうするかという事です。最初は同じファイルにどんどんリソースを定義していくと思います。それで数が増えたら種類毎にファ…

RESTfulAPIの冪等性について考える

RESTAPIの各メソッドの処理には冪等性であるべきものと、そうでないものがあります。 冪等性とは。についてはwikiさんによるとこういう事だそうです。 冪等 - Wikipedia詳しく書いてありますが、要するに「何度同じ事をしても同じ結果になるということ」です…

【AWS】DynamoDBの仕組みを理解する

AWS

最近NoSQLであるDynamoDBを使用したので、そのとき学んだことをまとめていきたいと思います。 DynamoDBの仕組み DynamoDBキーバリュー型のNoSQLになります。なのでキーを元にレコードの情報を引っ張ってくる形式になります。 比較的構造としてはシンプルなの…

【AWS】APIGatewayとlambdaをプロキシ統合で連携する

AWS

APIGatewayからlambdaを統合するときに、プロキシ統合でバックエンドに渡す方法があります。 確か去年あたりに新しくできた方法で、これのおかげでかなり楽にマッピングができるようになりました。 今回、業務でAPIGatewayを使用したのでその事を書いていき…

エンジニアのググり方

エラーとの遭遇 エンジニアとして開発をしていると、エラーなどにハマる事があります。 そのとき大半の解決方法としては、同じチームの人に聞くか、目の前のパソコンでググるか。という解決方法をとる事が多いと思います。 チームメンバーに聞いて解決するの…

APIGatewayのIAM認証

AWS

lambdaのAPI化としてよく使われるAPIGatewayですが、APIの認証を入れたいときがあると思います。 特にAWS内部への処理をする場合、誰でも叩かれたらマズいですしね。 なのでAPIGatewayには認証機能が実装されています。 一番簡単なのはAPIキーを設定して、そ…

【Terraform】DataSourceの使いどころ

インフラのコード化に使われるTerraformですが、クラウド上のリソースを管理するresource以外にもdataという属性があります。 これはデータソースというもので、簡単に説明すると実際のクラウド上には存在しないけど、Terraform内で完結するように作られるリ…

CodeBuildのキャッシュ効果がすごかった

CodeBuildのキャッシュの種類 最近CodeBuildを導入して使っていますが、ビルド時に使用するリソースをキャッシュしておく機能があります。 主に2種類のタイプがあって、S3に保存するタイプとローカルに保存するタイプがあります。 それぞれ特徴があって、利…

AWSのデプロイサービス

AWS

Fargate運用するとなると、真っ先に整備しないといけないのがデプロイ周りです。 EC2のようにローカルから送ってデプロイという訳にはいかないので、導入するのならセットで導入する必要があります。 もし現状全くCIとか使ってない環境でしたら、導入する絶…

サーバーレス設計の鉄則〜メリットを最大限に活かす〜

AWS

はじめに サーバーレスを進めるにあたって、既存のサーバーとの設計の違いで悩む事があると思います。 私も最初は「通常のサーバーだったら簡単にできるのに・・・」と思った事があります(特にログ周りとか) が、これはサーバーレスアーキテクチャに慣れて…

Fargateを使ってみた

AWS

最近のサーバーレスの流れに乗り、Fargateを導入したので、その時に気がついたことを残しておきます。 まず従来使っていたECSonEC2と比較しての違いを挙げてみます。 ネットワークモードがawsvpcのみ EC2タイプでしたらbridgeでインスタンスから接続できたの…

転職ドラフト体験記

こちらの記事は転職ドラフト体験談投稿キャンペーンに参加していますjob-draft.jp 今回は私が上記の転職ドラフトさんを利用して転職活動したときの体験記を書こうと思います。 転職ドラフトを使ったきっかけ とあるWebサイトで広告バナーを見かけたので登録…

【PHP】8.0で名前付き引数が使えるようになるかも

PHP

PHPの次のバージョンである8.0で遂に名前付き引数が使えるようになるみたいです。(まだ確定ではありませんが) これはかなり強力なアップデートなのではないでしょうか。開発効率が爆上がりです(個人差あり) そもそも名前付き引数って? かなりざっくりと…

ブログ書き始めて1年経ちました

このブログを書き始めて約1年経ったので、振り返りを兼ねて今回は記事にしてみます。 1年を振り返って ブログ開設したのが去年の7月7日でした。 最初は「エンジニアとしてアウトプットって大事だしブログでもやるかー」という気持ちで始めたのは今でも覚えて…

【Terraform】tfstateをs3で管理する

前回に引き続きterraformの話題です。 terraformにはリソースの状態を管理しているtfstateというファイルがあります。 これはtfファイルとの差分を見て、 terraform plan したときに追加や変更、削除などの判断をしています。 なのでこれを消してしまうと管…

Terraformはじめました

はじめに 最近terraformを会社で導入しました。 インフラをVPCから新規で一式用意することになって、せっかくなのでインフラのコード化をしてみようかなと思いました。 しばらくしか使わない可能性がありますし、コードで管理していたほうが後々便利だなと思…

【AWS】ECSの動的ポートマッピングを使う

AWS

どうもこんにちは。 最近はECSを使って本番構築しているので、しばらくはその時に学んだ内容を書いていきます。 今回は動的ポートマッピングについてです。 動的ポートマッピングとは ECSのサービスがホスト側のポートを動的に割当する機能です。 何故これが…

【AWS】SSMパラメータストアに格納した環境変数をEC2で利用する

AWS

前回に引き続き、SSMを利用して実際に使用した事を書き記しておきます。 今回はEC2の環境変数をパラメータストアから取得しようという話です。 EC2で何故SSMを使うのか ECSでは普通にSSMを参照出来るのに、EC2だけサーバー内に直置きだからです。 せっかくAW…

【AWS】パラメータストアを使いこなす

AWS

SSMにはインスタンスを管理する他にパラメータを管理するパラメータストアがあります。 Fargateとか使用するのだったらほぼ必須となってくると思いますが・・・ 最近EC2で使用する機会があったので今回はパラメータストアについて書きます。 パラメータスト…

【Go】ロジックより型から読み取れるようにする

GO

最近、コードレビューで突っ込まれて「なるほどな〜」と思った事があります。 今まであまり意識したことは無かったのですが・・・型からコードの意味を読み取れるようにする。ということです。 熟練のエンジニアの方からしたら「当然だろ」と思われるかもし…