まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

ALBでhttpをhttpsにリダイレクトできるやつが便利だった

AWS

今まではnginxでリダイレクトさせてた こんな感じでhttpでアクセスしてきたらhttpsにリダイレクトするっていうのをnginxの設定で書いてました。 if ($http_x_forwarded_proto != https) { return 301 https://$host$request_uri; } これで困るのは ALBからの…

nginxのテストを気軽にローカル環境でやる方法

nginxの設定は難しい アプリケーションの開発してたエンジニアにとってnginxの設定をさっと書くのは結構難しいですよね(自分も含めて)。もう試しながらやるしかないと思うので、そんなときに気軽に試せるやり方を紹介。Dockerを使うので、Docker for Macは…

DatadogでECSのagentが切れてないかを監視するやり方

ecs agentとは ECSの場合、ecs agentがコンテナのスケジューリングやもろもろの仕事をしてくれています。なので、こいつが接続状態になってないと管理外になって死亡ということになります。 github.com なので、これは結構見ておかないといけないんだけど、…

はぁ、、今週一体俺は何してたんだろうという気持ちに整理をつけるのにtogglがおすすめ

みなさん、もうすぐ2018年が終わりますね(^^) ▓▓▓▓▓▓▓▓▓▓▓░░░░ 75%— Year Progress (@year_progress) 2018年10月1日 俺、今週何してたんだろ・・というときありませんか? うまく言葉に表せないけど、最近何もしてないな・・・みたいな漠然とした不安み…

Terraformを書くのに今までAtomを使ってたんだけどVS Codeに鞍替えしてみたらこっちの方がよさそうだった

変えようと思った理由 GitHubという設計図共有サイトがMicrosoftに買収されたのでAtomなくなりそうと思ったからです。ちなみに今までvimとか使いこなせてなくていつもAtom使ってました。 ※この記事は社内に数ヶ月前に書いたやつなのでネタが古いw なんかref…

【書評】Docker/Kubernetes 実践コンテナ開発入門はまさに「実践」のための本です

今回、レビュアーとして関わらせてもらい、本を頂けたので感想書いていきます。 とにかく内容が充実していて実用的な本です 私自身、業務でもコンテナの運用をやっているのですが各章知らないことがたくさんありました。全部で400ページぐらいあって1人でこ…

Cloud Native Deep DiveでKubernetesについてディスカッションしてきました #deepcn

Cloud Native Deep Dive #1 事前にアンケートを提出してテーブルごとに分けれてグループディスカッションをする形式のmeetupでホワイトボードを使ってわいわい議論した。ツイートがこれしかできなかったw きました #deepcn // Check out this Meetup: Cloud…

顧客が本当に欲しかったJenkinsのdatadog監視のやり方

今までのjenkinsジョブ監視の問題点 JenkinsにDatadog plugin入れると自動的にjobのeventが流れてくるので、そのeventのタグを見て監視してました。10分間の間にresult:failureのタグがついたジョブの数が合計1より大きかったらslackに通知するという感じで…

Kubernetes上で動かしているRailsアプリでSentryを使うときにpod名などを表示するようにする

コンテナからpod名を取得できるようにする Sentryが実行時にpod名を取得するには、アプリケーションの実行時にpod名を何らかの方法で渡したり取得しにいく必要があります。 で、これをするための仕組みがkubernetesには用意されていてDownward APIというみた…

副業先を探しています

副業やってみたいと思っていましたが、同僚が副業先を探しているツイートをしていてすごく強いと思ったのと1件だけインフラまわりのお手伝いで実績ができたので、ぼくもやっていこうと思いブログを書いてみました! できること 手運用でやってきたクラウド基…

Google App EngineがECSやGKEの代わりになるようなコンテナを動かす環境として使えるのだろうか軽く調べた

きっかけ ECSやGKEを使ってインフラ設定や運用をやってきた中、数年先はコンテナオーケストレーション層の管理はおそらくやらないでいいようになるだろうと思ってた。 ちょうど同じような考え方をこの前のJapan Container Daysで登壇してる方が話していて共…

Japan Container Days v18.04参加してきました

Japan Container Days v18.12 見た内容 サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術 2016年新卒入社すごい @amsy810 アドテクスタジオ 30万リクエスト/sec ぐらいくる Nvdia-Docker 知らない、GPUとか機械学習とかそういう人用の…

kopsを使ってAWS上にkubernetesを構築したときにIngress Controllerはどれにしようか悩んでいる

GKEで甘えてきました www.mpon.me 今まではGKE使っててIngress ControllerもGLBCを使ってなんか勝手にやってくれてるなみたいな感じで、 k8sを使う側そんなに気にしてなかったんですが、 EKSもくるということでAWSでやるにはどうすればいいだろうということ…

p12ファイルを証明書と秘密鍵に分割する

p12ファイルって PKCS#12 個人情報交換ファイルフォーマットというもの。証明書と秘密鍵をセットにできる。iOS開発とかやってるとよく出てくるやつです。 APNsの設定するのにp12を証明書と秘密鍵に分割したい 証明書を取り出すのはkeytoolというJDKに入って…

Terraformで変数を組み合わせることができるlocal valuesというのが使えるようになってた

Local Valuesがない世界 例えば、S3のバケットの名前をnameとenvっていう変数を使って"${var.name}-${var.env}"ってしたいとする。 resource "aws_s3_bucket" "b" { bucket = "${var.name}-${var.env}" } んで、例えば、このbucketの名前を他で使いたいとき…

ECSでAWSコンソールに入って見てたような情報をCLIでインタラクティブに見れるやつを作りました

AWS

github.com インタラクティブにECS ServiceにデプロイされてるImageの一覧が見たいとき こんな感じで$ ecswalk servicesと打つと、jとkで選んだり、/を押してpecoみたいにinteractiveでfilteringして選ぶこともできます。 AWSのコンソールで見たときの情報と…

入門Kubernetesはk8sを触ったことがない人や機能を使いこなしてない人にオススメだと思った

k8s(頭のkとお尻のsを抜いてuberneteが8文字だから略してk8s、Internationalizationのi18nみたいな感じ)、の作者が基本的な機能を説明してくれる本です。正直公式documentと同じようなことが書いてある部分が多いっちゃ多いんですが、 日本語で読める ざっ…

ap-northeast-1dでは起動できるインスタンスタイプが限定されている

AWS

spot instanceをリクエストするとbad-parametersと言われてしまう c3.xlargeのインスタンスをone-timeのspot requestをしようと思っても以下のようなエラーが出て失敗する。 bad-parameters: Your Spot request failed due to bad parameters. Spot request …

AWS Route53を使ってDNS-01でLet's Encryptの証明書を取得する

DNS-01方式 HTTPを利用して認証する場合に、IP制限や社内のみの通信などの制限をしている環境においてはLet's Encrypt側からの通信が届かないので認証できません。そこでDNSのTXTレコードで認証するDNS-01のタイプがあります。 こちらのサイトの説明がわかり…

Terraformのoutputで空になるかもしれないlistでindexで値を取得したいときのハック

true or falseで作られないかもしれないresourceの値を取得したい 例えばこのようにneed_instanceみたいなBooleanで作るか作らないかを決めるみたいなresourceがあったときに variable "need_instance" { default = false } resource "aws_instance" "hoge" …

Helmのchartのtemplateではまったところ

Helm とは helm.sh templateで書いてるresourceが作られなかった原因 {{- end -}}の-がなんなのかよくわからなかった trimの話だった golangのtemplateの話 https://docs.helm.sh/chart_template_guide/#controlling-whitespace これがわかりやすい rangeを…

re:Inventでコネクテッドカーのworkshop受けてきた

AWS

今流行りのコネクテッドカー https://recruit-mp.qiita.com/_mpon/items/cc5a957f029c3902ddcb と同じようなworkshopというやつで、Deep Dive into the Connected Vehicle Reference Architectureというやつも受けた。 これも、名前につられてノコノコと参加…

re:Inventでゲノム解析のワークショップ受けてきた

AWS re:Inventでのworkshopとは? 2時間ぐらい使って実際にAWS上でなんらかの処理をするやつです。 今回、ぼくがやったのは、High-Throughput Genomics on AWSという、 ゲノム解析をAWS上でやるというやつでした。なんかECSって書いてあったからノコノコと参…

えっ、nginxって$HOGEで環境変数読めないの??

人のコード見てわかった気になっていた 社内の他のインフラエンジニアが作ったnginxのDockerfileなどを見て、環境変数を読み込んでるっぽいらしい記述を横目で見ていたのでnginx.conf上で$HOGEとか書いておけばなんとなく環境変数って読めるんだろうって思っ…

WordpressをAmazon ECSで冗長化する

wordpressを動かすには何が必要か まずwordpressを動かすために何が必要かを整理すると、wordpressはMySQLとphpが動く環境が必要です。 なので本当に必要なものはDBサーバーとWebサーバーだけなんだけど、実際の本番運用してくとしたら画像のキャッシュとかD…

雑にテキストファイルを暗号化する

ssh公開鍵でファイルを暗号化する zip付きパスワードみたいの作るのがなんかmacだと面倒? なんかソフト入れないといけないとかなんか面倒なので会社で行われていたやつをメモしておく。 GitHubの公開鍵をとってきて暗号化 実はGitHubの公開鍵は全世界に公開…

dockerを何かを生成したり実行したりするツールとして使うという選択肢

dockerはサーバー動かすやつでしょ? dockerといえばサーバーみたいなものに使うものだと思っていました。転職してきた当時、こんな風に使えるんや!と自分の中でパラダイムシフトが起きたのを覚えています(大袈裟) cloudfrontの署名URLを作るperlのスクリ…

iTerm2を使ってる人限定だけどHTTPieとimgcatを使って画像を確認する方法

cli

リクエストにカスタムヘッダーを入れて画像を表示したい chormeでurl打ち込んで画像表示したいんだけど、そのときにカスタムヘッダーを入れたい。 そういうChrome拡張入れてもいいんだけど、なんか評価が高いやつとかデファクトっぽいやつがぱっと見つからな…

scrapboxが日々開発するときの思考の整理にすごくよい

scrapboxとは? 知らない人もいるかもしれないので一応前置き。 scrapboxはなんか共同編集できるwikiみたいなサービス。 Gyazo作ったところが作ってる。 scrapbox.io scrapboxを使うとラバーダッキングができる ラバーダッキングとは 開発中にどうしようもな…

terraformが0.10になってからproviderがpluginで取り込むようになってた

providerごとにrepositoryが分裂した https://www.hashicorp.com/blog/upcoming-provider-changes-in-terraform-0-10 0.9系まではhashicor/terraformで全てのprovider(AWSやGCPやいろんなもの)を管理してた。なのでそこに全ての要望やバグ報告がくるのでis…