2022-11-01から1ヶ月間の記事一覧

テストファーストを貫徹するのはストイックすぎない?

この本を読んでいてふと思った。開発の品質はテストが決める、と言われるくらいテストは重要なもの。むしろテストがないのはありえないし、関数の単体テストのように、自動化したほうが適切なテストは自動化したほうがいい。そこは間違いないのだけども、テ…

日本文化の性格は近代というよりむしろ中世に近い?

少々毒のある本を読んでみた。あるある、な部分もあり、どうかな、と思う部分もあり、という感じ。ただ、日本文化の性格は近代というよりむしろ中世に近いのでは、という点については同感である。 令和もやっぱりハードボイルド―日本のアナーキーな精神世界―…

論理的柔軟思考法

読んでいた本に論理的柔軟思考法なるプロセスが紹介されていた。面白かったためメモ代わりに記録を残しておく。 なお、記載されているのは 第19章新規事業.論理的思考により柔軟なアイディアを生み出す方法 の箇所。 なにそれ? 普通なものの定義を羅列する …

アイディアメモ

これはアイディアメモである。 コーディング My Best Practice どういった場合にどのようなコードで書くのがよいと思うのか、自分の中でもひとまとめにしたものがない。整理してまとめたい。 インフラ My Best Practice ログ回りや監視回りなど、だいたい誰…

「規模は皆目見当つかないがいつまでにいくらで終わるか確約せよ」にどう対応するか?

エンジニアのための見積もり実践入門を読んでいて、ふと思いついたことを書く。 開発における見積もりは、なにを作るのか明確でないと不可能である。なにがいつまでにいくらでできるのか、を予測するのが見積もりなのだから、"なにが"の部分が曖昧糢糊として…

IT業界の様々な商売の仕方についてのメモ

