たまにはプログラミングをしている話

仕事では、主にITインフラと呼ばれる領域で仕事をしており、プログラミングをする機会がほぼない。 なくてもたまにはコードを書きたい。 ということで、細かな手元の処理の自動化などのためにプログラミングしています。 使っているのはPython、Goあたりです…

AWSで動かすGitLab CI runner の改善

AWS で GitLab Runnerを動かしているのですが、いろいろ改善している話です。 dockerhub registry mirror みなさんご存じの通り、 dockerhubは、anonymous pull に制限をかけました。CIで dockerhubのイメージを利用していると、すぐ制限にひっかかります。 …

2020の振り返り

転職した 4月から新しい職場で働いています。入社数日して、会社から出社するなアナウンスが出て、新しい職場にはまだ都合5日くらいしか行っていません。 副業を始めた 8月からちょっとした副業を始めました。大したことができてないので役に立ててるのかは…

Elasticsearchのindex分割について考える

ITインフラ関連の仕事をしていると、日々いろんなところからログを集めて可視化するということがままあります。 そんなとき、Elasticsearchがそこそこ使われていると思うのですが、そのindexについて考えます。 logstashで何も考えずにElasticsearchへログを…

gitlab-runner 11.11 での仕様変更ではまった話

何が起きたのか gitlab-runner 11.11 にて docker executor について .gitalb-ci.yml で service として指定されているものにも、 runner 設定で指定されたvolumesがbind-mountされるようになりました。 その結果、 docker:dind を serviceとして記載した状…

AWS SSO のユーザをSCIMでプロビジョニングする。

事前準備 SSOのための ENDPOINTとTOKENを取得しておく。 ユーザ作成 <Endpoint>/Users -H"Authorization: Bearer <Token>" -H"Content-type: application/json" -d' { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "EmailAddress", "displayNam</token></endpoint>…

Prometheusのデータ長期保存にVictoriaMetricsを使う。

概要 Prometheus2.0にて、 remote write という、Prometheusで収集したデータを別のストレージにも書き込む機能ができています。 InfluxdbやThanosやM3など、remote write先はいくつかありますが、 Measuring vertical scalability for time series database…

sonatype nexus3 の s3 blobstore は rubygems では遅くなった話

タイトルがすべてを物語っていますが、 sonatype nexus3 とは、パッケージマネージャです。 maven, rubygem, pypi, npm, docker など、各種言語などのパッケージマネージャを主に内部向けに公開するのに使えるものです。 最近だとgithubなどもパッケージを置…

AWS Cloudwatch agent (prometheus-beta) でEC2上のexporterからメトリクスを送る

Amazon CloudWatch が Prometheus メトリクスのモニタリングを開始 (ベータ版) ということで、ベータですがAWS EKSとKubernetes向けに Prometheusメトリクスのモニタリングができるようになりました。 しかし、私はEC2でProemtheusメトリクスを出すExporter…

オンプレのElasticsearchをAWS ElasticsearchSerivceへ移設した話。

オンプレで動いていたElasticsearchが遅い(HDDだったため)、負荷が高まると取りこぼす。などの事情があり、いっそマネージドなサービスを利用しようとAWS ESへの移設を行うことになりました。 fluentdあたりの話 もともとの構成は、各ノードにfluentdが存在…

AWS に毎日100ドル払っていた話

ちゃんとCost Explorer を見ましょうという話。 ホント、それに尽きます。 マイクロバッチ みなさんはマイクロバッチという言葉をご存じでしょうか。 簡単にいうと、短期間のスパンで動く、軽量バッチです。 これをAWS Fargateで動かす実装になっており、そ…

golang で競技プログラミングの問題を解いている話

golang ももう少し手になじませたいと思い、AtCoderの問題をちょいちょい解いてます。 解いててしんどいなって思うのは、何気なく標準入力を扱っていると、読み込みだけで制限時間オーバーすることがある。みたいな話。 あとは、結構いろんなものがないので…

python での duck typing は難しい

python に限らず、動的型付言語では一緒かと思いますが、pythonで出会ったのでそのようなタイトルになっています。 何が起こったのか 某所にて、 pandas 0.25.3 から pandas 1.0 にバージョンアップしたら壊れたという話があり、壊れている箇所について、疑…

Javascript が難しい

TypeScript勉強していると、どうしてもJavascriptにtranspileされる都合で、Javascriptのことをちゃんと知らないといけないのですが、 そもそも Inheritance and the prototype chain あたりの知識がなさ過ぎて、まずそこから勉強しているので遅々として進ま…

TypeScript を勉強し始めた話

ふと思い立って TypeScript の勉強を始めました Hands-On Functional Programming with TypeScript という本を使って勉強しているのですが、 TypeScriptを勉強したいというよりは functional programming の勉強をしたい、ついでに TypeScript ひいては Java…

