hoomin.kani

KANISAN WEB

インフラ・サーバーサイドを頑張るカニが学んだあれこれ。

Cloud Translation API リクエスト数の増加をメールで通知する方法

Cloud Translation APIの料金 Cloud Translation API はGoogleが提供している機械翻訳機能のためのAPIです。 最初の 500,000 文字が無料ですが、あとは翻訳したテキスト等の量によって費用が加算されます。 参考: Cloud Translation の料金 急激な費用増加に…

Terraform Planの実行速度を上げる3つの方法

管理するリソースが増えるにつれ、terraform planコマンドの実行に とんでもなく時間がかかる……。 そんな経験はありませんか? この記事では、インフラエンジニアの頭を悩ませるそんなお悩みを解決し、 Terraformでの変更を高速化する3つの方法を共有します…

Amazon ECS Execで コンテナに接続する方法

ECS Execの登場でコンテナアプリケーションでもデバッグが容易に! Amazon ECS、Fargateを使用している際、デバッグに苦労した経験はないでしょうか。 かつてはAWS Sesstion Manager で Fargate に SSH 接続したりと工夫が必要でしたが、ECS Execの登場でコ…

Terraform workspaceの使い方

Terraform workspaceを使う ワークスペースの作成、切り替え # dev という名前の workspace を作成して切り替え terraform workspace new dev # dev という名前の workspace に切り替え terraform workspace select dev ワークスペースの一覧を表示 terrafor…

IPv6で疎通確認&サーバーのアドレスを取得

IPv6で疎通確認 通常のping ではなく ping6 を使用します。 $ ping6 xxxx:xxxx::xxxx:xxx:xxxx:xxxx IPv6のアドレスを取得する nsloopupでAAAAレコードを検索 -type=AAAA を設定するのが肝です。 $ nslookup >>set type=AAAA >>domain $ Server: XXX.XXX.XX.…

サーバーのマシンスペックを確認するコマンド【macOS, LInux】

macの場合 system_profiler SPHardwareDataType $ system_profiler SPHardwareDataType Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro14,3 Processor Name: Intel Core i7 Processor Speed: 3.1 GHz Number of Proces…

誰でも簡単!composerの使い方

composerとは パッケージ・ライブラリの依存関係を管理するツール 使い方 初期化 composer init 対話式でcomposer.jsonが作成される パッケージをインストールする時 composer install パッケージを追加する時 composer require ${PACKAGE_NAME}:${VERSION} …

ECS on EC2からFargateへの移行(Terraform ver.)

はじめに 元々WebシステムをECS on EC2で管理していましたが、EC2の管理から解き放たれるべく、そのままFargateへと移行しました。 今回は移行の際にどのような変更が必要であったかを共有します。 なお、インフラリソースの管理はTerraform v0.11.10を使用…

awslogs-datetime-formatとawslogs-multiline-patternの使いどころ

awslogs-datetime-formatの使いどころ awslogs-datetime-formatを使用すると、同一時間帯のログレコードが細分化されず、まとまって表示されるため、可視性が上がります。 awslogs-multiline-patternと同時に設定されている場合、このオプションは常に優先さ…

【簡単】RDSのバイナリログ(binlog)保存期間を設定する

昨今のバックアップ事情 今回はRDSのバイナリログ保存期間を変更する方法を紹介します。 前提として、RDS for MySQLではトランザクションログがデフォルトでS3に保存されており(5分間隔)、 エンジニアは管理画面から復元したい時間を指定するだけでデータの…

【Elixir】DateTime.compareで時間を比較する

Elixirで時間の比較をしたい!と思ったら、真っ先に思い浮かぶのがDateTime.compareですよね。 今回はDateTime.compareの使い方をサクッと紹介します。 DateTime.compareの使い方 使い方 Datetime AとDatetime Bを比較する場合 DateTime.compare(A, B) たっ…

【2019年版】3行でmacOSにAWS CLIをインストールする方法

前提(pythonが入っていることを確認) $ python --version AWS CLIのインストール $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" $ unzip awscli-bundle.zip $ sudo ./awscli-bundle/install -i /usr/local/aws -b …

Macのファイルディスクリプタ上限を変更する方法

稀にERROR: ulimit -n is XXX; XXX is the recommended minimum.のようにファイルディスプリタが足りないよーというエラーに出くわすことがあるので、解決法を共有。 まずは現在の状態を確認 MacBook-Pro$ ulimit -a core file size (blocks, -c) 0 data seg…

【git stash】間違って退避していた変更を適用してしまったら

git stash popやgit stash applyをやっちゃったけど、間違ってコンフリクト起きちゃった!退避させていた状態に戻したい!という時の対処法 git reset HEAD . git stash save 基本的にはこれでok