モノまたはコトを売るのはIT業界でも同じ。でもIT業界ならではの様々な形態が存在する。 汎用製品の販売 最初になんらかの汎用製品を開発し、それを売って対価を貰うスタイル。料金の徴収スタイルによっても若干の違いがある。 一括で対価を貰う(パッケ…

GitHub Copilot in Visual Studio Codeを試してみた

かねてから気になっていたGitHub Copilotを試してみることにした。開発効率やコード品質の向上に繋げられるなら月額10$くらい安いものだが、その実力やいかに。 サインアップ 使ってみた 関数名が重要? ある程度抽象的な関数にも対応してくれるのか? 実際…

AWSでなぜコンテナ・Dockerを使うのか?

Software Design (ソフトウェアデザイン) 2022年11月号で"なぜコンテナ・Dockerを使うのか?"という問いかけがなされていたので、自分も思うところを書いてみたい。 コンテナのメリットは? 1. 環境を再現しやすい 2. 一つ一つのコンテナの設定が分離するの…

Cannotpullcontainererror: pull image manifest has been retried 5 time(s): failed to resolve ref docker.io/library/nginx:latest: failed to do request

先の記事の後にもIPv6 Only VPCを試していたのだが、思わぬところに落とし穴がやはりあった。 問題 解決 その他 問題 "Cannotpullcontainererror: pull image manifest has been retried 5 time(s): failed to resolve ref docker.io/library/nginx:latest: …

IPv6オンリーのVPCで遊んでみた

タイトルの通り、IPv6オンリーのVPCを試してみた。以前の記事でIPv6オンリーは業務用だと要注意、と書いたばかりだが、個人用途で試す分にはイケイケでいける。NAT ゲートウェイがいらない(Egress Only IGWが使えるので)ため安くあがる点が個人用途だとポ…

多段SSHでPrivate SubnetにあるEC2インスタンスに接続する

Private SubnetにEC2インスタンスを立てて使う場合、踏み台を経由して接続できるようにしたほうが色々と便利なことが多い。 というわけで多段SSHの設定を書き残しておく。 結論 ~/.ssh/config に、ProxyCommandを使いつつ、例えば下記のように記載する。 bas…

AWSのVPCでIPv6にするべきか?

AWSのVPCでIPv6が使えるようになってからしばらく経つ。 そろそろIPv6にすべきなのか、IPv4にすべきなのかを考えてみた。 結論 特にIPv6を使う理由はなく判断しかねるならまだIPv4にしておいたほうが無難。 IPv6だけで行けると確信できるならIPv6オンリーに…

AWS CLIをMFA付きで使う際のbatファイル(Windows用)

公式で公開されているMFAのためのコマンドを毎回コピペコピペで実行するのは嫌すぎるので、簡略に――作り込むほどのものではないので――バッチファイルを作って使うことにした。 言うまでもなくWindows用である。 内容 一部マスキングしているが、下記のような…

DockerでTerraformを利用してみる

しばらく暫定的にWindow直でTerraformを利用していたが、環境を再現しづらく、従って環境の統一もしづらい問題が気になる。ついでに、AWSをMFA付きで利用するにあたっては、いちいち公式で紹介されている手順を使うのも地味に手間がかかるので、こちらで紹介…

AWSのVPC作成に"VPC and more"が増えていたので使ってみた

今日別件でVPC画面を触っていたら、VPCに新しい操作画面が追加されていたので早速触ってみた。 なにこれ素敵 なんとVPCと一緒に作るリソース、すなわちSubnet、Route Table、igw、S3 Endpoint、Nat gatewayをセットで作ってくれる。 試してみたところ、これ…

読書感想文:稼ぐ力を手にするたったひとつの方法 Kindle版

稼ぐ力を手にするたったひとつの方法 Kindle版を呼んだため、自分の中のまとめがてらにメモ。 相手の立場で物事を考える というのが"たったひとつ"であるようだ。 大事なことであるのはたしか。そして自分のことばかり考えているとおろそかになりやすいのも…

Visual Studio Code Draw.io Integrationを試してみた

Draw.ioをVSCodeから使えるという拡張機能Draw.io Integrationを試してみた。 こんな感じ 感想 こんな感じ 素晴らしいことに、編集結果をエクスポート作業なしに普通のsvgファイルとして扱うことができる。 ということは、VSCodeをいれていない人にも作成し…

Terraformを使えるならAmplifyを使わずにS3+CloudFrontでよさそう

この比較記事をたまたま見ていたのでメモ。 結論、現段階では、Terraformを使っているならS3+CloudFrontでよいという印象。 Amplifyは、手軽さとのバーターなのである意味当然なのだが、カスタマイズ性が弱い。たとえばDevelop環境のCloudFrontにWAFをセット…

The API with ID XXXXXXXXXX doesn’t include a resource with path /* having an integration arn:aws:lambda:ap-northeast-1:XXXXXXXXXX:function:product-send-mail on the ANY method.

課題 Lambdaの実行権限をAPI Gatewayに与えると、どういうわけかタイトルのエラーメッセージが、コンソール上で、下記のように赤字で表示された。 解決 表示の問題にすぎないので気にしなくていいらしい。自分の環境ではAPI GatewayからLambdaを実行すること…

【日記】個人サイトをリニューアル

ここ数年くらい放置していた個人サイトを、技術検証も兼ねてリニューアルした。 といってもメインコンテンツはブログなので、個人サイトのほうはトップページとお問い合わせフォームくらいしかないのだが、 Visual Studio Codeの活用。 同じくWSLとコンテナ…

本番環境へのデプロイはどう行うべきなのか?

ITサービスの開発・運用を行うにあたって避けて通れないのがデプロイである。プロジェクトのたびに一から考えると(そしてドキュメント化するのも)手間がかかるので、よくある方針や例を記しておく。 方針 それぞれどう実現すればいいか? 構成例 環境の分…

CORSで困ったときのリンク

先日CORSのエラーに散々悩んだので、解決のための参考になったリンクを記載。 ちなみに構成はFront(Next.js) + Back(AWS API Gateway + Lambda(Python)) 。 リンク たとえば リンク CORSの切り分け方法を載せてくれている。神。 https://future-architect.gi…

CloudFrontのCNAMEは重複不可

問題 新旧の個人用サイトを並行で動かそうとしたところ、CloudFrontの作成でエラー発生(CNAMEAlreadyExists)。 module.personal_website_frontend.aws_cloudfront_distribution.front_cdn: Creating... ╷ │ Error: error creating CloudFront Distribution…

Terraformの*.tfstateファイルを保存するためのS3のバケットをCLIで作る

TerraformのtfstateファイルをS3に保存する場合、そのバケット自体はTerraformを使わずに作成することが推奨されている。 というわけで、CLIを使ってバケットを作成することにした。 コマンド 先にコマンドを記載する。結論、以下のようにした。 aws s3api c…

S3のバケットをどのように分けるか?

S3を利用するにあたっては、通常、いくつかのバケットに分けて利用することになる。一つのバケットに全部おさめるとバケットの中がカオスになるからだ。 だが思いつき次第にバケットを作っていくのも不味い。今度はS3自体がカオスになってしまう。そもそも1…

Next.jsで静的HTMLエクスポートをするとリンク先が変わる

課題 Next.jsで静的HTMLエクスポートをすると、各ページごとに*.htmlの拡張子が付いたHTMLファイルが作られる。 ところが、このためにhttps://www.example.com/contactではリンクが繋がらず、https://www.example.com/contact.htmlとしなければいけなくなっ…

MUIを使って個人サイトをリニューアル

Next.jsで個人サイトをリニューアルするにあたり、MUIのテンプレートがFreeかつ便利そうであったため、これを採用することにした。WEBデザインまでは手が回らない自分にとり、テンプレートはありがたい存在である。自前で一からデザインするより早いし高クオ…

API GatewayをTerraformで構築するのはあまり向かないかも

AWS Lambda + API Gatewayでサーバーレスのメール送信関数を用意することにした。 そして、そのインフラ構築にTerraformを利用してみたのだが、結論、API GatewayとTerraformはどうにも相性がよくないように思われる。 なにが困るのか ではどうするか なにが…