思想.md

2025/06/07

はじめに ただただ語りたい項目について思想を乗っけておく。 あくまで思想なので、とりとめも網羅性もないしAWSやGo偏中のバックグランドに偏ったWebの技術の話しかしないし、別にそれらに深い知見があるわけでもないのだが個人Blogだし主観で好きに喋る。 もちろん仕事との結論とは異なる。 クラウド 基本的にはAWSのほうが好み。 GCPには良い製品が何個かあるとは思っているのだが、エッジケースの解決をしようとしたときにそもそもいじれるような箇所が少ないのが気がかり。 とはいえAWSのなんでもかんでもLambdaで解決できますよ!みたいなのもどうなんだろうなーという気持ちもあるので一長一短。 とはいえ筆者の仕事に大まかなユースケースはAWSで実現できるし経験年数的にAWSが好みというぐらいの思想かもしれない。 コンテナオーケストレーション 基本的にはコンテナを実行できるクラウドのサーバーレス系が好み(Fargate,CloudRun, etc...) クラウドネイティブ界隈ではk8s!ってなっているのはかなり懐疑的に感じている。 過去にEKSの運用経験/GKEの構築経験もあるがどうしてもk...

Terraformのリファクタリングツールのtfirmgを公開しました

2024/04/26

目次 はじめに 色々と忙しい日々を過ごしているゲインです。 今回はterraformのimport blockとremoved block(と将来的にはmoved block)を自動で生成するツールを雑に公開したので紹介します。 モチベーション terraformを日々追加していると別tfstateに分けたいということは多々発生するでしょう。 terraform v1.5.0以前であればひたすらリソースを terraform import hoge && terraform state rm hoge実行するという辛いリファクタリングをしていた方もいるのではないでしょうか。 また複数人が絡むチーム開発ではtfmigrate を利用してCIフレンドリーにリファクタリングしている方もいらっしゃるでしょう。 しかし、シンプルに数が多くなってくるとコマンドを大量に実行するのも疲れますし自身が雑な人間なのでミスも増えてしまいます。 そのため実際のコードのリファクタリングに合わせてtfstateも移動してくれるツールが欲しいなと思っていました。 そんな中 terraformのアップデートによりv1...

社内向けCLIツールのご紹介

2022/12/15

目次 この記事は207 Advent Calendar 2022 16日目 の記事です。 はじめに 忘年会から無事に帰還したゲインです。皆さん飲んでますか? 今回は僕が勝手に作っている便利cliについて簡単ににご紹介です。 概要 207のインフラは基本的にECS on Fargateを使用して構築されています。 単発で終わるコマンドを動かすには aws cliを使用してタスクを起動する必要がありますが、オプションの指定等が複雑です。 copilot cliやecspresso等のサードパーティーのツールを導入もタスクを動かすためだけに導入するのは少々大げさです。 またDBとしてAurora Postgresを使っており,Private Subnetにある都合上ローカルからDBへの接続はできませんが、開発時には好きなクライアントを使用してDBの中を見たいという要求もあるでしょう。 そのためにsession managerを利用してport-forwardを行い接続することも可能となっていますが、やはり接続のためのオプションを指定するのは煩雑です。 そこで社内向けにGoでcli toolを...

207のインフラ周りをご紹介

2022/12/01

この記事は207 Advent Calendar 2022 2日目 の記事です。 はじめに 207で主にインフラ周りを見ているゲインです。 今回は副業時代から基本的に一人で見ているインフラをご紹介しようと思います。 インフラ構成 アプリケーション 基本的にインフラはAWS上に構築されています。 一部画像解析やGeocoding, アプリの分析データなどでGCPおよびFirebaseを使用している形となっています。 AWS上の主なアーキテクチャはこちらになります。 !207 app system diagram 基本的にアプリケーションは全てコンテナ化しており、Ruby(Rails)とnode.js(Next.js)をFargate上で動かしています。 主なトラフィックとしてはアプリからRailsのAPIへのリクエストとなっています。 配達員向けのアプリを提供している都合上早朝の時間帯は書き込みのリクエストが多く重い傾向です。 昼間は読み込みのトラフィックが多い状態で夜間はほぼほぼトラフィックがないような状態です。 そのため、AutoScalingをSchedulingしており重い時間帯...

207株式会社に入社します

2022/07/10

