2021-01-01から1年間の記事一覧

Terraformでmodule利用時にデフォルト値と動的な値を設定する

概要 Terraformでmodule利用時にデフォルト値と動的な値を設定する。 例としてECSのタスク定義の環境変数を用いる。 バージョン terraform -version Terraform v0.14.3 コード モジュール側 modules/hoge/variable.tf variable "environments" { type = list…

GitHub Actionsでmilestoneが適用されていないPRを検知する

概要 PRオープン時にマイルストーンがついているか検知する ついていなかったらCIを落とす を実現したかったが方法に難があるのでメモを残す。 マイルストーンとは https://docs.github.com/ja/issues/using-labels-and-milestones-to-track-work/about-mile…

GitHub Actionsからリリースノートの自動生成機能を使う

概要 GitHubにはリリースノートの自動作成機能がある。 .github/release.ymlをおいておけばそのフォーマットどおりにラベルをグルーピングしてサマリを作ってくれる。 Automatically generated release notes - GitHub Docs yamlのサンプルは下記。 https://…

退職エントリ

概要 10月31日で現職を退職します。 2017/4~2019/7 合同会社DMM 2019/8~2021/10 合同会社EXNOA(DMM GAMES) プラットフォームチームでDevOpsやSRE領域の活動をしてきました。 (開発から運用までのワークフロー整備・改善など。) チームメンバーや会社に助け…

GitHub Actionsのservice containersでCI実行時にMySQLコンテナを動かす

概要 GitHub Actionsのservice containersという機能を使うと、CI上でコンテナを動かすことができる。 ユースケースとしては統合テストや、マイグレーションテストが想定される。 About service containers - GitHub Docs 例 .github/workflows/test.yaml na…

Dockerfileのヒアドキュメントを試す

概要 前提知識 環境 動作検証 syntaxについて syntaxとは docker/dockerfileとは xxx-labsとは 参考 まとめ 概要 docker/dockerfile:1.3.0-labsからDockerfileでヒアドキュメントがサポートされた。 https://github.com/moby/buildkit/blob/master/frontend/…

Locustで時間に応じて一定のRPSをかける

概要 Locustで時間に応じて一定のrpsを流す 結論 constant_pacingとLoadTestShapeを利用する。 バージョン Locust v1.6.0 例 120秒かけて0->100rpsまで上げる 120秒間100rpsをかける 120秒かけて100->1rpsまで下げる 1秒に1回タスクを実行するようにして、ユ…

Locustで複数パス・複数ホストへリクエストし、それぞれ個別にGrafanaでグラフ化する

概要 負荷試験ツールのLocustを使ってWebシステムに負荷をかける。 その時、リクエストのホスト、パス毎に負荷試験結果をグラフ化したい。 Locustで上記を実現するにはどうすればよいか記録する。 バージョン Locust v1.6.0 Grafana v8.0.x Prometheus v2.28…

負荷試験ツールの選定時に考慮することまとめ

概要 負荷試験ツールの選定を行うときに考慮することをまとめる 機能 ログインが必要なページへの対応 Cookie変更など 負荷分散機能 負荷試験クライアントマシンのリソース上限に達する場合は負荷分散を考慮する必要あり 複数ユーザ対応 ファイル読み込み等…

複業の契約が半年間継続したのでやっていることをまとめる

概要 案件獲得 勤務形態 勤務時間、勤務ペース 担当範囲 Tips タスクの認識合わせ 期待値の共有 稼働時間のズレ 業務の改善提案 ドキュメント整備 未経験の技術について 健康 その他感想 副業の目的を明確にする 開発規模の違い 依存先が分散する サイクルを…

AWS ECS構築時のメモ

AWS

概要 AWS ECSのデプロイフローを構築したときのメモを書き起こす。 terraform version0.13.2 CI/CD GitHub Actions aws-actions/amazon-ecs-render-task-definition@v1 及び aws-actions/amazon-ecs-deploy-task-definition@v1 を利用する。 dev環境 ビルド…

DevOpsチェックリスト技術編

概要 以前書いたメモを公開する。 DevOpsは技術面と文化面があるので、技術編としている。 バージョン管理・ブランチ戦略 Gitでバージョン管理している ブランチ戦略を決定している 基本はGitHub flowもしくはgit flowに合わせる。 CI 自動的にビルドできる …

Amazon CloudWatch SyntheticsとAWS Chatbotで外形監視をSlackに通知する

AWS

概要 Amazon CloudWatch Synthetics + AWS Chatbotで外形監視の通知システムを作ったのでログに残す。 構成図 作業内容 今回の通知は本番環境のみ利用するのでコード化せず、GUIで作成した。 作業詳細は公式ドキュメント参照。 https://docs.aws.amazon.com/…

JavaScriptで数値の有効範囲でバリデーションする

概要 JavaScriptの有効値による丸め方法 Math.max(x,<有効数字の下限>) Math.min(x,<有効数字の上限>) 例:10進数のRGB値を16進数に変換するとき0~255を有効値とする。 有効範囲を超える値は最も近い値に丸める場合、下記のようになる。 Math.min(Math.max(1…

K8s負荷試験作業記録

概要 環境 事前準備 負荷試験実施 確認事項 メトリクス 考慮点 スケールアップかスケールアウトか PodとNodeのスケールアウト速度の差 スケール特定 アプリケーション特性 改善点 作業人員不足 参考 概要 負荷試験を実施したので記録する 環境 AWS(EKS)、Dat…

CloudWatch Syntheticsでロールが作れないとき

AWS

概要 AWS CloudWatch SyntheticsのcanaryをGUIで作成するとき、 「Create a new role」がグレーアウトして押下できない。 原因 S3のパスを変更していたから。 IAM Roleを自動作成するとき、ポリシーの設定がデフォルトのS3パスになっている。 そのため、S3の…

package.jsonのバージョンを固定する

環境 $node -v v14.15.0 $npm -v 6.14.10 結論 $npm config set save-exact true https://docs.npmjs.com/cli/v7/using-npm/config#save-exact。 設定は.npmrcに書き込まれる。 renovateを利用するときにバージョンを固定する必要があるので、この設定が有用…

GitHub Actionsで特定のディレクトリ配下が変更されたときだけワークフローを発火する

概要 GitHub Actionsで特定のディレクトリ配下のファイルが変更されたときにワークフローを発火する方法。 結論 トリガーにpathsを使用する。 下記のように書くとhogeディレクトリ配下のファイルが変更されたときのみワークフローが発火する。 on: push: pat…

direnvを使ってTerraformにAWSクレデンシャルを設定する

バージョン $direnv --version 2.21.2 $tf --version Terraform v0.13.2 方法 Terraformのホームディレクトリに下記の.envrcを追加する。 AWS_PROFILE="<PROFILE_NAME>" AWS_DEFAULT_REGION="ap-northeast-1" .gitignoreに.envrcを追加する。 .envrc これで対象のディレク</profile_name>…

未知のライブラリ、フレームワーク、サービスを使うときのキャッチアップ方法

概要 キャッチアップ方法 1. コンセプト、モチベーションを知る 検索方法 2.用語をざっくり知る 検索方法 3.動かす 検索方法 4.ベストプラクティスを調べる 検索方法 わからない事があったとき 前提 検索順番 例 1. コンセプト、モチベーションを知る 2.用語…

2021年1月時点Next.jsのGraceful Shutdown実装状況調査

概要 Next.jsをコンテナで動かすときにGraceful Shutdownが実装されているか気になった。 12月の調査時点ではcanaryだったが、すでにリリースされていた。 本当は「2020年12月時点Next.jsのGraceful Shutdown実装状況調査」だったが、 今の状況だと「Next.js…