タグ

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

  • 【ECS】ECSに関するIAM Roleを整理する【AWS】 - Qiita

    はじめに ECSには4つのIAM Roleが出てきます。それぞれAWS Management Consoleや公式ドキュメントには説明がありますが、実際の設定・挙動と突き合わせてどうなっているか分かりにくいため、整理しました。 なお、稿では情報過多を避けるため、一旦、Service IAM role (Service-Linked Role) の説明は省いています。 3つのIAM Role ECSで稼働するコンテナの動作には、主に以下の3つのIAM Roleが関わってきます。それぞれの役割、利用されるタイミングを説明します。 Container Instance IAM Role Task Execution Role Task Role TL;DR ※ Launch Typeによる挙動の違い 参照。 解説 Container Instance IAM Role Fargateを利用しな

    【ECS】ECSに関するIAM Roleを整理する【AWS】 - Qiita
    inoueyuworks
    inoueyuworks 2022/11/10
    fargate では、 TaskExecutionRole と TaskRole がある。実行されたタスク(アプリケーションコード)が利用するのが TaskRole で、 Task を Exec するまでに必要な Role (e.g. ECR の pull) が TaskExecutionRole
  • S3ウェブホスティングとS3 + CloudFront構成の料金比較 - Qiita

    はじめに S3単独でウェブホスティングするより、S3 + CloudFront構成の方が安くなるという話を聞いたので、机上で計算して確認しました。 料金は、東京リージョンの2019/11/30現在で計算しています。 S3の料金 ざっくりした費用。 オプションを設定したり、データ量が多くなると単価が変わる。 種類 料金

    S3ウェブホスティングとS3 + CloudFront構成の料金比較 - Qiita
    inoueyuworks
    inoueyuworks 2022/10/28
    S3 単体と S3 + Cloudfront の料金表。基本的に S3 のみの方が安い。リクエスト課金は S3 の方がずっと安く、転送量課金はどちらも最初は同じ額(S3 -> CloudFront も微妙に課金対象) CloudFront は 5TB 以上でスケール割引がある。
  • 【PostgreSQL】重複行削除で使えるDISTINCT ON - Qiita

    はじめに ある列の重複は削除した上で他の列も含めて取得したいなどのケースで便利なDISTINCT ONという構文がPostgreSQLには存在する。 この構文は標準SQLには存在しないので注意。 標準SQLの普通のDISTINCTは特定の列の重複のみ除外して他の列も取得ということはできず、重複除外に指定するか取得しないかしかできない。 この構文を使用しなければGROUP BYや副問合せを駆使しなければならないのでそれに比べるとかなり直感的に書くことができる。 下記のサンプルテーブルに対して使用していく。 postgres=# create table t1 (c1 int, c2 int); postgres=# insert into t1 values (1, 1), (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 2), (2, 3); pos

    【PostgreSQL】重複行削除で使えるDISTINCT ON - Qiita
    inoueyuworks
    inoueyuworks 2022/04/09
    select distinct on(exp1, exp2, ...) によって、指定された exp たちについてただ一つだけ record を pick して select することが可能
  • ActiveRecordのモデルが1つだとつらい - Qiita

    Railsあるある 何気ないモデルの変更がアプリケーション全体を傷つけた TL;DR 最近の趣味アプリではコントローラーごとにモデル生やしてトップレベルのモデル使わない設計で書いていて、コールバックやデフォルトスコープ書き散らかしても影響範囲がコントローラー内だけで済むので便利だしFormオブジェクト書いてグルーしまくる必要もなく快適 — Miyagi (@hanachin_) 2018年1月30日 アプリ全体で1モデルだとグローバル変数と一緒、モデル全体に影響でる機能がアプリ全体に影響でてつらい。機能ごとにスキップしたり使い分けはできるけどモデルごと全部分けたほうが楽、コントローラーごとに分けると責務が明確になりやすい。みたいな感じです! 詳しい記事はやる気でたら書く... — Miyagi (@hanachin_) 2018年2月9日 自分自身ネームスペースどう切るかとかは興味なくてd

    ActiveRecordのモデルが1つだとつらい - Qiita
    inoueyuworks
    inoueyuworks 2022/02/27
    ActiveRecord のモデルを、責務ごとに分割していく方法
  • PostgreSQL のパフォーマンスチューニング - Qiita

    PostgreSQL Advent Calendar 2014 の 13日目です。 Advent Calendar を今年もやってみたいと思って、枠が空いていたので飛び込んでみました。 昨日は osapon さんの libpqxx を使ってみたでした。 概要 PostgreSQL のパフォーマンスチューニングは大きく下記に分かれます。 システムチューニング SQL チューニング ここでは Linux 上で動かしていることを前提に、それぞれ説明します。 システムチューニング システムチューニングの概要 システムチューニングとは、OS または PostgreSQL の設定を変更することです。 それぞれ順に説明します。 OS チューニング PostgreSQL では特にメモリ関連でOSパラメータを設定変更すると、高速化効果が得られます。 特に下記のカーネルパラメータに注意します。 vm.dirt

    PostgreSQL のパフォーマンスチューニング - Qiita
    inoueyuworks
    inoueyuworks 2022/02/27
    postgresql の実際的なチューニング項目の列挙
  • JavaScriptのArrayでuniqする8つの方法(と、その中で最速の方法) - Qiita

    この記事は会社のブログとのクロスポストです。 みなさんはuniqというコマンドやメソッドをご存じでしょうか? LinuxmacOSのシェルのコマンドとして使えるuniqは、与えられた入力の中で(連続する)同じ値を重複と見なして除外するというコマンドです。例えばこんな風に使います。 $ cat /var/log/apache2/access.log | cut -d ' ' -f 1 192.168.0.12 192.168.0.10 192.168.0.12 192.168.0.12 192.168.0.11 192.168.0.10 192.168.0.11 192.168.0.11 $ cat /var/log/apache2/access.log | cut -d ' ' -f 1 | sort | uniq 192.168.0.10 192.168.0.11 192.168.0.

    JavaScriptのArrayでuniqする8つの方法(と、その中で最速の方法) - Qiita
    inoueyuworks
    inoueyuworks 2022/02/16
    Set に詰めてから Array にするのが、計算量的には一番良い。 Array.from(array.reduce((set, elem) => set.add(elem), new Set())) が array.uniq 的なノリの js 版
  • Python製のCLIアプリのインストールはpipx使っとけばOK (2020年時点) - Qiita

    これだけでいい感じになる。 はじめに Python製CLIアプリのインストールはpipを使えばできてしまうのですが、Macには標準でPython2とPython3が同居していたり、自分でPython環境を別途構築しているとpipが一体どこのpipなのかが訳わからなくなりがちだと思います。 こんな記事があったり。 Why you should use python -m pip pipを使うならちゃんとインタプリタを明示しようということですね。でも面倒だ。 上記の記事を読むとCLIアプリ管理に特化したpipxというツールがあることを知りました。 使ってみると確かにいい感じ。ちょっとした解説を踏まえて記事にしました。 環境 MacOS 10.14.6 pipx をインストールする。 (公式READMEと同じ内容です。) pipx自体はHomebrewでパパっとインストールします。

    Python製のCLIアプリのインストールはpipx使っとけばOK (2020年時点) - Qiita
    inoueyuworks
    inoueyuworks 2021/12/01
    cli をインストールしてツールとして利用すること(のみ)が目的であるならば、 pipx でインストールしておくと良い。各ツールごとに virtualenv を作成しながら実行できるようにするツール。
  • Pumaの起動におけるpumaコマンドとpumactlコマンドの違い - Qiita

    背景 これまで開発していたRailsアプリケーションはアプリケーションサーバにUnicornを採用して番稼働させていた。最近になってようやくRails5に移行しようかとなったので、ずっと気になっていたPumaを試験的に採用してみることにした。 開発したアプリーションをPumaで起動する際には、どうやら「pumaコマンド」で起動する方法と「pumactlコマンド」で起動する方法があるらしい、ということがわかったがいまいちその違いがわからなかったので調べてみた。 Pumaとは Pumaではリクエストの並列処理を実現させるためにスレッドを利用している。リクエストを処理するためのスレッドをスレッドプールに事前に用意しておいて、リクエストがきたときにスレッドに処理を任せることでスレッドベースな処理を実現させているらしい。 GitHub - puma/puma: A ruby web server

    Pumaの起動におけるpumaコマンドとpumactlコマンドの違い - Qiita
    inoueyuworks
    inoueyuworks 2021/10/11
    pumactl は、 config/puma.rb の設定のみを利用して puma を操作するためのコマンド。 puma コマンドは、コマンドライン引数によって、 config/puma.rb の設定を上書きでき、しかしそれは運用上バグりやすいので、 pumactl ができた
  • VMWare, VirtualBoxのネットワーク接続方式の違いを整理する - Qiita

    はじめに VMWare, VirtualBoxでネットワーク設定をする際、何をどう設定するのがよいかたびたびわからなくなるため、改めて接続方式・構成についてちゃんと理解しておこうと思いました。 そうすることで今後仮想環境を構築する際、ユースケースに応じて適切な設定を選択できればと思います。 対象 仮想環境のネットワークを何となく設定して繋がったので終わりにしている人 何となく設定したけれども思うように繋がらず困っている人 ちょっと前の自分 想定環境 ホストPC: Windows10 Pro 64bit 仮想化ソフトウェア: VMware WorkStation Player 12 Oracle VM VirtualBox 6.0 会社内LANなどに接続したホストPCで仮想環境を構築し、仮想マシンをネットワーク接続させる場合を想定 ネットワーク設定と概略 ざっくりまとめると以下のようになりま

    VMWare, VirtualBoxのネットワーク接続方式の違いを整理する - Qiita
  • CiecleCI の Workflow job に名前をつけて依存を管理する - Qiita

    動機: CircleCI Orbs を使ったときに困ったこと CircleCI Orbs を使うことで、AWS ECRへのイメージPushなどを行ってくれますが、ブランチごとに別々のリポジトリにpushしたい場合などは少し困ったことになります。 以下、正しく動作しないケースです。 version: 2.1 orbs: aws-ecr: circleci/aws-ecr@6.15.1 aws-ecs: circleci/aws-ecs@1.4.0 # 中略 workflows: build: jobs: # 中略 # Staging 用のデプロイ - aws-ecr/build-and-push-image repo: "Staging用リポジトリ" tag: "${CIRCLE_SHA1}" requires: - test - lint filters: &staging-filter

    CiecleCI の Workflow job に名前をつけて依存を管理する - Qiita
    inoueyuworks
    inoueyuworks 2021/08/26
    workflow 中の job インスタンスは、 `name:` を指定することで、その名前をデフォルトから変更できる。特に、 job parameter を変更したで同一 job が複数存在する場合に、 require の指定のためなどにおいて必要。
  • Finderで隠しファイルを一時的に表示する(キーボードショートカット) - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    Finderで隠しファイルを一時的に表示する(キーボードショートカット) - Qiita
    inoueyuworks
    inoueyuworks 2021/06/29
    Mac の Finder にて、隠しファイルの表示をトグルするコマンド: `Cmd+Shift+.`
  • いろんなAnomaly - Qiita

    昨日様々なトランザクション分離レベルに付いて書いた。 AnomalyとはSerializableでない実行を引き起こす異常状態パターンのことを言う。 弱い分離レベルほどAnomalyが起きやすい。 これから図を交えながらAnomalyについて説明する。 図中の「W(x)」は「xに何らかの値を書き込む」、「R(x)」は「xの値を読む」をそれぞれ意味する。 分かりやすいようにReadは青、Writeは赤色で統一する。 また、Anomalyの被害に遭うのは常にT1に統一する。 Cはコミットを意味する。 Dirty Read Anomaly 未コミットな値を読んでしまうAnomalyの事。Readがロック関係なしに値を読んでしまう場合などに起きる。 T1が書き換えられる最中のxの値を読んでしまっている。もしT2が途中でアボートしたらT1はどこにも存在しない値を読んだ事になってしまう。 READ U

    いろんなAnomaly - Qiita
    inoueyuworks
    inoueyuworks 2021/06/09
    dirty read; read skew; lost update; inconcistent read; write skew; read skew; についての解説
  • GitHub Actions の無料枠を使いきった場合 - Qiita

    また、メール及びGitHubのBillingページで使いきった旨が通知されます。 ※ワークフローでエラーをSlackに通知する設定している場合、ワークフローが実行されないためSlackへの通知はされません。 追加購入 無料枠を超えた利用分はLinuxは$0.008/分、Windowsは$0.016/分、macOSは$0.08/分の従量課金になります。 勝手に追加購入はされないので、追加利用したい場合はGitHubのBillingページから設定します。 Update spending limit ボタン や Cost management タブ などから上限設定に移動 上限金額を設定するか無制限に使用するかを設定 ※この設定は GitHub Actions だけでなく GitHub Packages 及び Storage for Actions and Packages と共通のようです。

    GitHub Actions の無料枠を使いきった場合 - Qiita
    inoueyuworks
    inoueyuworks 2021/05/27
    従量課金的な pricing を利用するように設定できる
  • RESTful な並び替え実装の個人的ベストプラクティス - Qiita

    こんにちは。Mikatus でサーバーサイドエンジニアをしている gypsy と申します。 この記事は Mikatus アドベントカレンダーの17日目です。 最初、「Scala + DDD + 関数型でポケモンをモデリングしたい」というタイトルで記事を書こうと思っていたのですが、モデリングしているうちに情熱が失われてしまったので別のことを書きます。 並び替え処理の悩み 最近、要素の並び替え処理(ToDo アプリのタスクの並び替えのような)を設計する機会があったのですが、なかなか納得のいく実装が見つけられないでいました。 最初に考えたのは、並び順を 1 からの連番として表現し、 // resourceId の並び順を 2 番目にするリクエスト PUT path/to/resources/resourceId/sort { "order": 2 }

    RESTful な並び替え実装の個人的ベストプラクティス - Qiita
    inoueyuworks
    inoueyuworks 2021/04/12
    trello は、そのカードの位置を float で保持しており、 order by その値で取得している。
  • データサイエンティストの終わりなき戦い - Qiita

    はじめに 筆者はかつてデータサイエンティストだった者です。 統計や機械学習をバリバリ使いこなしてデータを分析し、将来の売り上げ予測や要因分析、施策の効果検証などをすることに憧れてこの世界に入りましたが、そうした時間は全体の1割ほどに過ぎず、残り9割の時間の戦いに疲れて戦場を後にしました。 なぜデータサイエンティストは戦わなければならないのだろう。 おそらく一因としてあるのが、データサイエンティストという言葉がバズワード化しすぎてしまったせいで、その定義の輪郭が失われてしまったことだと思います。 整理された定義は、言わずと知れた尾崎隆さんのデータサイエンティスト・機械学習エンジニア・データアーキテクトの定義とスキル要件(2021年版)に記載されています。 しかし、専門家でも意見が別れる定義を素人がはっきりと分かるはずもなく、過度な期待が寄せられることで討死してしまうデータサイエンティストが少

    データサイエンティストの終わりなき戦い - Qiita
    inoueyuworks
    inoueyuworks 2021/03/31
    神エクセル: OpenRefine でましになる; ゴミデータ: クライアントに依頼; powerpoint: python-pptx で ppt-as-code; 有効数字: ドメイン知識; 個人情報収集がんばる; 背景知識: ざっくり図示; 不正行為: 倫理観
  • ウォーターフォールを世に広めたとされる米軍がアジャイルに移行中という話 - Qiita

    また、この図の説明においては理想的なケースにおいても1つ前の工程に戻る事が述べられています。 " Hopefully, the iterative interaction between the various phases is confined to successive steps. " (投稿者訳) 理想的には、各段階において工程が前後する範囲は直近の工程に限られる。 理想的でない場合はどうかというと、テストから設計まで工程が戻りうると示唆しています。 "The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as dist

    ウォーターフォールを世に広めたとされる米軍がアジャイルに移行中という話 - Qiita
    inoueyuworks
    inoueyuworks 2021/03/24
    ウォーターフォール(後戻りなし)は、そもそもなんでそんなものがあるんでしたっけ?状態。米軍ですら、アジャイルに移行中。
  • TypeScriptでCLIツールを作って、npmパッケージにする

    環境 node 9.4.0 TypeScript 2.9.2 npm 6.1.0 webpack 4.16.3 Visual Studio Code 1.25.1 予めtj/n: Node version management等を使って、Node.jsをインストールしておきましょう。 実践 適当な名前でプロジェクトディレクトリを作っておきます。ココではts-sampleとします。 $ mkdir ts-sample $ cd ts-sample/ $ git init $ curl https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore > .gitignore

    TypeScriptでCLIツールを作って、npmパッケージにする
    inoueyuworks
    inoueyuworks 2021/02/12
    package.json に "bin" { binaryName: path } を追加すると、それが global に link される。 #!/usr/bin/env node とかの shebang で中身は実装。
  • Node.jsでRubyのbinding.pry的ツール、debuggerを使う - Qiita

    Array.from(Array(3).keys()).forEach(function(key){ debugger; // ここでブレイクする console.log(key) }) node debug debugger.js < Debugger listening on 127.0.0.1:5858 debug> ok break in test.js:1 > 1 Array.from(Array(3).keys()).forEach(function(key){ 2 debugger; 3 console.log(key)

    Node.jsでRubyのbinding.pry的ツール、debuggerを使う - Qiita
    inoueyuworks
    inoueyuworks 2021/02/12
    binding.pry と同じことは: (i) debugger; を pause したい箇所に記述 (ii) `node debug thescript` を実行する。
  • 管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita

    自己紹介 職のエンジニアではありませんが、ちょっとICT系に詳しそうなやつって感じで、部署のサーバ管理を任されたりもしています。 背景 私の(当時所属していた)部署では、毎年、数週間かけて前年の各人の業務実績をとりまとめて一つの冊子(PDF)にするという仕事があり、この作業を少しでも自動化するため、Webサービスが内製されました。当初は単純に各ユーザが自分の業務実績一覧をテキストで用意してアップロードするというものでしたが、秘伝のタレのように毎年少しずつ改良されたり、大幅に作り直されて別システムから業務データを取り込んでからブラウザ上で編集できるようになったりしつつ、なんやかんやあって私が引き継ぎます。他にやりたい人もなく、ひとり鯖管です。OSはCentOS6でした。 このシステムでは、毎年新しいデータを編集するため、その作業開始時にデータを初期化する必要があります。この作業も自動化し、

    管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita
    inoueyuworks
    inoueyuworks 2021/01/06
    初期化されてしまった web サービスのデータをサルベージする話。
  • 【JS/ Python両方OK!】「データ可視化」が歴史から実装まで体系的に学べるStanford講座の独習ノート - Qiita

    【JS/ Python両方OK!】「データ可視化」が歴史から実装まで体系的に学べるStanford講座の独習ノートJavaScriptd3.jsデータ分析データサイエンスcolaboratory CS 448B Visualization (2020 Winter)は、Maneesh Agrawala氏による、Stanford大で行われた、データの可視化に関する体系的な講義です。 スタンフォード大の"CS 448B Visualization (2020 Winter)" がすごい。 データ可視化の体系的講義。どう図表に変換するかの理論、探索的データ分析、ネットワーク分析等の実践と盛り沢山。 スライドに加え、Observable(JavaScript), Colab(Python)どちらでも例を試せる。https://t.co/lGyPElrihg pic.twitter.com/mWZn

    【JS/ Python両方OK!】「データ可視化」が歴史から実装まで体系的に学べるStanford講座の独習ノート - Qiita
    inoueyuworks
    inoueyuworks 2021/01/05
    割と体系的な Data Visualization の Stanford 講義についての解説記事。