SMARTCAMP Engineer Blogのフィード

https://zenn.dev/p/smartcamp

SMARTCAMPに所属するエンジニアの個人記事を集めています。 記事の内容は個人の見解であり、社内でのレビュー等は行っておりません。

フィード

記事のアイキャッチ画像
課題解決のためにどう動くかの選択肢は複数あるよという反省
SMARTCAMP Engineer Blogのフィード
まえがき以前、とある課題がありその原因がビジネス向けのドキュメントが整っていないことだと思い、みんなでドキュメントを書こうとオーナシップを取ったことがありました。しかし、そもそもドキュメントが正しい解決方法なのか、他にもっと良い方法があるのではないかという提案した案が正しくなかったという失敗をしてしまいました、その時にすべきだったことを書きのこしておきます。 課題解決以前の選択肢上記失敗の原因は課題提案以前の選択肢を認識していなかったことだと思っています。課題に対する動き方として下記に具体的に選択肢を2つ上げています、どちらにもメリット・デメリットが存在しその他にも方法が...
18日前
記事のアイキャッチ画像
HTMLメールのCSSデザインで詰まったので、Claude君とメールクライアントのCSS対応状況を徹底調査
SMARTCAMP Engineer Blogのフィード
HTMLメール開発者必見!メールクライアントのCSS対応状況を徹底調査初めてZennの記事を書きます!スマートキャンプでエンジニアとして働いています!お手柔らかに... はじめに開発のあるタスクでHTMLメールに関わる開発を行うことになり、その際に少し詰まってしまいました...ローカル環境でCSSのスタイリングの問題はなかったはずがGmailなどの他のメールクライアントで見ると、「アレっ、おかしい...」ってなっちゃいました。今後も対応箇所によっては再度HTMLメールを触る可能性は十分にあり得ると思い、この際に調べてみようということで調査してみました!HTMLメール...
21日前
記事のアイキャッチ画像
ECS コンテナセキュリティのベストプラクティス
SMARTCAMP Engineer Blogのフィード
はじめにコンテナ技術の普及により、Amazon Elastic Container Service (ECS) などのコンテナオーケストレーションサービスを利用したアプリケーション開発が一般的になってきました。本記事では、AWS の公式ドキュメントを基に、ECS タスクのコンテナセキュリティについてベストプラクティスを確認していきたいと思います。 ECS コンテナセキュリティのベストプラクティス 1. 最小限のイメージを作成するか、distroless のイメージを使用するコンテナイメージに不要なバイナリを含めないようにすることで、攻撃を最小限に抑えることができます。...
2ヶ月前
記事のアイキャッチ画像
RDSをKMSで暗号化する目的
SMARTCAMP Engineer Blogのフィード
RDS を KMS で暗号化するのは一般的ですが、そもそも暗号化をする目的をあんまり気にしたことがなかったので、自分なりに調査した結果をまとめました。 RDS で KMS が守る脅威 KMS で防げるものRDS 環境で KMS 暗号化を使用することで、データベース固有の脅威から重要なデータを保護できます。 物理的脅威データセンターからのハードディスク盗難、サーバーへの物理的侵入、スナップショット、自動バックアップファイルなどの物理的な漏洩からデータを保護することができます。 クロスアカウントでの漏洩開発環境へ本番環境のスナップショットを共有したとしてもKMSキーを共...
2ヶ月前
記事のアイキャッチ画像
怠惰なHomebrewユーザーでもNixを使いたい!!
SMARTCAMP Engineer Blogのフィード
はじめに最近巷で話題のNix。耳にする頻度がだんだん増えてきました。何やらNixを使うとHomebrewとは違って宣言的にパッケージやmacOSの設定を管理できるらしいじゃないですか。奥が深いらしいNixですが様々な記事を参考にしつつ怠惰な自分でもNixを使って楽にパッケージやOSの設定を管理できたので書き残しておきます。宣言的に管理したいというモチベーションだけでNixを使用しているため本来の思想や使用用途から外れたことをしているかもしれません。ご容赦くださいmm自分は怠惰なのでNixとは何か、Nixの使い方についての詳細は省きます!!👆が分かっていなくても楽に管理でき...
2ヶ月前
記事のアイキャッチ画像
create_or_find_byの注意点
SMARTCAMP Engineer Blogのフィード
もはや暑い以外の言葉が見つからずクーラーという反転術式を覚えたい今日この頃です。さて本日はRails 5.1.5から導入されてたと言われているcreate_or_find_byを用いる際の注意点をシェアハピしていきたいと思っています。(ほぼコードコメントに書かれていることです...)https://railsdoc.com/page/create_or_find_byhttps://github.com/rails/rails/blob/984c3ef2775781d47efa9f541ce570daa2434a80/activerecord/lib/active_record/r...
3ヶ月前
記事のアイキャッチ画像
TDD勉強会をやってみた
SMARTCAMP Engineer Blogのフィード
最近は暑くて街中で日陰の争奪戦をしています。信号待ちなどでは必ず日陰に陣取りたい派です。さて今回は社内で1年ほど前に開催したTDD勉強会を開催した備忘録を公開しようかなと思います!!昨今の生成AIの進歩はすごいですが、そんな中でもTDDの考え方が使えると思っています。主に「TDDとは何か」「TDDで開発をすると何がいいのか」を社内で普及するために行なったものです!! アジェンダ当日の以下の流れで進めました。TDDの概要を知るグループ分け実践 TDDの概要を知る世の中にはたくさんのTDDの資料がありますが今回の勉強会では以下のt-wadaさんの資料を参考文献とし...
3ヶ月前
記事のアイキャッチ画像
Amazon Bedrockのコストがざっくり日本円でいくらなのかCloudWatch Logsで確認する
SMARTCAMP Engineer Blogのフィード
この記事はBedrockのコスト計算をCloudWatchでできるようにまとめてみました。 事前準備まず公式ドキュメントを参考にBedrockのログをCloudWatch Logsに出力する設定をします。https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-invocation-logging.html#setup-cloudwatch-logs-destination モデルの料金の確認https://aws.amazon.com/jp/bedrock/pricing/今回はClaude...
3ヶ月前
記事のアイキャッチ画像
Athena のトラブルシューティング
SMARTCAMP Engineer Blogのフィード
はじめにAmazon Athena でテーブル作成や検索がうまくできなかったり、毎回苦行を強いられることに悩んでいましたが(最初からドキュメント読めよ)、公式ドキュメントにめちゃくちゃ丁寧なトラブルシューティングが書かれていたので、ここにまとめたいと思います。!Athenaで主に JSON データを扱った場合の内容になっています JSON データ読み込みエラーの解決 適切な JSON SerDe の選択Athena では JSON データの処理に 3 つの SerDe が利用可能です: Hive JSON SerDehttps://docs.aws.amaz...
3ヶ月前
記事のアイキャッチ画像
デイリースクラムで進捗を聞きたくない
SMARTCAMP Engineer Blogのフィード
今年は涼しいと聞いて歓喜していながら、来年の夏に猛暑だったら泣いちゃうなぁと思っています。さて今回はデイリースクラムあるあるを言いつつ自分なりに考えた回避方法を共有します🔥 デイリースクラムとはスクラムガイドには以下のように書いてあります。デイリースクラムの⽬的は、計画された今後の作業を調整しながら、スプリントゴールに対する進捗を検査し、必要に応じてスプリントバックログを適応させることである。デイリースクラムは、スクラムチームの開発者のための 15 分のイベントである。複雑さを低減するために、スプリント期間中は毎⽇、同じ時間・場所で開催する。https://scrum...
4ヶ月前
記事のアイキャッチ画像
Devinさんもメンバーなのでエラー調査してくれますよね??
SMARTCAMP Engineer Blogのフィード
はじめに「エラー? Devin君が勝手に片付けてくれるでしょ!」──そう思って Slack を開いたものの、通知の山を前に完全沈黙を貫く De​​vin さん。AI なのに労働組合でも結成したのか、はたまたバケーション中なのか……。結局、人間がタスクを中断してトリアージに追われる羽目になった経験はありませんか?エラー対応はソフトウェア開発の生命線ですが、集中している作業を遮られると生産性は一気に急降下します。本記事では、その「動かざること CPU のごとし」な Devin にムチを入れ、自ら一次調査を黙々と片付けてもらう仕組みを構築した事例を紹介します。Slack でスタンプを...
5ヶ月前
記事のアイキャッチ画像
AWS ECS ローリングデプロイをブルーグリーンデプロイに切り替えるまでの道のり
SMARTCAMP Engineer Blogのフィード
AWS ECSでは標準的なデプロイ手法としてローリングデプロイを使用できますが、CodeDeployを使用したブルーグリーンデプロイを使用することもできます。先日ローリングデプロイからブルーグリーンデプロイに切り替える作業を行いましたが、いくつか躓くことがあったのでまとめたいと思います。 まずはじめにTerraformを使ってAWSにリソースを作成している前提です。ECSサービスAとBが存在しており、必要であればロードバランサー(以下ALB)のリスナールールでECSサービスBへリダイレクトするようにしていました。セキュリティグループやALB、ターゲットグループ、ECSサービス...
5ヶ月前
記事のアイキャッチ画像
Aurora MySQL のmax_connectionsのデフォルト値はどうやって決まっているのか調べてみた
SMARTCAMP Engineer Blogのフィード
!この記事は私の疑問をAIを使って解決し、記事としたものですが、間違っている可能性もあるので参考程度にご確認いただければ幸いです。もし間違っている箇所があればご指摘ください。 はじめにAWS RDS を使用していると、各インスタンスタイプでmax_connectionsの値が自動的に設定されています。例えば、Aurora MySQL のdb.t4g.mediumではmax_connectionsが 90 に設定されますが、なぜこの値になるのでしょうか?本記事では、AWS の公式ドキュメントと実際の計算式を基に、この謎を解明します。 結論(先に知りたい方向け)db.t4...
5ヶ月前
記事のアイキャッチ画像
自分が開発するアプリがAWS ECSに乗っかってるなら、できれば知っていて欲しいこと
SMARTCAMP Engineer Blogのフィード
想定読者自分が開発しているシステムの稼働環境がAWS ECSであることは知っているECSを触る機会がなく、ECSの全体像をイメージできない ECS(Elastic Container Service)ECS(Elastic Container Service)は、アプリケーションをコンテナ(例えばDocker)として実行するためのマネージドサービスです。ECSを使えば、インフラの管理を最小限に抑えつつ、コンテナアプリケーションのデプロイやスケーリングを効率よく行うことが可能です。もし自分が開発するアプリがECSにデプロイされているなら、以下の各要素の役割や基本的な流...
5ヶ月前
記事のアイキャッチ画像
その修正、ダウンタイムは発生しますか?
SMARTCAMP Engineer Blogのフィード
今回は、先日自分が担当したインフラ(正確にはクラウド上のインフラ)の構成変更作業を振り返りつつ、タスクの性質がいつもとは変わっていることに意識を向けられていなかった、その反省について綴ります。 わたしは...元々バックエンドエンジニアで、1年ほど前からインフラの整備も担当することになりました。 何が起きたか いつも通りのタスク私の担当タスクは、インフラの一部構成を変更するものでした。このタスクが作成された当初は旧環境から新環境へトラフィックを向けるだけで切り替えが可能なので、大きなダウンタイムは発生しないという認識でした。リリースタイミングが日中だとしても、ユーザーに...
5ヶ月前
記事のアイキャッチ画像
GitHub Actions を使うなら、気にしたほうがいいこと から1年経って得た知見
SMARTCAMP Engineer Blogのフィード
https://zenn.dev/smartcamp/articles/1444487997ae511年ほど前に GitHub Actions を使うなら、気にしたほうがいいこと というタイトルで記事を書きましたが、この1年でそれなりにGitHub Actionsを書いてきました。その中でこれ意外と使うかも、いいノウハウかもと思ったものをまとめました。 前段ワークフローが成功またはスキップの場合、実行したいワークフローによっては前段のワークフローが成功したとしてもスキップしたとしても、実行したい場合があると思います。その場合はif: ${{ !cancelled() &...
5ヶ月前
記事のアイキャッチ画像
GitHubActions 複数のCodeDeployのデプロイを新コンテナが立ち上がるまで待機するためのShell芸
SMARTCAMP Engineer Blogのフィード
GitHubActionsでCodeDeployのデプロイを行い、新コンテナが立ち上がるまで待機したい...しかも複数環境...なんてことはないでしょうか?私はあります、そんなときに使えるShell芸を紹介します。 コード例name: example workflowon: workflow_call: inputs: ENVIRONMENT: required: true type: string AWS_REGION: required: false type: strin...
5ヶ月前
記事のアイキャッチ画像
ECSサービス検出とCodeDeployのブルーグリーンデプロイを組み合わせる場合の注意点
SMARTCAMP Engineer Blogのフィード
前提app1とapp2が存在しているapp2はサービス検出を使っているapp1からapp2に対してリクエストを送信することがある 注意したいことapp2でCodeDeployのブルーグリーンデプロイが行われたとします。それぞれのフェーズの最中にapp1からapp2にリクエストが送信された場合どんな挙動になるか確認してみました。新コンテナデプロイ中旧コンテナのみ繋がる新コンテナのデプロイ完了(トラフィック切り替え待ち)旧コンテナ、新コンテナのどちらかにランダムで繋がる新コンテナへトラフィック切り替え完了(旧コンテナ停止待ち)旧コンテナ、新コ...
5ヶ月前
記事のアイキャッチ画像
過去に実行したGitHubActionsワークフローのアーティファクトを取得したい
SMARTCAMP Engineer Blogのフィード
アーティファクトをさくっと取得したいデプロイフローにいくつか手順があって、前段で実行したワークフローで保存したアーティファクトを取得したいなんてことがあると思います。そんなときはワークフローのrun_idを取得して辿ることが可能です。 コード例過去に実行したワークフローの情報を取得する際にGitHubのREST APIを使っています。ワークフローのIDを指定することも可能ですが、以下の例ではファイル名を使ってrun_idを取得しています。またQuery parametersで正常終了の場合や実行者などで条件をつけることもできます。name: Download Arti...
5ヶ月前
記事のアイキャッチ画像
CodeDeployのdeployment_idから辿って、ECSサービスタスク内のコンテナのイメージタグを取得したくなった
SMARTCAMP Engineer Blogのフィード
経緯CodeDeployを使ったブルーグリーンデプロイをしているGitHub Actionsを使ってデプロイを行っているデプロイのワークフローではコンテナのビルドのあとにデプロイという順番で処理しているコンテナをビルドしてECRにプッシュする時にイメージタグを指定しているブルーグリーンデプロイでデプロイされるECSサービスタスクとは別のECSサービスタスクをトラフィック切り替えのタイミングでデプロイを行いたい要件があり、訳あってイメージタグは同様のものを使いたい新コンテナデプロイ完了後のトラフィック切り替え待ちの状況でCodeDeployからのイベントをSNSがキャッチ...
5ヶ月前