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

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

2017-11-01から1ヶ月間の記事一覧

Jenkinsfileでビルドするときにこれをつけておくと最高になる

Before & 最高なAfterのJenkinsfileのdiff currentBuild.description = に好きな値を設定するだけ ❗️❗️ stage ("start notification") { steps { slackSend color: "good", message: "ビルド開始しました" + script { + currentBuild.description = "ここに…

Jenkinsfileで複数ジョブまたがるやつをコード化できました

Jenkins pipline scriptとは? 昔はpluginで提供されてたみたいだけど、Jenkins2からは標準pluginになったという代物。Groovy DSLと、groovyのscriptでJenkinsおじさんのジョブをコードに落とせます。 Jenkinsfileでジョブを書くときのメリットとデメリット…

Datadogの効果的なモニタリングとAlertについてシリーズを読んだ

狼少年 少年が繰り返し同じ嘘をついたので、本当に狼が現れた時には大人たちは信用せず、誰も助けに来なかった。そして村の羊は全て狼に食べられてしまい、死亡した。 Wikipedia サーバーの監視でalertやwarningが増えすぎると、 だんだん暗黙の了解みたいの…

ECSの概念を理解しよう

※ 追記 結構ちょこちょこブクマしてもらっているので意外と需要あるのかな。 もし、記事見て分からないところあったら Twitterなり気軽に質問してもらって大丈夫です!! 社内でインフラエンジニア増やしたいなと思ってECSの概念を理解してもらおうと思って…

ECSのlogdriverにawslogsを指定した場合はawslogs-stream-prefixをつけたほうがいい

awslogs-stream-prefixをつけない場合 log stream名が "${docker psのCONTAINER ID}${randomな文字列}" となる。 これだと、例えば、あるコンテナのログだけ見たいっていう場合に、sshログインして、docker psしないといけない awslogs-stream-prefixをつけ…

プロダクションレディマイクロサービスを読んでハッとさせられた

とにかくハッとさせられた この本を読んで、マイクロサービスとか関係なく、社内のインフラもまだまだやれることあるなー、というかこの本に書いてあるレベルにしなければという気になった。 最初、雑にマイクロサービスってこういうものだよーみたいな本か…

Cloudwatch Logsが簡単便利安いだった

事の発端 Railsのlogrotateされたあとのファイルをどこに保存しようかと迷ったのがきっかけでした。 fluentdなどでS3に保存していくとか作るかーと思ってたんですが、社内のメンバーに相談してみたところAWSのCloudwatch Logsで簡単にできるよとのことで、調…

fluentdのS3 output pluginでは権限に注意しよう

現象 fluentdが集めてきたログをS3にputしていたつもりが、全体のうちの1/3ぐらいしかputされずそれ以外がロストしていたという話です。 調べてみると・・エラー吐いてた fluentdのヘルスチェックとかは確認していて、fluentdが死んでいる様子はない。 S3に…

Rails5とpumaを使ったときのlogrotateでハマった話

現象 普通Railsのアクセスログってproduction.logに出力されますが、出力されないことがあったという怪談の話です。 対応を1行でまとめると、Puma使うときはRails5からはRAILS_LOG_TO_STDOUTを設定しようということです。 ここからは怪談の詳細です 原因1: …

GASでconstの挙動がおかしいので使わない方がよさそう

GAS

GASだとconstのスコープが違う? 最近のJavascriptとかTypeScript界隈では、var、let、constが変数の宣言として使えて、scalaとかswift脳からするとなるべく再代入は避けたいのでconstを使いたい。 例えばfor文内で一時的な変数を宣言して利用しようとした場…

AWSのRoute53でpublic/private zoneの名前のつけ方に注意

AWS

Route53のzoneの名前を同じにしていると・・ Route53では、外部公開用のpublic zoneとVPC内に閉じたprivate zoneで、それぞれレコードを登録することができます。 しかし、public/privateなzoneでdomain nameを同じにするとpublic zoneの名前が引けなくなっ…

Datadogでいい感じにAlertの通知を出し分けるやり方

出しわけたいユースケース 例えば、GCPの2つのprojectからCloud SQLの複数のDatabaseのmetricsが送られてくる場合。 project Aの場合は、こっちのチャンネルに通知、project Bの場合は、そっちのチャンネルに通知したいみたいなときに有効です。 metricsの設…

crondはtimezone変えただけだと反映されない

AWS

cronはUTCのまま JSTにタイムゾーン変更したときに、crondをrestartしないと実行がUTCのままでした。 service crond restart で反映しました。 参考: Timezoneを設定したらcronの実行時間がずれる EC2の初期スクリプトとかでrebootいる? AWSのEC2のuser dat…

AWSのEC2でRetire Notificationというのがきた

AWS

まとめ 突然EC2インスタンスが故障して、1時間後ぐらいにAWSからそのインスタンス修復不可能だからretireさせるよという通知がメールで来ました。 stopさせようにもstoppingでなかなか進捗しなかったので、開発環境だったからterminateしたけど、terminateも…

Terraform実践入門 #3

入門三部作ラスト www.mpon.me www.mpon.me ここまでで、簡単にTerraformの機能をおおざっぱに説明してきました。 今回は、そこそこ現実に即したインフラを作るまでの流れを追いながら、徐々にリファクタリングしていくことで実践的な考え方を身につけていき…

Google Container Engine+Deis環境にDatadog監視をいれる

概要 Google Container Engine(kubernetes)の監視環境の動向 - まーぽんって誰がつけたの?を受けてDatadogでやる Google Cloud Platform Integrationをいれる GCPのメトリクスをAPI経由でとってきてくれる kubernetes Integrationをいれる kubernetesのリソ…

Google Container Engine(kubernetes)の監視環境の動向

まずはk8sの監視環境について理解する DatadogやStackdriverなどの外部サービスを使うと簡単にできそうなのではあるが、そもそも何を監視しようとしているのかよく分からない。なので、まずは外部サービスを使わない場合どうなっているか調べてみた。 ちなみ…

Google Container EngineとLocustを使って負荷テスト環境をさくっと作る

GKE+Locustの負荷テスト環境を作ろうと思った背景 GKEとLocustを選んでみた理由としては以下のようなポイントでした。 インスタンスは秒課金なので気軽に利用できる GKE(k8s)なので動的ポートマッピングの設定などが簡単 Locustは単なるpythonのスクリプトの…