2019年を振り返ってみる

早いもので、2019年も終わろうとしているので、ちょっと振り返ってみようかと思います。 仕事 大きなこともなく、平穏な1年でした。 データセンターの移行があったり、コンテナ化がだいぶ進んだり、人が増えたり、減ったりしたけれど、管理しているITインフ…

zipkinを移行している話

トレーシングツールとしてzipkinを利用しているのですが、稼働時からサーバのバージョンを上げておらず、クライアント側のバージョンアップでまともに動かない状態になっていたのを更新している話。 今までの構成 構築されたころからのしがらみや人的リソー…

gitlab-runner トラブルメモ

Gitlabを利用しており、CIにgitlab-runnerを使っていてであったトラブルについて AWS上でdocker+machine構成 確率でジョブが失敗する ubuntu 16.04 18.04にて、特定のジョブが確率で失敗するというもの CIの中でtest serverを起動して ローカルで待ち受け、…

モノレポ terraform で atlantis を活用している話

Atlantis とは Atlantisをご存じでしょうか。 簡単に言うと GitHubやGitLabなどでterraform を管理する際、自動で terraform plan 結果を表示してくれたり、 リポジトリ内で terraform apply まで行ってくれるツールで、terraform 作業をgit repositoryで完…

sonatype Nexusのblob store を FileからS3に変更する

Nexus Repository OSS - Software Component Management | Sonatype という、Internal Repositoryを作成するソフトウェアがあります。 こちら、昔はデータストアとして、ディレクトリの指定しかできなかったのですが、いつからか、AWS S3が指定できるように…

mini hardening に参加した話

write up 的なものは、ひかえてくださいということなので、具体的な話はありません。 参加しようよ?と社内で募集があり、社でチームを組んでの参加でした。 みんな意識が低く、そもそも数日前に来ていたレギュレーションを当日読み始めるレベルでした。 そ…

AWX にカスタム ansible環境を用意する。

Towerのドキュメントは docs.ansible.com こちらに。 local docker を利用している想定で話を進めていきます。 利用する awx のバージョンは 5.0.0 ベースです。 作成するvirtualenvは /var/lib/awx/venv/test で ansible 2.5.15 としています。 awx_web イ…

GitLabのバージョンアップをした話

概要 社内で9.0.xくらいのバージョンのGitLabを利用していました。 新規に追加された機能を利用したいという要望や、SaaSへ移行するタイミングが後ろにずれていったこと などがあり、最新バージョンに追随できるよう、バージョンアップを行いました。 なぜ …

SPIFFEな勉強会でSPIFFE/SPIREとは何かを知った。

SPIFFEは、Zero Trust Networkを実現するための認証機構用APIとして生まれたらしいです。 何か、他のリソースへアクセスする機能を持ったものをWorkloadと呼び、そのWorkloadに対して、検証可能なTokenを付与することが主な責務です。 Workloadとして例えば…

AWS S3 をマルチアカウントで使う時の注意

AWS S3 をマルチアカウントで使う時、結構厳しめな感じなので注意しましょう。 S3 Bucket multi-account-testを アカウント A で作成します。 bucket policy に { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { …

Ansible Night 2019/04 に行ってきた

内容とか雰囲気はtogetterに AnsibleサポートマネージャーMichelle Perz (@pinkfiregoddess) | Twitterさんが初来日ということでとても盛り上がっていました。 かくいう私は https;//ansiblejp.slack.comのほうで運営に興味がある人を募集していたので、手を…

ssmjp 2019/03 ヤマサキ春のサメ祭り へ行ってきました

アウトプットしないのは知的な便秘!ということで、アウトプット枠にて とても久しぶりにssmjpに行きましたが、ssmjpらしい回でした。 サメ祭りということで サメの話 サメじゃないサメの話 運用自動化の話 JAWSDAYSの話 という内容でしたl 内容とか雰囲気は…

Gitlab Runner(docker) のAutoscale with AWS

Autoscaling GitLab Runner on AWS | GitLab を試してみた話。 概要 Gitlab Runner は、実行方法としてdockerを選択すると、Gitlab Runner上でdocker runする形で実行されます。 その意味するところは、 Gitlab Runner本体のリソース上限の範囲でjobを実行し…

私の理解したBFF

BFFとは Backend for frontend の略。 FrontendのためのBackend。 それはなんでしょうか? 背景として、Frontendは、API呼び出しをして、もらったデータをレンダリングするのが主になっているような気がそこはかとなくしています。 このような状況で、Fronte…

今年のアウトプットを振り返ってみる。

昨今、盛んにアウトプットをしましょう、アウトプットをしないやつはクズ、まだアウトプットしてないの? などと、アウトプットしていない人間には何の価値もないというような風潮があり、目に見える形でアウトプットをすることをほとんどしていない私にとっ…