Cloud / SRE
AWS
Google Cloud
Terraform
EKS / ECS / Lambda / CloudFormation / CDK / RDS / MGN / Amazon Connect、GKE、Azure。約8年。
キャリアの出発点は DB とインフラの運用保守です。Oracle RAC や Exadata の運用と障害対応を続けるなかで、監視と手順のどこが欠けると復旧が遅れるのかを見てきました。
そこから AWS・Azure・Google Cloud、Kubernetes、CI/CD、可観測性へと範囲を広げ、いまは大手Sier様の案件で自動車メーカー2社、大手グルメサイト、大手求人サイトのシステムを担当しています。要件定義から設計・構築・運用改善まで受け持ち、テックリード兼スクラムマスターとしてチームも回しています。
監視は入れて終わりではありません。障害が起きたとき、誰がどの画面を見て何分で原因にたどり着けるか。そこから逆算して設計するのが自分のやり方です。
EKS / ECS / Lambda / CloudFormation / CDK / RDS / MGN / Amazon Connect、GKE、Azure。約8年。
EKS on Fargate、GKE マルチクラスタ、kubeadm によるオンプレミス 6 クラスタ。約5年。
Pushgateway、Alertmanager、Zabbix、Hinemos、Elastic Stack も。約7年。
Vespa の検証・導入。Oracle(RAC / Data Guard)、MySQL、PostgreSQL、IBM Db2、SQL Server、Redshift。約9年。
Go / Python / TypeScript / Java / PHP / SQL・PL/SQL。CLI、Web API、Exporter を書きます。
Jenkins、Concourse、CodePipeline、Helmfile、SOPS、Ansible。約6年。
実際に担当した構成を draw.io で描き起こしました。守秘義務があるため、顧客名や固有の設定は外し、構成の考え方が伝わる粒度にしています。図をクリックすると拡大、.drawio は draw.io でそのまま開けます。
Fargate では DaemonSet も特権コンテナも使えません。ノードに常駐させる型の監視エージェントが置けず、メトリクスとトレースが取れない空白ができていました。
OpenTelemetry Collector を各 Pod にサイドカーとして同居させ、アプリから OTLP で受けて New Relic と Datadog へ送る形に変えました。デプロイは ArgoCD の ApplicationSet で、複数クラスタへ同じ定義を配ります。Snowflake のコストと性能は Prometheus Exporter で取り込み、異常を検知したら Lambda と Amazon Connect で自動エスカレーションします。
MTTR を約40%短縮。リリースのリードタイムは数時間から数十分に縮みました。
クラスタが増えても同じ手順で再現でき、特定ベンダーの機能に縛られない基盤にすること。
管理クラスタに ArgoCD と Harbor を置き、ワークロードクラスタへ GitOps で同期します。全リリースは Helmfile で宣言し、Secret は SOPS + age で暗号化したまま Git に置きます。入口は NGINX Ingress。OAuth2 Proxy の auth_request と Dex(OIDC)で、アプリのコードに触れずに認証を足しました。TLS は cert-manager が自動更新し、トレースとメトリクスは OpenTelemetry から Prometheus、Grafana へ流します。
同じ構成を個人開発の study-ckad で公開しています。オンプレミスでは kubeadm で 6 クラスタを構築し、インストールからワークロードの実装・運用まで担当しました。
Prometheus は取りに行く(pull)方式です。数十秒で終わる単発ジョブは scrape の間に消えてしまい、値を取りこぼします。系列が増えると、Prometheus 単体で長く抱えるのも苦しくなります。
単発ジョブは終了時に Pushgateway へ push し、それを Prometheus が scrape します。量の多いメトリクスは VictoriaMetrics に保持させ、Grafana の Datasource に追加しました。直近は Prometheus、大量・長期の系列は VictoriaMetrics と、同じ Grafana から見分けて引けます。
取りこぼしていたバッチ系のメトリクスも、常駐サービスと同じ Grafana で追えるようになりました。
検索の体験は検索基盤の出来で決まります。企画や他の開発チームと要件定義の段階から話し、実現方法をエンジニア側から提案しました。
Apache Solr の導入・運用管理と性能チューニング、インデックス処理の実装、検索 API とのインターフェース設計・保守、CI/CD とモニタリングの整備。高トラフィック・大規模データ前提の構成設計と、技術的負債の整理も受け持ちました。
Elasticsearch と Vespa を同じデータ・クエリで比較検証し、導入まで対応しています。
SRE。EKS on Fargate、GKE マルチクラスタ、kubeadm 6 クラスタ、Solr 検索基盤、監視基盤。テックリード/スクラムマスター(全体約25名)。
無停止要件の決済代行で staging 検証とロールバック手順を CI/CD に組み込み、無停止デプロイを実現。Go で Exporter を実装。アーキテクト。
Azure Monitor による監視設定と Logic Apps によるデプロイ自動化。
PL/SQL によるパフォーマンスチューニングとパッケージ作成。
AWS MGN でオンプレミスから AWS へ。DB・OS・アプリの全層で動作確認まで完遂。
Docker/Kubernetes 基盤と Elastic Stack によるログ可視化。
Oracle RAC/Data Guard、Exadata、Oracle から RDS PostgreSQL への移行、VMware 移行、Zabbix/Hinemos。
SQL Server と文書管理システムの運用保守、障害一次対応。
Pod 障害の調査材料(status・logs・events・manifest)を集め、LLM に渡しやすい Markdown に整形する Go 製 CLI。client-go/Cobra。
GitHub →Go+React+MongoDB を Helmfile/ArgoCD/Dex/Harbor/cert-manager/SOPS で動かすフル OSS の学習教材。Case 02 の下敷き。
GitHub →Open-Meteo の気象データと scikit-learn で翌日の東京の平均気温を予測する API。学習から Docker 化まで。
GitHub →TypeScript/Phaser のブラウザ野球育成ゲーム。GitHub Actions から GitHub Pages へ自動公開。
遊んでみる →