目次 tl;dr FROM: 合同会社DMM.com TO: 207株式会社 今まで何やってたの 2019年に新卒で合同会社DMM.comに入社しました。 主にAWSを触る感じでデータ移行したりk8s運用したり一生terraform importのコマンド打ったりCI/CD触ったりDatadogいじったりしてました。 入社するまで見えていなかった世界を幅広く知ることができ、僕のキャリア形成の礎となったことは間違いありません。 また偉大な先輩方や技術に明るい同期、技術に貪欲な後輩たちと出会えたことは何より大切にしていきたい点です。お世話になりました! これから何やるの 207株式会社に一人目のSREとして入社します。 実はすでに副業で1年半程度関わりがあり、インフラ周辺はほぼ僕が作っているのでとんでもない負債があるというわけではありません。 なので一歩進んでSRE的な文化をインストールしたり、CI/CDや細かなセキュリティ部分のアップデートをしていこうかなと思っています。 その辺は後ほど会社のBlogにでも書こうかなと思っているので楽しみにしていてください。 本業でも副業としてもあくまで...

2020年の振り返りと202l年の抱負

2020/12/25

目次 はじめに 今年全然Blogかけてなかったゲインです。 仕事納めたので今年の振り返りと来年のTODOリストを残して置きます。 振り返り 今年はコロナでひたすらリモートワークの年でした。 幸い会社は3月くらいのタイミングでリモートワークを許可してくれたり、そのまま現在まで通勤から開放されてありがたい毎日です。 仕事内容としては、昨年からスタートしたプロジェクトも3月のタイミングで無事に終えることが出来ました。 新卒で部に配属されてから初めてほぼ一人で担当したプロジェクトだったので現在の無事にシステムが動いてくれていて嬉しく思います。 その時に現在の師匠から様々な知見を吸収することも出来て、ガッツリ経験値を稼げたなと思います。 また4月には新卒に向けてAWSの初級講習を担当しました。 一年前の自分が学んだときのことを思い出しながら2日担当しましたが今年の新卒にうまく伝わっていれば良いなと感じます。 9月くらいまではちょこまかとしたAWS周りのタスクを消化する毎日でした。 9月になり、バチクソに強い人達が集まった部に異動することになりEKSの運用とそれに乗るAPIの開発を行うようになりま...

2019年の振り返りと2020年の抱負

2019/12/27

目次 はじめに 仕事を納めたゲインです。 今年は1年を通して色々あったので振り返りたいと思います。 振り返り 卒業 今年の3月に長岡技術科学大学大学院を卒業しました。 卒業に関しては色々ありました。 正直思い出したくないので一言言えるのは学生相談室の人は相談内容を平気でばらすんですね。以上。 入社 4月には無事DMM.comに入社することが出来ました。 新しいCTOになって 初の新卒ということで、 新卒研修も大幅にアップデートされており、非常にラッキーだったなと感じています。 オンプレの話からAWS,フロントエンド(React), バックエンド(Go)、アプリ(kotlinとswift)のWeb開発。 知識のinputとして輪読や負荷試験、セキュリティなどなどの非常に抱負な内容を一流のエンジニアから学べたのは中々他の研修ではないんじゃないでしょうか。 来年度に向けて講師陣が気合を入れているので今後入ってくる人たちはもっと良い研修を受けられると思いますし、僕も協力できるところはお手伝いしていきたいです。 AWS 今年触った内容の中でも、AWSに関しては手厚い研修内容や非常に優秀な先輩がい...

AWS Developer Associateを取得した話

2019/10/19

目次 はじめに どうも私がAWS Deyeloper Associateです— ゲイン (@gainings) October 19, 2019 どうもAWS Developer Associateのゲインです。 タイトル通り2019/10/19にAWS Developer Associate(以下DVA)を取得してきたので雑記を残します。 対象読者 - DVAを受けるか迷っているエンジニア - どんな対策したか気になるエンジニア DVAとは 今回受験した資格はAWS 認定デベロッパー – アソシエイトと呼ばれる、AWSに関する技術的スキルと専門知識を証明するための資格です。 具体的には以下のような知識が問われます。 - あるケースではどのAPI呼び出しを使うべきか? - これを実現するのに必要な手順は? そのためSAAと比べサービス全般知識ではなく、実際の開発に必要な細かい知識が求められる試験だったと感じました。 勉強内容 さて今回合格に至るまでどんな勉強をしたかをざっくりご紹介します。 今回僕が取り組んだのは以下のコンテンツです。 - AWS公式の模試 - Udemyの...

