2021-01-01から1年間の記事一覧
概要 Terraformでmodule利用時にデフォルト値と動的な値を設定する。 例としてECSのタスク定義の環境変数を用いる。 バージョン terraform -version Terraform v0.14.3 コード モジュール側 modules/hoge/variable.tf variable "environments" { type = list…
概要 PRオープン時にマイルストーンがついているか検知する ついていなかったらCIを落とす を実現したかったが方法に難があるのでメモを残す。 マイルストーンとは https://docs.github.com/ja/issues/using-labels-and-milestones-to-track-work/about-mile…
概要 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上でコンテナを動かすことができる。 ユースケースとしては統合テストや、マイグレーションテストが想定される。 About service containers - GitHub Docs 例 .github/workflows/test.yaml na…
概要 前提知識 環境 動作検証 syntaxについて syntaxとは docker/dockerfileとは xxx-labsとは 参考 まとめ 概要 docker/dockerfile:1.3.0-labsからDockerfileでヒアドキュメントがサポートされた。 https://github.com/moby/buildkit/blob/master/frontend/…
概要 Locustで時間に応じて一定のrpsを流す 結論 constant_pacingとLoadTestShapeを利用する。 バージョン Locust v1.6.0 例 120秒かけて0->100rpsまで上げる 120秒間100rpsをかける 120秒かけて100->1rpsまで下げる 1秒に1回タスクを実行するようにして、ユ…
概要 負荷試験ツールのLocustを使ってWebシステムに負荷をかける。 その時、リクエストのホスト、パス毎に負荷試験結果をグラフ化したい。 Locustで上記を実現するにはどうすればよいか記録する。 バージョン Locust v1.6.0 Grafana v8.0.x Prometheus v2.28…
概要 負荷試験ツールの選定を行うときに考慮することをまとめる 機能 ログインが必要なページへの対応 Cookie変更など 負荷分散機能 負荷試験クライアントマシンのリソース上限に達する場合は負荷分散を考慮する必要あり 複数ユーザ対応 ファイル読み込み等…
概要 案件獲得 勤務形態 勤務時間、勤務ペース 担当範囲 Tips タスクの認識合わせ 期待値の共有 稼働時間のズレ 業務の改善提案 ドキュメント整備 未経験の技術について 健康 その他感想 副業の目的を明確にする 開発規模の違い 依存先が分散する サイクルを…
概要 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は技術面と文化面があるので、技術編としている。 バージョン管理・ブランチ戦略 Gitでバージョン管理している ブランチ戦略を決定している 基本はGitHub flowもしくはgit flowに合わせる。 CI 自動的にビルドできる …
概要 Amazon CloudWatch Synthetics + AWS Chatbotで外形監視の通知システムを作ったのでログに残す。 構成図 作業内容 今回の通知は本番環境のみ利用するのでコード化せず、GUIで作成した。 作業詳細は公式ドキュメント参照。 https://docs.aws.amazon.com/…
概要 JavaScriptの有効値による丸め方法 Math.max(x,<有効数字の下限>) Math.min(x,<有効数字の上限>) 例:10進数のRGB値を16進数に変換するとき0~255を有効値とする。 有効範囲を超える値は最も近い値に丸める場合、下記のようになる。 Math.min(Math.max(1…
概要 環境 事前準備 負荷試験実施 確認事項 メトリクス 考慮点 スケールアップかスケールアウトか PodとNodeのスケールアウト速度の差 スケール特定 アプリケーション特性 改善点 作業人員不足 参考 概要 負荷試験を実施したので記録する 環境 AWS(EKS)、Dat…
概要 AWS CloudWatch SyntheticsのcanaryをGUIで作成するとき、 「Create a new role」がグレーアウトして押下できない。 原因 S3のパスを変更していたから。 IAM Roleを自動作成するとき、ポリシーの設定がデフォルトのS3パスになっている。 そのため、S3の…
環境 $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で特定のディレクトリ配下のファイルが変更されたときにワークフローを発火する方法。 結論 トリガーにpathsを使用する。 下記のように書くとhogeディレクトリ配下のファイルが変更されたときのみワークフローが発火する。 on: push: pat…
バージョン $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.用語…
概要 Next.jsをコンテナで動かすときにGraceful Shutdownが実装されているか気になった。 12月の調査時点ではcanaryだったが、すでにリリースされていた。 本当は「2020年12月時点Next.jsのGraceful Shutdown実装状況調査」だったが、 今の状況だと「Next.js…