タグ

ブックマーク / qiita.com (505)

  • dig の全てのコマンドラインオプションを一覧にしたシートを作成しました - Qiita

    概要 筆者は DNS Summer Day 2023 で「あたらしい dig」というテーマで発表を行いました(資料はこちら)。 DNS のテストツールである dig コマンドは、ネットワークエンジニアのみなさんが日常的に利用していると思います。 一方で、dig を用いているとたまに想定とは異なる結果が得られ、戸惑うことがあります。 原因としては、dig の送信するリクエストメッセージに関するデフォルト値が一般的な感覚と異なるために起きることが多いようです。 発表ではこれらの具体的な例を挙げつつ、もし dig のいくつかのコマンドラインオプションの存在やそのデフォルト値の知識があったならば、それらはすぐに解決したであろうことを示しました。 dig には非常に多くのコマンドラインオプションがあります。しかし、man ページや -h オプションで表示される簡易ヘルプではコマンドラインオプションが

    dig の全てのコマンドラインオプションを一覧にしたシートを作成しました - Qiita
  • Terraform 公式がスタイルガイドを出したので読んで要約した - Qiita

    3/30 に X で Terraform がトレンド入りしていて何事かと思ったら Terraform が公式ドキュメントとしてスタイルガイドを出したようです。 Terraform Style Guide いままで Terraform のスタイルに関して信頼できるドキュメントといえば Google Cloud の Terraform を使用するためのベスト プラクティス ぐらいしか知らなかったのですが、 Terraform 公式がようやく出してくれてありがたい限りです。 これでわざわざ社内の Terraform 規約を設けずとも「公式ドキュメントに従いましょう。」の一言で済みます。 ということで一通り読んだのでまとめました。 原文だと構文の簡単な使い方なども書いてありますが以下の要約ではだいたい省略しています。 詳細は原文を読んで確認してください。 要約 スタイルガイドについて コードのスタ

    Terraform 公式がスタイルガイドを出したので読んで要約した - Qiita
  • 運用に携わる人全員に見てほしい! Ops Guidesの紹介 - Qiita

    PagerDuty Advent Calendarの8日目! 今日はOps Guidesのお話です。 うちはこうだけど、他はどうやってるんだろう? 普段から運用に関わっていると、ふとした瞬間に「そういえば他の会社ではどういう運用をやっているんだろう?」と気になること、ありませんか? そのきっかけは「当になんとなく」といったものから「上手くいかない運用にフラストレーションが溜まって」というどす黒いものまで色々あると思いますが、いずれにせよ「他の会社の良いところを取り入れて、自分たちの運用を改善したい」という気持ちから来ているのは間違いないでしょう。 だからこそ、いろんなミートアップに参加して発表を聞いたり、懇親会で話してみたり、Xに垂れ流されているいろんなポストを読んで事例を学ぶわけです。 ベストプラクティスを学びたい! このような取り組みはとても良いことですし、是非とも継続して情報収集し

    運用に携わる人全員に見てほしい! Ops Guidesの紹介 - Qiita
  • Terraform職人のためのOpenTofu入門 - Qiita

    この記事は クラウドワークス Advent Calendar 2023 シリーズ1 の 4日目の記事です。 はじめに 「父さんな、Terraform職人やめてお豆腐職人でっていこうと思うんだ」と言いたいだけの @minamijoyo です。 2023年8月HashiCorpはこれまでMPL2のOSSライセンスで公開していた主要製品をBSL(Business Source License)に変更することを発表し、Terraformはv1.6.0からOSSではなくなりました。 このライセンス変更を受けて、OSS版のTerraformを求める人たちで、MPL2時点のコードベースからforkしたOpenTofuの開発が進められています。 HashiCorpのBSLは、実質的に競合他社の商用利用に制限をかけたもので、ほとんどの一般的なユーザに直接的な追加の制限はありませんが、間接的にTerrafo

    Terraform職人のためのOpenTofu入門 - Qiita
  • Rails初心者に送る「Bundlerチョットワカルマニュアル」 - Qiita

    はじめに Railsアプリケーション開発に必要不可欠なツールのひとつがBundlerです。 Railsを学習している人なら必ず一度はbundle installコマンドを実行したことがあるでしょう。 Railsの学習書などに従って指示されたコマンドを入力するだけなら簡単ですが、実務ではbundle install以外にも必要な知識が出てきます。 しかし、Bundlerは意外とクセがあるというか、使っているうちに徐々に「あー、そういうことね」と経験から使い方や仕様の理解が進むような印象があります。筆者の場合はそうでした。 そこでこの記事では、Rails初心者を対象に「実務でRailsを使うなら知っておくと役立つBundlerの知識」を説明します。 題して「Bundlerチョットワカルマニュアル」です! 記事の対象読者 記事では以下のような読者を想定しています。 Railsアプリケーション

    Rails初心者に送る「Bundlerチョットワカルマニュアル」 - Qiita
  • ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita

    pictBLandとpictSQUAREに対する不正アクセスがあり、パスワードがソルトなしのMD5ハッシュで保存されていたことが話題になっています。 2023年8月16日に外部のフォーラムにpictSQUAREより窃取した情報と主張するデータ販売の取引を持ち掛ける投稿が行われた(中略)パスワードはMD5によるハッシュ化は行われているもののソルト付与は行われていなかったため、単純なパスワードが使用されていた29万4512件は元の文字列が判明していると投稿。(それ以外の26万8172件はまだMD5ハッシュ化されたままと説明。) 不正アクセスによるpictBLand、pictSQUAREの情報流出の可能性についてまとめてみた - piyolog より引用 これに関連してMD5ハッシュやソルトに関するツイート(post)を観察したところ、どうもソルトの理解が間違っている方が多いような気がしました。

    ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita
  • bashの変数内文字列置換まとめ - Qiita

    #と%が覚えづらい。 #はmarkdownで行頭に書くと見出しになるから「先頭の」 %は100%のように末尾に書くから「末尾の」 と覚えるといいかも。 キーボードで#は%より左にあるから#が先頭と覚えてもいいかも。 % %% # ## はPOSIXで決まっているのでbash以外のshでも使えるらしい。2.6.2 Parameter Expansionに書いてある。 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html 具体例 dirname

    bashの変数内文字列置換まとめ - Qiita
  • terraform importしてplan差分がない=環境が再現できているといつから錯覚していた? - Qiita

    はじめに 先日、Terraform v1.5.0がリリースされました v1.5の目玉はなんと言っても import ブロックと terraform plan -generate-config-out によるtfファイルの生成ですよね〜。これで既存のリソースもimportし放題だと巷で話題です。 ところで、Terraformの特徴として、「インフラをコード化することで環境が再現できる」などと一般的に謳われています。また、Terraformには「既存リソースをimportする機能」があります。別にそれぞれ単独では間違ってはないのですが、これらを組み合わせて、「既存リソースをimportしてplan差分が出なければ元の環境を再現できる」と言えるのでしょうか? 残念ながら現実にはそうとも言い切れません。なんとなく経験上わかってる人もいるとは思いますが、意外と気づいてない人も多そうな気がしたので、ち

    terraform importしてplan差分がない=環境が再現できているといつから錯覚していた? - Qiita
  • シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita

    この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが重要であることを思い出させてくれるでしょう。 Dateutils の重要な特徴と使用例 大抵のコマンドは機能の説明から想像できると思いますし、公式サイトにも例があるので詳細を一つ一つ説明することはしません。その代わりに「Dateutils の使いこなしに必要な考え方」が分かるような例をいくつか紹介します。 重要な注意点ですが Dateutils はロケールをサポートしていますが、原則としてシステムのロケール情報やユーザーの環境変数には依存していません。内部にロケー

    シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
  • Terraform v1.4でのTF_PLUGIN_CACHE_DIRと.terraform.lock.hclの挙動変更 - Qiita

    はじめに Terraform v1.4がリリースされました。 上記のアナウンスでは特に言及されてないのですが、v1.4のUpgrade Guideに以下のような記載があり、TF_PLUGIN_CACHE_DIRと.terraform.lock.hclの組み合わせの挙動が若干変更になっています。 Provider caching during terraform init This change affects those who rely upon global provider caching and not the dependency lock file. terraform init now ignores entries in the optional global provider cache directory unless they match a checksum alr

    Terraform v1.4でのTF_PLUGIN_CACHE_DIRと.terraform.lock.hclの挙動変更 - Qiita
  • コンテナ向けデプロイツールMRSKを試してみる - Qiita

    3行まとめ MRSKは「コンテナ時代のCapistrano(Capistrano for Containers)」的なデプロイツール。すごくDHHぽい。 $5くらいの素のcompute instanceがHerokuみたいに使えるようになる(ただしDBやS3やRedisは必要に応じて別途用意する前提、合わせて別インスタンスで立ち上げる機能もあり) 37Signalsではproductionで使ってるようだけどまだまだ荒削りなので、しばらくは一緒に開発したいくらいの勢いで使いたい人向け MRSKとは MRSKはRailsの創始者DHHが新しく作ったデプロイツールです。 初コミットは2023年の1月7日ということで真新しいプロダクトなのですが、中身を見るとあまり新しそうに見えないというか、今どきのクラウドネイティブな世界観から見ると正直懐かしい感じもあります。なんで今これが作られたのでしょうか

    コンテナ向けデプロイツールMRSKを試してみる - Qiita
  • Pythonのパッケージ管理ベストプラクティス - Qiita

    ※おすすめの基準には上記「導入の手軽さ」「学習の手軽さ」「パッケージ依存関係の解決」以外に、「対象OSとの相性」「検索による情報の見つかりやすさ」を考慮しています。詳しくは後述します 筆者の主観が入りますが、概ね以下のフローチャートのように選択すると良いかと思います (詳しくは後述します) なお、実用上ハマりやすいプロキシ環境での使用方法についても、以下の記事に別途まとめました 必要知識 ここから先は、Pythonのパッケージ管理が何をやっているかを解説します。 「御託はいいから早く使いたい!」という方は、「3種類の方法比較」の項目まで飛んでください まず、一般的に「パッケージ管理」と呼ばれている要素を、以下の4つの機能に分割して考える必要があります。 A. インタプリタ切替 (Pythonのバージョンを切り替える) B. パッケージ切替 (パッケージのバージョンを切り替える) C. パッ

    Pythonのパッケージ管理ベストプラクティス - Qiita
  • aws_iam_openid_connect_providerのthumbprint_listの計算方法 - Qiita

    GitHub ActionsがOIDCプロバイダとして使えるようになりました。 これによりAWSのアクセスキーを埋めることなくロールベースでのアクセスができるようになりました。やったね。 この話自体はなぜか公式リリース前にサンプルコードが出回ったりして、みんなサンプルコードコピペして動いた〜って話題になってたので今さら感があるかもですが、例えばTerraformaws_iam_openid_connect_providerの設定をするならこんなかんじでしょうか。 resource "aws_iam_openid_connect_provider" "github" { url = "https://token.actions.githubusercontent.com" client_id_list = ["sts.amazonaws.com"] thumbprint_list = ["

    aws_iam_openid_connect_providerのthumbprint_listの計算方法 - Qiita
  • Apartment でマルチテナントサービスを作成する - Qiita

    2018-08-17 追記 数百テナント程度なら大きな問題なく利用できる一方、数千テナント規模になってくると migration コストが重くなってきました。 一つの解として SmartHR 社では citus という DB As a Service への移行を決めました。 詳しくはこちらのブログ記事をご参照ください。 SmartHR が定期メンテナンスを始めた理由とやめる理由 - SmartHR Tech Blog 概要 Rails でマルチテナントサービスを実現する apartment という gem を紹介します。 バージョン rails: 4.2.0 apartment: 1.0.0 マルチテナントサービス? 1 つのサービスの中に複数のテナントが同居するサービスです。 例としては Qiita:Team や Trello などなど、企業やチームで利用する SaaS 型のサービスが想

    Apartment でマルチテナントサービスを作成する - Qiita
  • Terraform だけだとハードモードなので Terragrunt を使おう - Qiita

    Terraform はそのままだと管理が大変 みなさん IaC (Infrastructure as Code) してますか?パブリッククラウドをIaCするなら、 Terraform が便利ですね! しかし、格的に使い始めると、こういう問題がすぐに出てきます。 複数環境の楽な分け方を知りたい ワークスペースはなんか嫌だ とはいえ、環境間で共通するボイラープレートをどうにかしたい 環境内で適用するモジュールを細分化・分岐したいけど面倒 環境ごとに使うモジュールを切り替えたい テスト環境はAuroraではなく安いRDSにしたい モジュール(tfstate)を分割して小さい範囲で適用したい 大きなモジュールは影響範囲がわからないし、差分計算にそれなりに時間がかかってしまう 分けたモジュールを一括適用するのが面倒 モジュール間の依存関係がわからない モジュール(tfstate)間での値参照が面倒

    Terraform だけだとハードモードなので Terragrunt を使おう - Qiita
  • シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題ShellScriptUNIXshellシェル芸POSIX はじめに シェルスクリプトで ls コマンドの出力結果(ファイル名一覧)をパイプで他のコマンドに渡して処理するのは推奨されません。ls コマンドを使ったコードを ShellCheck で検査するとおそらく問題があると警告が表示されるでしょう。ls を使うなという指摘自体には賛成なのですが SC2010、SC2011、SC2012 に書いてある理由については正しい説明がされていないと思っています。この記事ではなぜ ls の出力結果を他のコマンドにパイプで渡すのが悪いのか、ls を使わずに実現するにはどうしたら良いのかを解説したいと思います。一つ補足をしておくと、この問題は CLI コマ

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita
  • ニコニコで外注したサービス開発で、ドワンゴのエンジニアがスクラムを導入して、設計とコードの品質を改善した話 - Qiita

    ニコニコで外注したサービス開発で、ドワンゴのエンジニアスクラムを導入して、設計とコードの品質を改善した話設計スクラムニコニコ外注 概要 株式会社ドワンゴ NFC事業プロジェクト VP of Engineering の @chiyoppy です。 この記事はドワンゴアドベントカレンダーの 22 日目の記事です。昨日は @hiraike32 さんが「Android アプリをマルチモジュールにしたときのCI環境を整える」として、N 予備校 Android アプリの CI について投稿されました。 さて、日は2022年1月にリリースした「Sheeta」「ニコニコチャンネルプラス」において、開発体制の刷新を行うことでサービスの品質を改善した軌跡をご紹介します。開発会社が参画するプロジェクトでは、コストとスケジュールは契約や見積もりによってある程度のコントロールが可能です。しかしながら、品質のコン

    ニコニコで外注したサービス開発で、ドワンゴのエンジニアがスクラムを導入して、設計とコードの品質を改善した話 - Qiita
  • AWS側がしてきたECS / Fargate のスケーリング速度改善の話 - Qiita

    概要 2022年4月頃に、AWS のコンテナヒーロである Vlad Ionescu が Amazon ECS でのコンテナスケーリング時の起動速度をまとめたブログが公開された。 今回は、ブログを読み解きこのブログで語られた内容についてまとめていこうと思います。 ※ なお、ブログでは Amazon ECS / AWS Fargate についてのサービスを説明することは対象としておりません。あらかじめご了承ください。 ECS における各種データプレーンとタスク起動に比較 そもそも Amazon ECS というのは、AWS が独自開発しているコンテナオーケストレーションサービスです。 そのため、AWS 側が見てくれる領域とユーザ側が見なければいけない領域が異なる点には注視していないといけない。 下記を見てみると、領域の違いがわかるのですが、実際に稼働するコンテナのアプリケーションや、ECS A

    AWS側がしてきたECS / Fargate のスケーリング速度改善の話 - Qiita
  • Amazon DynamoDB の論文を読んでいく - Qiita

    概要 AWS で人気のサービス DynamoDB についての論文が公表され巷で噂になっていたと思う。 今回は、その論文を読み込んでいき、ざっくりまとめていくという記事になります。 完全趣味な記事なので、興味ある人がいれば幸いです笑 Abstract まず論文のタイトルですが、「Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service」と題したものとなっています。 Amazon DynamoDB は、NoSQL とよばれる部類のデータベースサービスです。 一貫した耐久性、可用性、パフォーマンスを提供してくれるマネージドなサービスなのが特徴ですね。 冒頭、2021年に66時間にわたる「Amazon Prime Day」中にピーク時8920万リクエスト/秒をさばいてい

    Amazon DynamoDB の論文を読んでいく - Qiita
  • tfmigrate + Atlantis でTerraformリファクタリング機能をCI/CDに組み込む - Qiita

    マイグレーションの履歴を記録することで、マイグレーションファイル名を省略して、単に tfmigrate plan や tfmigrate apply とするだけで、未適用のマイグレーションを適用することが可能になり、よりCI/CDで使いやすくなりました。また履歴モードが有効な場合、 tfmigrate list --status=unapplied で未適用のマイグレーションファイルを列挙することも可能です。 いまのところ storage の種類は s3 と local しか使えませんが、s3 以外のクラウドストレージに保存したい場合は、現状の回避策として local ストレージを使用して一旦ローカルファイルとして保存して、tfmigrate plan / apply の前後で履歴ファイルを自前で同期することは可能です。最新の状況は上記のREADMEを参照して下さい。 tfmigrate自

    tfmigrate + Atlantis でTerraformリファクタリング機能をCI/CDに組み込む - Qiita