CircleCIでRubyのvendorをWorkflow間で共有した時の失敗談

2019/10/10

目次 はじめに どうもお仕事でAWS触ることが多くなっているゲインです。 最近Rubyを動かすためのAWS LambdaをTerraform + CircleCIでDeployするという構成でちょっとハマったので失敗談と解決方法の一例を示します。 TL;DR - それぞれのコンテナでユーザーおよび$HOMEが違う - そのためCircleCIの workingdirectory で を使うと異なるパスになることがある - 結果的に restorecache が別のパスに保存されてしまうことがある 前提条件 - CircleCI上でTerraformが実行されて反映される環境である。 ハマったこと プロジェクトの都合でRubyを使ってLambdaを動かすことになりました。 CircleCI上でのCI/CD環境が既にあったのでWorkflowを使って以下ような事を考えて、フローを追加しました。 - Terraformは既に hashicorp/terraform で動いているでそのままにする - Rubyのvendorは別のjobでコンテナイメージを変更して動かす それを実際に反映したの...

AWSをちょっと理解するまでの4ヶ月

2019/08/11

目次 はじめに どうもいつのまにか社会人になっていたゲインです。 新卒研修や資格取得を通してAWSの事がだんだんと分かってきたので、 どうして今までAWSがわからなかったのか、どうして分かるようになったのかを残します。 よくあるこれをやったら絶対合格とかそういうのは出てきませんのでご了承ください。 対象読者 - AWSを触りたい初心者 - AWSを触っているがイマイチ掴みきれていない初学者 - 初心者がどこで詰まっているのかよくわからないリードエンジニア - 来年の新人研修をどうすべきか悩んでいる人事および担当エンジニア AWSが何もわからん時 学生時代はバイトでGoのサーバーサイドのAPIを書いており、 そこでもAWSを使っていました。 今なら何となくその時の構成も分かるのですが、 当時はGoを書くことで精一杯だったので、AWSの事までは追いついていない状態でした。 当時分かっていたのは以下の項目です。 - アプリケーションはEC2で動いているらしい - どっかにnginxが動いているらしい - S3ってところに画像とかをおいているらしい - なんかAurora?っていうDBを使って...

Goのreflect.DeepEqualでガッツリハマった話

2018/12/04

目次 はじめに この記事は 2018年 アドベントカレンダーとなんの関係もない記事です. どうも一回も怒られたことがないバイトリーダーのゲインです. さて本日バイトでModel周りのテストコードを書いていた時に reflect.DeepEqual でガッツリハマったので,共有しておきたいと思います. ハマったこと さて皆さんこちらのコードを御覧ください. playgroundはこちら このコードの実行結果はどうなるでしょう. 実行せずに考えてみてください. 中身としてはm1,m2は同じキーに対して同じ値を入れた別の変数. m3に関しては構造体を一度JSONにしてから map[string]interface{} にUnmarshalした変数になってます. さてこれを実行すると以下のように表示されるでいいですか? ...残念ながら違うんです. 午前中の私は上記になると思ってました. 実際はこうです. さてどうしてこんなことになるんでしょう. 中身を確認してみましょう ちょっと改良してこんなコードにしてみました. playgroundはこちら さてこれを実行した結果は以下です.  おかし...

exported function should have comment or be unexportedに対抗するためのプログラムを作った

2018/08/25

目次 はじめに どうも最近落ち着きがないゲインです。 普段の趣味プロとかでexported function hogehoge should have comment って言われるのが鬱陶しいのと、 わざわざ手打ちで解決するのもアホらしいのでプログラムで解決してもらいました。 リポジトリはこちら gainings/go-comments 出来ること プログラムの第1引数にgoのファイル名を食わせると、 should have commentな関数、変数、構造体に, //{name} is TODO:need to enter a comment を追加した状態で標準出力に出力します。 これだけです。 中身としてはASTをゴニョゴニョこねていい感じに判別して、 コメントを追加しているだけです。 用途 流石にこれだけでは使いみちが微妙なので、 自分はvimのcommandに登録しました こんな感じのscriptを書いて これを.vimrcで適当に呼び出して見ました なお今回はどうせ自分しか使わないだろうと思ったのと、 そこまでvim plugin詳しくない...なため雑な使いみちになりま...

KOSEN Conference in Tokyo 2018に参加した

2018/07/16

