もりはやメモφ(・ω・ )

インフラなエンジニアからSREへ

ALBとTargetGroup一式をTerraformにimportしてみる

年の瀬に何やってんだという感じではありますが、ちょっとしたタスク整理でALB一式をTerraformに落としたくなる場面があったので作業メモを残します。*1 試行錯誤した結果をそのままメモとして残していきますので、上級者が良いやり方をまとめた記事ではないことにご注意ください。

  • importするリソース
  • 前提
  • 作業開始
    • Terraforming準備
    • Terraformingでimportしようとしたが...
      • ALB
      • TargetGroup....はTerraformingにはないっぽい
    • 仕切り直しでTerraformerを準備
    • TerraformerでALBをimport
    • TerraformerでRoute53を追加でimport
    • Terrafomerが生成したファイルを確認して、利用したいものだけ拾っていく
      • lb.tf
      • lb_listenere.tf
      • lb_listener_rule.tf
      • lb_target_group.tf
      • lb_target_group_attachment.tf
      • リファクタリング
      • 手動でterraform import
      • target_group_attachmentはimportできないので諦める
    • VPC周りをdataで用意
    • SecurityGroupも追加
    • cognitoのimport
    • 仕上げ
    • 今後やること
  • まとめ

importするリソース

Importしてコード管理したいのは、以下のリソースです

  • ALB
  • TargetGroup
  • Cognito --> 残念ながらCognitoのimportは対応してませんでした、現状は手書きしてimportしかなさそうです *2

*1:早速昨日の振り返りが生きてる

*2:本来はRoute53も管理したいところなんですが、諸事情で別アカウント管理になっているため割愛しています

続きを読む

きたあず(JAZUG 北海道は札幌支部) #23に参加してきました

きたあず#23に参加してきました

本記事は北海道札幌で行われた JAPAN Azure User Group(JAZUG) の通称 きたあず に参加してきた感想をつらつらと書いたものです。

  • きたあず#23に参加してきました
  • セッション紹介
    • Kazumi OHIRA(@dz_) さんの “Azure でサーバーレス、 Infrastructure as Code どうしてますか?(再演・拡大版)”
    • Yasuaki Matsuda(@DarkCrash3)さんの Azure Event Grid 紹介(仮)
    • おやつ
    • LT: Takuya Shibataさんの Azure Dedicated Host と2019年10月1日からのライセンス改定の話
    • takayuki fuwa(@pacsolution)さんの AzureとAWSで始めるマルチクラウドのお話
    • Toshiyuki Hara(@TonyTonyKun)さんのAzure アーキテクチャ センターを読んで LINE BOT を作ってみた話
    • Yoshitomo Ago(@ag0u3)さんのなんか話す
    • まとめ
続きを読む

初めての音声入力を試してみたよ

初めての音声入力ーパチパチパチパチパチ!!!

というわけで本記事は基本的に音声入力を利用しています。

どうして音声入力を利用しようと思ったかと、そのモチベーションを記事にしていきたいと思います。

誰もが世界に対して自由に発信ができる今日、ブログであったり SNS での発信はとても重要なものだと認識しています。 しかしその一方で、なかなかこまめにブログを、あるいは SNS での発信を行っていくことは、大変なことだと認識しています。要するに筆不精っていうやつですね。 筆不精にはいくつか理由があると思っていて、最たるものが時間がない、あるいは面倒くさいというものだと思っています。

ではどうすればその面倒くささがなくなるのかという点を考えたところ、それはもう技術に頼るのが一番だという認識を持っていました。 有名なところでは"ひげぽんさん"であったり、 TwitterのTLに現れる優秀なエンジニアの皆さんが、所々で音声認識はなかなか良いよとの言葉を見かけたりしたので、興味は持っていました。

続きを読む

digdagのslaディレクティブを使い、ジョブの意図せぬ長時間実行に対策する

digdagを利用していて時おり困ることの一つに、何らかのジョブ*1がハングなどで長時間実行されてしてしまい、ジョブのキューが溜まり後続のジョブが実行されない問題があります。その対策として sla ディレクティブを利用した、という内容です。

  • digdagのsla ディレクティブとは
    • slaディレクティブのオプション
    • slaディレクティブのサンプル
      • durationによる経過時間の超過を検知するサンプル
      • timeによる終了時刻の超過を検知するサンプル
      • alert: true によるログ記録を行うサンプル
  • slaディレクティブを使用し、一定時間以上が経過したジョブを自動キャンセルする
    • digdag kill で止まるケース
    • digdag kill で止まらないケース
  • まとめ
  • 参考になったサイト

digdagのsla ディレクティブとは

slaディレクティブを使用することで、digdagのジョブが特定の時間を超えた、または経過した場合に特定の処理を実行したり、エラーを発生させることができます。*2

ドキュメントのslaについての記載 には Setting an alert if a workflow doesn’t finish within expected time とあります。

slaディレクティブのオプション

sla ディレクティブで利用可能なオプションは、2019/10/12現在で以下の通りです。*3

  • sla: parameter supports duration: HH:MM:SS syntax in addition to time: HH:MM:SS syntax.
  • sla: parameter supports fail: BOOLEAN and alert: BOOLEAN options. Setting fail: true makes the workflow failed. Setting alert: true sends an notification using above notification mechanism.

経過時間を指定する場合は duration 、終了時間を指定する場合は time を使い、終了時にfailさせるのか、現状隠しパラメタ的なアラート処理を実行するのかを指定できます。噛み砕くと以下のようになります。

  • duration か time のどちらかを選択する
    • 経過時間を指定したい場合は duration
    • 終了時間を指定したい場合は time
  • 超過した場合、終了時にfailさせて、 _error: の処理も実行したい場合は fail: true
  • 超過した場合、終了時にnotificateion.typeによる通知を実行する場合は alert: true *4

余談ですが time:duration を両方指定した場合は以下のエラーとなります、親切ですね。

error: SLA must be specified using either the 'time' or 'duration' option (config)

*1:digdagではWorkflowと呼ぶけどここでは一般用語として"ジョブ"とします

*2:SLA(Service Level Agreement)を定義する意味からのオプション名でしょうが、Timeoutとかの方が個人的には分かりやすいです

*3:このオプションの説明がRelease Noteにしかなくて分かりづらいので、ドキュメント修正のPRを出したりしました

*4:そもそもこのnotification.typeが現状ドキュメントにないのはなぜなんだろ

続きを読む

メル社さんのSREイベントに参加してきました

2019-09-11に開催された "mercari merpay SRE ✕ microservices platform meetup" の感想を簡単に。

mercari.connpass.com

3行で書くと以下の感想で、学びと刺激と持ち帰りが多い内容に始終圧倒されまして、参加できたことにとても感謝しています。

  • 技術力と視座の高さに圧倒される
  • 人材の豊富さに圧倒される
  • 会場クオリティの高さに圧倒される
続きを読む