サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
kakakakakku.hatenablog.com
最近 Hasura に入門していて,その前に GraphQL 自体を学べる Hasura のチュートリアル「GraphQL Tutorial」を実施してみた❗️ Hasura の話はほとんど出てこなくて,GraphQL と REST / gRPC の比較・GraphQL オペレーションの解説などを基礎から学べる.また実際に GraphiQL で GraphQL クエリを実行しながら体験もできるので「GraphQL ってたまに聞くけどわからんぞー🔥」という GraphQL 未経験者におすすめできる入門コンテンツだった \( 'ω')/ hasura.io ちなみに日本語もあるけど最新ではなく(例えば GraphQL vs gRPC がなかったり)英語を翻訳して実施するのが良いと思う. hasura.io ちなみに僕自身は GraphQL の基本的なことは理解できているはずだけど(例えば過去
AWS セキュリティ専門の認定資格 AWS Certified Security - Specialty (SCS-C02) を2023年12月10日に受験して合格した❗️試験問題に関係する内容はガイドラインを厳守するため書かず,今回は個人的な振り返りも兼ねて勉強方法などをまとめておこうと思う👌 aws.amazon.com 🔐 なぜ受験したのか 2023年11月頃から仕事で AWS でのセキュリティ対策全般の設計と構築にゼロベースで取り組んでいる❗️1ヶ月ほど調査・検証・リリースを繰り返しながら実践的な理解を獲得できた気がするので,知識確認も兼ねて AWS Certified Security - Specialty を受験してみようと思った.仕事は課題軸で「トップダウン」に学べて,資格取得は知識軸で「ボトムアップ」に学べるので,上からと下からを同時に攻めようという思いもあった🔥
AWS が公開しているサイト「CI/CD Litmus Test」を使うと簡単に「CI/CD スコア」と「CI/CD レベル」を測定できる❗️開発チームで実施しながらレベルを上げるにはどうしたら良いかをディスカッションすると効果的に使えそう \( 'ω')/ litmus.devops.aws.dev 流れとしては CI/CD の設計に関する「計20種類」の質問(Yes or No)にポチポチと答えていくと以下の結果が出る📊 CI/CD score CI/CD level 9.5 or above Fully CI/CD 8–9 Mostly CI/CD 5–7 Neutral Below 5 Not CI/CD GET STARTED を押す 質問に Yes or No で答える 今取り組んでる CI/CD をイメージしながら答えたら Mostly CI/CD だった! 質問一覧 最終
Trivy の「VM image scanning」を使うと AWS の Amazon Machine Image (AMI) や Amazon Elastic Block Store (Amazon EBS) スナップショットに対してセキュリティスキャンを実行できる❗️サーバーにエージェントをセットアップする必要がなく(エージェントレス),スキャンのために Amazon EC2 インスタンスを一時的に起動する必要もなく,便利だ〜 \( 'ω')/ ドキュメントにも書いてあるけど現在はまだ EXPERIMENTAL として提供されているため,今後仕様変更になる可能性はある🔥 aquasecurity.github.io さっそく試す Trivy v0.45.0 を使ってさっそく試す❗️ $ trivy --version Version: 0.45.0 今回は検証用の Amazon EC
2023年11月21日(明日📅)に出版される新著「詳解 Terraform 第3版」を読んだ📕 本書では Terraform の基本的な仕組みを学べるだけではなく,Terraform を実践的に使うときに必要になるステート管理・モジュール・シークレット管理・テストなど幅広いトピックまでまとまった一冊になっていて素晴らしかった❗️また Terraform の日本語書籍は今まであまりなく,この内容を日本語で読めることも素晴らしいと思う. 詳解 Terraform 第3版 ―Infrastructure as Codeを実現する 作者:Yevgeniy Brikmanオーム社Amazon 本書は翻訳を担当された松浦隼人さん,そしてオライリー・ジャパン様に送っていただきました.出版情報を知ったときから絶対に買おうと思っていたほど気になってました.ありがとうございます❗️ そして出版おめでとうご
Terraform で AWS IAM ポリシーや Amazon S3 バケットポリシーを実装するときに terraform plan は通るのに terraform apply で失敗したり,terraform apply は通るのにポリシー自体に誤りがあって期待通りに動かなかったり,無駄にハマってしまった経験ってないでしょうか💨少なくとも僕はたくさんあるー \( 'ω')/ そこで Terraform と AWS IAM Access Analyzer の「ポリシー検証」を組み合わせたらどうだろう❓と思って調べてみたところ,GitHub の awslabs/terraform-iam-policy-validator リポジトリに Python で実装された「IAM Policy Validator for Terraform」というツールがあった❗️今回はこの IAM Policy
Terraform チュートリアル「Custom Framework Providers」を試した❗️ Terraform から RESTful API を操作するカスタムプロバイダを実装しながら Terraform Plugin Framework の仕組みを学べて非常に良かった👌チュートリアルは計11種類から構成されていて一歩一歩進められる.3時間ぐらいあれば十分終わると思うけど,僕自身は朝活として毎日1,2個をコツコツと進めていた🕐 Implement a provider with the Terraform Plugin Framework Configure provider client Implement data source Implement logging Implement resource create and read Implement resource
「AWS ではじめるクラウドセキュリティ」を読んだ❗️とても良かった \( 'ω')/ 本書ではもちろん AWS のセキュリティサービスの機能など「サービスカットな観点」も学べるけど,それ以上に「セキュリティポリシーとは何か」や「どんなリスク分析フレームワークがあるのか」や「どういうセキュリティ管理策を検討するべきか」など,セキュリティ全般の知識を「ソリューションカットな観点」で底上げできる素晴らしい一冊だった📕 まさに本書の はじめに に載っている通りの内容だった💡 本書は、AWS のセキュリティを学ぶということ以上に、AWS を通じてセキュリティを学ぶということを主眼に執筆されました。 ちょうど最近仕事で AWS でのセキュリティ対策全般の設計と構築にゼロベースで取り組んでいて,僕自身の知識アップデートをするだけではなく,開発メンバーにも読んでもらえる本を探していて,まさにこれだ❗
「システム運用アンチパターン」を読んだ❗️ サブタイトルに「エンジニアが DevOps で解決する組織・自動化・コミュニケーション」と書いてある通り,迅速に改善を積み重ねつつサービスの価値をユーザーに提供するときに,どういう組織の振る舞いが「悪くて」どういう組織の振る舞いが「良いか」というアプローチを DevOps 視点で学べる良い一冊だった📕 システム運用アンチパターン ―エンジニアがDevOpsで解決する組織・自動化・コミュニケーション 作者:Jeffery D. SmithオライリージャパンAmazon 個人的に本書が特に刺さりそうだなーと思った読者層は,比較的レガシーな開発組織にいて「何かうまくいってない」や「何となく今のままではダメそう」とは思うけど,具体的にどう改善したら良いかというアイデアは浮かんでこないような開発責任者や肩書に関係なくもっと良い組織にしたいと感じているエン
Application Load Balancer (ALB) のリスナー設定で「固定レスポンス」を使うと ALB から直接 HTML を返せる❗️ docs.aws.amazon.com 「固定レスポンス」は2018年7月頃にリリースされていて,さらに2019年3月頃にリリースされた「高度なリクエストルーティング(送信元 IP アドレスなど)」と組み合わせたメンテナンス画面の仕組みを使うことがある✌️過去に NGINX の rewrite で頑張ってメンテナンス画面を制御してた経験があるからこそ便利に感じるのかも〜 \( 'ω')/ aws.amazon.com aws.amazon.com 設定 最終的には要件次第ではあるけど,個人的によく使っている設定を単純化したサンプルを載せる👇 通常時は Forward(優先度 1)ですべてのリクエストをターゲットグループ(アプリケーション)に
2023年10月18日に出版される新著「ChatGPT/LangChain によるチャットシステム構築[実践]入門」を読んだ & 写経した📕 読者層的には「ChatGPT って最近よく聞くしたまーに使うこともあるけど LangChain って何なのー?」という人や「LLM (Large Language Model) をアプリケーションに組み込むなんて考えたこともなかったけどできるのー?」と感じるような人に特におすすめできるかなーと💡本書を読みながら写経すると,難しいことは考えずに ChatGPT のように LLM を組み込んだアプリケーションをあっという間に構築できてしまって,とにかくワクワクして楽しめる一冊だった❗️ ChatGPT/LangChainによるチャットシステム構築[実践]入門 作者:吉田 真吾,大嶋 勇樹技術評論社Amazon 著者の一人 id:yoshidashin
Terraform で AWS Chatbot を構築したくても AWS SDK for Go との関係によって AWS Provider でサポートされていないという課題がある🔥以下のような関連する issue もある💨 github.com github.com ちなみに AWS CloudFormation では AWS::Chatbot::SlackChannelConfiguration としてサポートされている👌 docs.aws.amazon.com よくある対応策としては大きく2種類あると思う. AWS Chatbot のみ「マネジメントコンソール」で構築する AWS Chatbot のみ「AWS CloudFormation」で構築する さらに Terraform の aws_cloudformation_stack リソースを使って Terraform と AWS
Cognito User Pool の「トークンエンドポイント」からトークンを取得するリクエスト要件は以下のドキュメントにまとまっている📝 検証のために curl でトークンエンドポイントにリクエストを送信する機会があって,今後再利用できそうだからコマンドの雛形を残しておくことにした❗️ docs.aws.amazon.com パラメータ紹介 パラメータは複数あるけど今回使う代表的なものを列挙しておく〜 grant_type: 付与タイプ(authorization_code や refresh_token など) client_id: Amazon Cognito User Pool のアプリケーションクライアント(クライアント ID) client_secret: Amazon Cognito User Pool のアプリケーションクライアント(クライアントシークレット) code:
Trivy の「Misconfiguration Scanning」を使うと Dockerfile の設定ミス(セキュリティ課題やベストプラクティス乖離など)を検出できる❗️今回は Trivy を活用した Dockerfile のスキャンを試した作業ログをまとめる📝 aquasecurity.github.io ちなみに Trivy の Misconfiguration Scanning は Terraform, AWS CloudFormation など複数のスキャンをサポートしている.Trivy x Terraform を試した記事は前に公開してあって,Trivy の設定や GitHub Actions ワークフローなどはほぼ同じで OK👌 kakakakakku.hatenablog.com どんなルールがあるのか 以下の Vulnerability Database で確認でき
負荷テストを実行したいけど,ラップトップや Amazon EC2 インスタンス1台から実行すると負荷テストを実行する側がボトルネックになってしまって,期待した負荷テストにならないという悩みはよくあると思う🔥 そこで負荷テスト専用の SaaS などを活用して負荷テストを実現する案もあるけど,AWS では「AWS ソリューションライブラリ(サービスではない)」として負荷テストを実行・管理する「Distributed Load Testing on AWS (DLT)」が提供されている❗️ aws.amazon.com 僕自身は2年ほど前に Distributed Load Testing on AWS (DLT) を検証したことがあるけど,最近 Distributed Load Testing on AWS (DLT) を体験するワークショップ(日本語🇯🇵)が公開されたらしく,復習も兼ね
歴史的経緯 (?) によって構成ドリフト状態(Infrastructure as Code 本参照)になっている Amazon EC2 インスタンスが複数台あって,まずはサーバーの期待値を宣言して自動テストもしくは自動検証をする仕組みを作りたいなぁーと考えていた💡 今までの経験としては,2014-2016年頃によく使っていて,過去にブログ記事を書いていたりもする Serverspec を思い出しつつ,Ruby に依存せず実行ファイルをポンッと置いたらすぐに使えるようなツールがあったら良いなぁーと思って探していたところ,Go で実装されていて,サーバーの期待値を YAML で宣言できる「Goss」を発見した👀 実際に試してみたらとても便利で最高だったので,検証ログをまとめて公開することにした❗️ github.com 検証環境 今回は別の検証環境として使っていた Amazon EC2 イ
2023年9月5日に AWS SAM CLI の Terraform サポート機能が GA (正式リリース)になった👏 Amazon API Gateway や AWS Lambda 関数などサーバーレス関連のコンポーネントは Terraform で統一的に管理しつつも,AWS SAM CLI の開発支援機能(sam local invoke コマンドや sam local start-api コマンドでローカルデバッグ)は使いたい❗️という場面はあって非常に便利な組み合わせだと思う. aws.amazon.com 実際にどういう開発体験なのかを確認するために AWS ブログに載っていたサンプルを試してみる \( 'ω')/ aws.amazon.com 検証環境 今回は macOS 上で SAM CLI 1.97.0(最新)と Terraform 1.5.7(最新)を使う. $ sam
Amazon Athena で Application Load Balancer (ALB) のアクセスログを検索するときにタイムスタンプ time のタイムゾーンは UTC になっている💡検索するときに JST に変換したい❗️と思う場面があって,最近クエリを作っていたため,今後すぐに再利用できるようにクエリサンプルをメモしておこうと思う \( 'ω')/ サンプル: SELECT 単純に time を JST で表示するなら parse_datetime 関数と AT TIME ZONE オペレータを組み合わせる👌 SELECT parse_datetime(time, 'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') AT TIME ZONE 'Asia/Tokyo' AS time, request_verb, request_url, elb_sta
Amazon ECR で Basic scanning(基本スキャン)を使う場合に「リポジトリレベル」の設定は現在推奨されてなく,マネジメントコンソール上だと リポジトリレベルの ScanOnPush 設定は非推奨となり、レジストリレベルのスキャンフィルターが優先されます。 のように警告が表示される🚨 現在は「レジストリレベル」での設定をする必要がある💡 Terraform だと aws_ecr_registry_scanning_configuration リソースを使って設定できる.scan_type には BASIC もしくは ENHANCED を設定できて,今回は東京リージョン (ap-northeast-1) と大阪リージョン (ap-northeast-3) に設定するため BASIC とする.大阪リージョンに Amazon Inspector 来てくれぇ〜🙏 aws_e
Trivy の「Misconfiguration Scanning」は Terraform をサポートしていて(AWS CloudFormation もサポートしている👏),Terraform コードのセキュリティ課題や設定ミスを検出できる❗️Trivy を活用した Terraform のスキャンを試した作業ログをまとめる📝 aquasecurity.github.io tfsec から Trivy へ 🔜 tfsec は現在も使えるけど,今後は Trivy に移行する流れとなっている💡 GitHub Discussions に今年2月頃 tfsec is joining the Trivy family というアナウンスが投稿されている❗️ github.com さらに GitHub の tfsec リポジトリ(master ブランチ)に今年5月頃 Migrating from
Terraform コードを書きながらセキュリティ観点の警告を把握できるため tfsec を導入すると便利❗️ tfsec では AWS, Microsoft Azure, Google Cloud などさまざまなプロバイダをサポートしている👏 最近 AWS プロバイダを前提に tfsec を導入する機会があって,個人的に検証した作業ログをまとめる📝 aquasecurity.github.io また tfsec は前に紹介した TFLint と一緒に導入しておくとさらに便利〜 \( 'ω')/ kakakakakku.hatenablog.com tfsec をセットアップする tfsec のセットアップは macOS だと Homebrew を使えば簡単〜 今回は tfsec v1.28.1 を前提にする. $ brew install tfsec $ tfsec --versio
Application Load Balancer (ALB) の設定項目 routing.http.drop_invalid_header_fields.enabled を有効化すると不正な HTTP ヘッダーをターゲットに転送せず ALB で自動的に削除できるようになる💡 HTTP ヘッダー名は正規表現 [-A-Za-z0-9]+ で表現する必要があって,例えば _ を HTTP ヘッダー名に使うと不正と見なされて削除対象になる.試してみる❗️ ちなみに設定項目 routing.http.drop_invalid_header_fields.enabled のコンソールでの日本語表記は 無効なヘッダーフィールドを削除 で,英語表記だと Drop invalid header fields となる📝 デフォルトでは「OFF」になっている. docs.aws.amazon.com 検証
書籍「LOVED」を読んだ📕どうしたらプロダクトを通して市場とユーザーのニーズに応えられるのか.どうしたらプロダクトを認知してもらえるのか.本書は「プロダクトマーケティング」というテーマで,理論・アプローチ・事例まで学べる刺激的な一冊だった. と同時に本書を読んだだけで満足するのではなく,実際にプロダクト(もしくは何かしらプロダクトのようなもの)でアプローチを実践をすることで学びを深められる一冊でもあると感じた👏 本書は翻訳者であり友人でもある id:ykmc に送っていただいた.ありがとう❗️そして2冊目の出版本当におめでとう🎉 LOVED 市場を形づくり製品を定着に導くプロダクトマーケティング 作者:マルティナ・ラウチェンコ日本能率協会マネジメントセンターAmazon 僕自身は今ソフトウェアエンジニアとして実際にプロダクト開発をしているけど,マーケティングは自分には関係ないと考え
Terraform を使うときに記法やお作法を共通化してベストプラクティスに近付けるために TFLint を導入すると便利❗️ 最近 TFLint を導入する機会があったので作業ログをまとめる📝 github.com TFLint をセットアップする TFLint のセットアップは macOS だと Homebrew を使えば簡単〜 今回は TFLint v0.47.0 を前提にする. $ brew install tflint $ tflint --version TFLint version 0.47.0 + ruleset.terraform (0.4.0-bundled) TFLint を実行する 基本的には tflint コマンドを実行すれば OK👌 該当する Warning があるとだーっと表示される. $ tflint 10 issue(s) found: もしモジュール
2023年5月に出版された「スタッフエンジニア」を読んだ❗️ エンジニアのキャリアパスとその役割などがうまく整理されていて良かった.そして,スタッフエンジニア(日本語にすると最上級エンジニア?)に限らず,組織に貢献しどう信頼を勝ち得るのか?という振る舞いもうまく言語化されていた.自分自身のキャリアパスや得意不得意などを振り返りながら読めたのも良くて,今後の行動指針のプラスになった✌️ また本書の後半では実際にスタッフエンジニアとして活躍されている人のインタビューが載っていて,さらに日本での事例も追加収録されていた👏 どの人に共感できるのか,どの人の振る舞いを真似てみたいのかなど,ここも自分自身を振り返りながら読めた. スタッフエンジニア マネジメントを超えるリーダーシップ 作者:Will Larson日経BPAmazon 目次 第1部 : スタッフとして活躍するために 第1章 : 全体像
Terraform で Amazon ECR リポジトリのライフサイクルポリシーを設定するときに aws_ecr_lifecycle_policy リソースのドキュメントを読むとヒアドキュメントを使った例が載っている📝 個人的にはヒアドキュメントを使いたくなく,他の実装案を考えながら試してみた❗️ aws_ecr_repository | Resources | hashicorp/aws | Terraform Registry aws_ecr_lifecycle_policy | Resources | hashicorp/aws | Terraform Registry 1. ヒアドキュメントで直接書く まずはドキュメントに載っているヒアドキュメントの例を試す.今回はサンプルとして Policy on tagged image のライフサイクルポリシーを使っている.ヒアドキュメント
2023年6月8日にリリースされた Amazon SQS の新しい API 3種類によって,Amazon SQS のデッドレターキュー (DLQ: Dead Letter Queue) に移動されたメッセージを "元のキュー" や "別のキュー" に戻す「DLQ 再処理」を AWS CLI / AWS SDK などから実行できるようになる.今まではマネジメントコンソールでのみ使えていたけど,今後はアプリケーションからも実行できるため,例えば「リカバリ処理」の自動化などに活用できて良さそう❗️ StartMessageMoveTask CancelMessageMoveTask ListMessageMoveTasks さっそく AWS CLI で検証してみた✌️ aws.amazon.com aws.amazon.com 構成 今回は以下のように3つの Amazon SQS キューを作った
The GitHub Blog の記事 Enabling branch deployments through IssueOps with GitHub Actions を読んで「branch deployments(ブランチデプロイ)」というデプロイ戦略を知った💡 プルリクエストを main ブランチにマージしてから本番環境にデプロイするのではなく,プルリクエストを直接本番環境にデプロイして,動作確認の結果問題なしと判断できてからプルリクエストを main ブランチにマージするという流れが特徴的❗️そして,デプロイに異常があってロールバックする場合は main ブランチをデプロイして復旧する💡 記事に載ってるブランチ画像(Merge Deploy Model と Branch Deploy Model)は非常にわかりやすく見てみてもらえればと〜 github.blog IssueOp
API のテストを自動化するなら Step CI が便利❗️ ちょうど導入するかどうか検証をしていて,とても良かったので紹介も兼ねてまとめたいと思う📝 Step CI は API として REST 以外に GraphQL や gRPC などもサポートしていて,実行方法としては CLI や GitHub Actions 以外に Jest など多くのサービスとの連携もサポートしている👏 また OpenAPI 仕様書からテストワークフローを自動生成する機能もある \( 'ω')/ stepci.com docs.stepci.com セットアップ Step CI CLI は Homebrew や npm を使って簡単にセットアップできる.Step CI はデフォルトだと使用状況データを収集するため,気になるなら環境変数 STEPCI_DISABLE_ANALYTICS を設定しておくと良いと
次のページ
このページを最初にブックマークしてみませんか?
『kakakakakku blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く