目次 はじめに 3日間東京に行ってきた、ゲインです。 今回は高専カンファレンスに参加してきたので、感想を書きます。 きっかけ 実は高専カンファレンスへの参加は初めてで、 そもそも今ままであんまりこういうイベントには参加してきませんでした。 大体の場合、遠方で開催されるので、高い交通費を払ってまでも参加する意味があるのか と思っていた自分が居たのも確かです。 (おおよそ新潟から東京まで往復16000円) しかし今回は学生への交通費支援制度があり、交通費が満額、交通費が満額(大事なことなので2回)でたため、参加を決意しました。 発表を聞いた感想 こちらのリンクのタイムテーブルの中で、自分が聞いた発表について感想を書きます。 KOSEN Conference in Tokyo 2018 実践!イラストでわかりやすく表現する技術 湊川あいさん(@llminatoll)というイラストレーターの方の講演。 自身がGitやDocker等をマンガで初心者向けに伝えるための手法を発表していただいた。 自分自身が、学生に技術を教えるということをしているため、 自分自身困ったなーっていう部分に対してのアンサ...

Golangのimage Packageを掘り下げる

2018/04/30

目次 はじめに どうもファイルポインタの気持ちがわからない技術力並なゲインです. 無い内内定が有る内々定になったのでBlogちゃんと運用しようと思います. 今回はちょっとGolangで画像を扱う時に,わけのわからん質問を人にしてしまったので image packageを掘り下げていこうと思います. Goで画像を読み込みたかった pngを読み込む プロジェクトの仕様として画像ファイルがpngでやってくるらしいです. これを読み込んで色々と処理したいらしいです. pngを読み込むサンプルは以下になります. これでpngを読み込むことが出来ます. errになってなければ画像のxyの最小最大の座標が表示されるはずですね. めでたしめでたし. jpegも読み込む 急な仕様変更で今までpng画像を読み込めれば良かったものを, 更にjpeg画像も読み込みたいという要望が出てきました. 仕方ないので対応することにしましょう. これでjpegも読み込めた.めでたしめでたし. 更に他のフォーマットも追加する. 更に追加で要望が入り, どんな画像形式が来るかわからないけどいい感じに読み込んで欲しいそうです...

puppeteerでGoogleログインしたりファイルダウンロードして遊んだ

2017/08/24

目次 夏休みほぼ終わりかけのゲインです. 家でダラダラしてたらQiitaからのメールで, "先週いいねが多かった投稿ベスト20"が来てダラダラ見てたら, --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について が合って面白そうだったのでちょっと遊んでみました. その備忘録をチョロっと書いておきます. 環境設定等 適当にディレクトリを作って移動する. 参考元と特に代わりはないので適当に. 公式に有るサンプルでスクショを撮ってみて動かせるかチェック. Google認証 このままだとただのパクリ記事なのでちょっとGoogle認証でログインが必要なサイトで試してみることに. これで間違いなければリダイレクト先に移るはずです. また2段階認証等が入っていると先へ進むのは困難なため, セキュリティに十分考慮し自己判断で解除してください. ファイルをダウンロードする リンクをクリックしたらファイルダイアログが出てきて何かを保存できる機能がある時に, それも自動で取ってこれたら嬉しいのでなんとか取得してみます. 今回色々試したサイトに置い...

Restart

2017/08/02

目次 地元のでっかい花火大会の裏で一人悲しくプログラミングしてますどうもゲインです. 来年こそは彼女と花火行きたいです.行きます. さて弊学的にはそろそろ夏休みが始まります. 就活も12月くらいから解禁?だったような気がしてこのままじゃアカンと思ったので夏休みの自由研究にちゃんとBlog書くことにでもしてみます. 以前作ったBlogは何か気に入らないのでなかったコトにしてHugoで作り直しました. 夏休みやることリスト とりあえず今回は夏休みをダラダラ過ごさないためにやることリストを定義しておこうと思います. 今のところ考えているのは以下の項目 - 研究でGUIを作成する Golang + Qt5(therecipe/qt) - 請け負った学内のバイトを進めるためにPython使って実験頑張る - アルゴリズムについておさらいする - Mikanで英語勉強 - Blogちゃんと書く 研究で使うのもあり主観で好きなのもあり夏休みはGolang強化月間になりそうです. 後はちょっろとPythonいじって基礎固め. 後は提出を終えた英語論文の発表が10月に有るのでそれに向けてリスニング鍛えな...