gitkadoの気まぐれ日記

島根在住エンジニアが何かに興味を持ったらブログを更新します

色んな画像生成AIにスイカゲームの画像を書かせてみた

生成AIを使って画像生成のpromptを作成する 各画像生成AIに同じpromptを投げてみる DALLE3 DALLE2 Stability AI SDXL 1.0 Stability AI SDXL 0.8 Amazon Titan Image Generator G1 Preview 料金 まとめ 最近流行り?の「スイカゲーム」について生成AIで遊んで…

DockerComposeの起動順を制御する

開発環境でcompose.ymlを使用してると実行順を制御したくなることがある。 具体的にはDBコンテナよりAPIコンテナが先に起動するとmigrationなどがコケてつらい。 昔のワタシ 以下の公式ドキュメント(ja)にあるようにwait-for-xx.shを実行して制御していた。 …

【フロントエンド開発のためのテスト入門】読んだ備忘録

自分用に フロントエンド開発のためのテスト入門 を読んだ備忘録を残しておきます。 以下、自分が付箋をはってた箇所をピックアップします。 備忘録 2-4 テスト戦略モデル テストピラミッドは有名で何度も聞いたことがあった。 アイスクリームコーン型・テス…

快適な開発環境のために

こんにちは。松江市在住でエンジニアやってます。 普段はリモートでWEBアプリケーションを開発しています。 こちらは「山陰 Advent Calendar 2022 - Adventar」の4日目の記事です。 何を話すか IT業界は便利なツールが毎日のように開発されています。 その中…

Auth0でIP制限を実現しようとしたが断念した話

特定グローバルIP(以下、GIP)からのリクエストのみ許可する機能(以下、IP制限)を実装する必要があった。 認証プラットフォームとしてAuth0を使用しているので、以下のように実装してみた。 どうやってAuth0のログイン後に処理を追加するのか 少し調べてみる…

AWS Fault Injection Simulator (FIS) 触ってきた

はじめに ユニットテストは自動化(コード化)する E2Eテストも実施する オンプレからクラウドへ移行する アプリケーション負荷を考慮して冗長化構成をとる これで安全なアプリケーションになった!と思っていたが悲劇は起きた。 AWSのDynamoDBに障害が発生し…

CloudFront Functionsがリリースされました!

CDN CDNとは、「コンテンツデリバリーネットワーク」(Content Delivery Network) の略で、世界中に張り巡らされた配信ネットワークを利用して、Webサイトにアクセスしようとするユーザーに効率的かつ高速にWebコンテンツを配信するしくみです。【転載】 【CD…

【備忘録】MacにNode.jsをインストール

Dockerでの開発だと色々と不便だったのでホストに入れることにした。 直接入れるのは嫌なのでバージョン管理できるようにした。 余談: 最近のMacでデフォルトでzshなんですね。知らんかった anyenv install git clone https://github.com/riywo/anyenv ~/.an…

最近知ったこと(gRPC編)

仕事でgRPCを触る可能性があったので軽く調べてみました。 前提知識としてRPCを簡単に説明します。 RPC(RemoteProcedureCall) ネットワーク経由で別環境の関数を呼び出す技術 gRPCとは Googleが開発したRPCフレームワーク マイクロサービス間の接続やデータ…

最近知ったこと(AWS FireLens編)

TL;DR Amazon ECSコンテナからのログ送信がかなり柔軟に設定できるようになった。 (しかもすごく簡単!) これまで ECSコンテナからログを出力する場合に、LogDriver: awslogsを以下のように設定すると、Amazon CloudWatch Logs にログが送信されます。 LogCo…

最近知ったこと(Amazon RDS Proxy編)

TL;DR AWS LambdaからDBサーバ(RDS)に繋ぐのがアンチパターンとは言い切れなくなった。 事前説明 DB(RDBMS)には最大同時接続数なる設定値が存在します。 Lambdaはリクエスト毎にコンテナを起動して関数処理を行います。 (リクエスト数 = コンテナ数) これま…

自分用 Vuejsルールを書いてみた

自分用 Vuejsルール 単一ファイルコンポーネント 基底コンポーネント シングルインスタンスコンポーネント コンポーネント名 テンプレート内コンポーネント名 JS内コンポーネント名 propsプロパティ名 ディレクティブ短縮記法 その他 趣味プロダクトでVuejs…

SAM使って文字起こし&言語分析してみた

はじめに 先日開催された JAWS-UG Shimane#10 で行ったハンズオンが非常に面白かったです。 ざっくり下図のような構成のハンズオンで、以下のリポジトリがハンズオンの資料です。 https://github.com/harunobukameda/Amazon-Translate---Amazon-Polly---Amaz…

ちょっとirb使わせて!ってなったメモ

Dockerでirb実行できました ちょっとしたことを試したかった。そう、Rubyで。 あて、irbっと。あれ?Ruby入ってない... ※ 業務用Windowsでの話です dockerは入ってる!よし、なんとかなりそう。 ちょっと手を加えたら日本語も入力できた。メデタシメデタシ $ docke…

aws sam initを試してみた(Go)

はじめに gitkado.hatenadiary.jp Goに興味が湧いたので、Goで試してみました。 実行環境はAWSのCloud9です。 開発環境準備 Cloud9使います! Go 以下の手順にそってGoの環境を構築する。 gitkado.hatenadiary.jp sam initを試す (Go) $ sam init --runtime …

