いわむぶろぐ

Webエンジニア@スタートアップ@のんびり綴ってます。

プログラミング

AWS認定 DevOps Engineer Professional (DOP) 合格

AWS認定 DevOps Engineer Professional (DOP)に合格しました。 勉強内容や役に立ったことは今後追記していきます

GitHub Actionsを使って、OIDC連携でリソースをデプロイする

会社のブログに投稿しました techblog.timers-inc.com

WEB+DB PRESS Vol.123 を読んで

https://www.amazon.co.jp/dp/4297122073 を読んだので、かなりざっくりまとめました。 自分用のメモ。 ○ PHPの型管理Psalm もともとのPHPの型宣言の弱点 PHPSalmの特徴 ○ Golangのメモリ管理 struct定義時、アラインメントが大きい順に定義するとメモリ使用…

S3へのアクセスに対してLambda@edgeで認証を行う

会社のブログを更新しました techblog.timers-inc.com

AWS WAF+CloudFront+S3でIP制限をかけたホスティングサイト構築

techblog.timers-inc.com 会社のブログを更新しました。

Golang + statik + gin で静的ファイルをシングルバイナリにまとめる

Golangはビルドするとシングルバイナリにまとめられ、各環境に配布するときなどはそのシングルバイナリを渡せばデプロイができるのでとても便利です。 しかし、アプリケーションの要件によっては、必要なファイルの形式が増えてきます。例えばWebアプリケー…

MySQLのストアドプロシージャを使ってデータを大量作成する基本メモ

MySQLのストアドプロシージャを使ってデータを作成する機会もありますよね。 自分も幾度かテストデータの作成などで利用しています。 しかし毎回ストアドプロシージャの作り方を忘れたり、作成に手間をかけることが多いので 今回はメモとしてまとめておこう…

Amazon Cognitoの新規ユーザー認証フローと自分たちの要件が違う場合のTips

AWSのCognitoでメールアドレス(以下メアド)認証&変更機能を実装しようと思っていました。 しかしそこで後述する問題点があり、素直に利用することはできませんでした。 本記事ではその問題点や打開策を中心に紹介します。

ALBのリスナールールでIP制限

会社のブログに投稿しました! techblog.timers-inc.com

X-Tech JAWS 【第10回】 ~新春あけおめX-Tech JAWS~ に登壇してきました!

AWS社で登壇してきました! xtechjaws.doorkeeper.jp Biz: 10分 Tech: 10分 speakerdeck.com 引き続き開発頑張ります!

Kubernetes・AWS EKSのワークショップを受けた

会社のブログに寄稿しました! techblog.timers-inc.com 今日で仕事納めでした、お疲れ様でした!

AWS S3 署名付きURLでブラウザからS3にアップロード

会社のブログに寄稿しました! techblog.timers-inc.com 来週はAWS re:Invent なので楽しんできます。

社内でSwaggerを導入・運用するための仕組みづくり

会社のブログに掲載しました! こちらを見ていただけると! techblog.timers-inc.com

CSS "Flex Box" と "Grid Layout" の比較

記事の背景 2B向けに公開している自社サービスの管理画面のデザインをリニューアルすることになり、CSSも抜本的に変えることになりました。 今まで横並びのレイアウトにはfloatを使い構成していた部分が多かったのですが、 リニューアルに伴い Flex BoxやGri…

TCPコネクションを切断するstubを作成して、Nginx configの検証を行う

状況 Nginxでserverにproxyして通信する際、 一定確率でNginxとserverでTCPコネクションが確立されず、NginxがHTTP_statuscode502を返す事象が発生していた。 今回行ったこと TCPコネクションを切断するstubを作成して再現させ、対処法を考えた

【requiredが効かない?】FormSetのhas_changed()の深堀り

DjangoのFormsetを使っている時、 Formの各fieldにrequiredオプションを設定しているのに、 空文字列を入力してもFormset.is_valid()=>Trueになってしまった。 (詳しくは下記「問題の状況」) そこで、条件を変更した検証も交え、ボトルネックの調査をした。

nginXでretry処理を行う

nginXでproxyしたサーバーからのレスポンスがstatus_code:5xxだった場合 retryさせる設定を組み込みました。 nginX自体ではretryのオプションはないので、設定を応用して 結果retryさせている設定を入れる必要があります。

iframeを使って簡単に外部のHTMLを読み込む

iframeを使ってHTMLを埋め込む軽いタスクをいくつか行ったのでまとめます。 特に技術的に難しいことではないのですが、 明らか利便性が高く、 エンジニア以外の方でも役に立つ機会がありそうなので見ていただければと思います。 ● iframeって何? iframeとは…

Form・clean()・field・creaned_dataの関係

DjangoのFormについて(clean()・cleaned_data・メソッド呼び出し順)まとめました is_valid()が呼ばれてからどのようにメソッドが呼ばれるか clean()・cleaned_dataはどこで呼び出し・生成されるか 記事を書いた理由 Form・clean()・field・creaned_dataの関…

herokuを使ったデプロイ方法(rails4)

rails4、アプリケーション準備、githubで管理 herokuに登録(freeプランでもOK) https://signup.heroku.com/ mysqlのfreeplanを使うために、クレカ情報の登録をしておく https://dashboard.heroku.com/account/billing mysqlを使うために、rails new ~ -d my…