【git stash】コミットせずに変更を退避・確認・復活させるコマンド

変更を退避 git stash save 退避させた変更の一覧を確認 git stash list 退避させた変更を復活 # stash@{0}の分を復活させたい場合 git stash apply stash@{0}

Elixirで四則演算

Elixirで四則演算するときはどう書く? 足し算 ... + iex> 1 + 1 2 引き算 ... - iex> 2 - 1 1 掛け算 ... * iex> 2 * 2 4 割り算 ... / (返りは浮動小数) iex> 4 / 2 2.0 おまけ 整数同士の割り算 ... div iex> div(8, 2) 4 剰余 ... rem iex> rem(5, 3) 2

結局、REPLって何なの?

当たり前のように言うけどさ 「さぁ〜て、REPL使ってサクッと動かしてみるか」 そんな言葉を耳にする機会がたまにありますが、そもそもREPLって何なのか、ちゃんと説明できるか、自分の胸に問いかけたことはありますか? そもそもREPLってなんて読むのか分か…

Elixirのイミュータブルなデータ構造って?

イミュータブルとは? Elixirにおけるイミュータブル 再束縛を禁止したい場合 最後に: Elixir的イミュータブルのメリット イミュータブルとは? あの言語はイミュータブルで、あっちはミュータブルで……という話をちらほら聞くことがありますが、そもそもイミ…

【解決】Dockerの時刻設定、/etc/localtime:/etc/localtime:ro でCannot start service XXX: Mounts denied:のエラー

docker-compose upでマウントエラー 現象 以下のような設定のdocker-compose.ymlを使い、docker-compose up -dを行ったところ volumes: - /etc/localtime:/etc/localtime:ro このようなエラーが出た。 ERROR: for XXX Cannot start service XXX: b'Mounts de…

Dockerのコンテナ、イメージ、ボリューム、ネットワーク、全部を削除するコマンド

Dockerのリソース、全部消したくなったら。 もう何が必要で何が不必要なのかも分からない。 このPCの不要なリソース全部消したい。 生きていると、こんなこともあると思います。 そんな時に大活躍するのがdocker pruneコマンドです。 便利コマンド集 とにか…

【解決】25歳エンジニアだけどぎっくり腰になった

ぎっくり腰になったきっかけ ぎっくり腰は突然に 立ち上がれない 若くてもぎっくり腰になることはある 普段の仕事 私のスペック お仕事 解決方法 ネットで色々検索してみた リグイス体操 めちゃくちゃ効果あり まとめ ぎっくり腰になったきっかけ ぎっくり腰…

PHP Conference 2018 超概要

PHP Conference 2018に行ってきたので、聴講したセッションの超概要を数行でまとめました。 PHPのいまとこれから 2018 大規模PHPプロジェクトでPHPUnitを3世代アップグレードするためにやったこと PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み …

terraform実行環境のセットアップ方法

Terraform実行環境のセットアップ方法 インフラリソースを管理するのに便利なオーケストレーションツール、Terraform。 今回はtfenvを使ってterraform自体のバージョン管理をしつつ、 terraform applyで設定ファイルの適用をするまでのセットアップ方法をま…

クラウドGPUインスタンスの料金を比較してみた

クラウドGPUインスタンスの料金比較 AWS、Google、Azureなど、各社の価格 機械学習には欠かせないGPUインスタンス。 各クラウドサービスではどのようなコスト感になっているのか、比較してみました。 前提条件 リージョンは東京もしくは東アジアです。 2018…

HTML5 Conference 2018 基調講演の内容まとめ

基調講演 The web is shifting to the next gear(吉川徹氏) HTML5 Conferenceは今年で7回目 公開から1日で定員に HTML5を冠するのはやめると言っていたが、HTML5という強いキーワードを使うことでフォーカスをブレさせないようにするため、続行 ネイティブ…

東京Node学園祭2018では、やはりあの技術がアツかった

今年の人気者は……? 噂に聞く東京Node学園祭に行ってきましたので、自分が聴講したセッションの内容をざっくりまとめてみました! Node.jsは超(!)初心者のため、捉え違いをしている箇所があるかもしれませんが、ご容赦ください JavaScript で機械学習はじ…

[第3回] AI × Analytics × 女子部に行ってきた

[第3回] AI × Analytics × 女子部 に行ってきた イベントについて 今回で第3回目となるAI × Analytics × 女子部。 会場はウイングアーク1st株式会社で、六本木グランドタワーの36階にある夜景の綺麗な場所でした。 イベントの趣旨としては、AIや機械学…