Go備忘録 -struct周辺-

go

Go備忘録 -struct周辺- Goにはクラスがない。代わりにstructを使用する structはクラスのように関数定義できない(初めての経験) Example struct定義 type Person struct { FirstName string LastName string } // 変数定義 // フィールド値なし var person…

Go備忘録 -defer-

go

Go備忘録 -defer- 呼び出し元関数が終了(return)するまでdeferに与えた関数は評価されない。 deferに与えた関数の引数などは、その時点の値で実行される。 呼び出し元関数でdeferを複数実行している場合は、あとで呼ばれたdeferが先に評価される。 実行 pack…

Go備忘録 -for-

go

Go備忘録 -for- Goで繰り返し処理を行う場合はforを使うしかありません。 forの色々 sum := 0 // 初期化; 条件(真の間繰り返し); 後処理 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) sum := 1 // 初期化と後処理を省略 for sum < 1000 { sum += …

Go備忘録 -ポインタ-

go

Go備忘録 -ポインタ- 詳しい説明はこの記事に書いてありました。 ポインタ使い方 // 適当なオブジェクト(int型) obj := 100 // int型のポインタ格納用変数定義 var pointer *int // int型のポインタ格納用変数定義+objのポインタを代入 var pointer *int = &…

lambdaからpsqlおよびpg_dumpを実行する

lambdaからpsqlおよびpg_dumpを実行する Dockerコンテナ起動 目的はpostgresqlソースを取得すること lambda実行環境を再現したDockerImageじゃないとOS依存部分でコケる FROM lambci/lambda:build-ruby2.5 # postgresql install RUN yum install -y postgres…

ECSデプロイにECRを使ってみた(1/2:ECRにImage作成)

はじめに 以前はオンプレ環境のDockerを想定した使い方を記事にしましたが、 今回はECR(ECS)の使い方について記事にしていこうと思います。 ECS/ECRとは ECRにリポジトリ作成 DockerfileからDockerイメージ作成 Containerデプロイの流れ(ECS) ECS/ECRとは EC…

LambdaEventSourceMappingを忘れないための備忘録

忘れないように自分用のメモ 暇になったらKinesis起点でLambda挟んでー..とか試してみます。 Lambdaの立ち位置(個人意見) Lambdaは縁の下の力持ち的な立ち位置だと思ってます。 AWSのマネージドサービスを駆使したアーキテクチャの場合、 コンポーネント間…

cloud9でcodecommitをcloneする

はじめに CodeCommitのリポジトリはCloud9から簡単に取得できる。 詳しくは、AWS公式のココで説明されています。 手順 cloud9で以下の手順を実行することで設定完了 # config git config --global user.name "hoge" git config --global user.email hoge@exa…

sam local invoke で環境変数が読み込めないトラブル解決方法

はじめに AWS SAM のCLIで sam local invokeという Lambda関数をローカル実行するコマンドがあります。 前提 cloud9でLambda関数およびLambdaLayerを開発 Lambda関数 Layer(2種)を使った処理 環境変数GEM_PATHを設定 LambdaLayer(2種) gem 定数や独自実装メ…

aws sam initを試してみた(Ruby)

はじめに AWS SAMという素晴らしいものがある。 簡単に説明すると、こんな感じです。 サーバレス最適化CloudFormation拡張 サーバレスアプリケーションのローカル開発 Lambdaを作らなくても検証可能 AWS上じゃなくても検証可能 サンプルを作る機能(sam init)…

Cloud9のミドルウェア更新

はじめに AWSのCloud9がめちゃめちゃ便利! 必要なミドルウェアがほぼほぼ揃ってるのが非常にありがたい! ただ想定バージョンではない場合が結構あるので、以下に更新方法書いていきます。 Ruby デフォルトだとRuby2.6.0が入っている(20190701時点) Lambd…

【aws INNOVATE】AWS認定 試験対策 セッション5

セッション aws INNOVATE 「運用上の優秀性(オペレーショナルエクセレンス)を備えたアーキテクチャを定義する」 「クロージング」 各セッション情報はこちら 概要 運用上の優秀性を実現するソリューションの設計特性を選択する 運用上の優秀性を実現するソリ…

【aws INNOVATE】AWS認定 試験対策 セッション4

セッション aws INNOVATE 「コスト最適化アーキテクチャを設計する」 各セッション情報はこちら 概要 コストを最適化したストレージの設計方法を決定する コストを最適化したコンピューティングの設計方法を決定する 押さえるワード AWS料金体系 従量課金性 …

【aws INNOVATE】AWS認定 試験対策 セッション3

セッション aws INNOVATE 「セキュアなアプリケーションおよびアーキテクチャを規定する」 各セッション情報はこちら 概要 セキュアなアプリケーションおよびアーキテクチャを規定する アプリケション層の保護方法を決定する データの保護方法を決定する 単…

【aws INNOVATE】AWS認定 試験対策 セッション2

セッション aws INNOVATE 「パフォーマンスに優れたアーキテクチャを定義する」 各セッション情報はこちら 概要 高パフォーマンスなアーキテクチャの設計 高パフォーマンスなストレージおよびデータベースを選択する パフォーマンス向上のためキャッシュを使…