2018-01-01から1年間の記事一覧

コマンドラインから雑に、指定したIPアドレスの国情報を取得する

運用しているサーバにDoS攻撃っぽいリクエストが飛んでくることがまれによくある。 同じIPアドレスから多数のリクエストが飛んでくる場合、どこの国のお客さんか把握したいのが人情だ。特に国内向けのサービスを運営してるのに、国外からのトラフィックが大…

「markdownlint」を使ってメンテナブルなMarkdownを目指してみる

markdownlintとは markdownlintは、Markdownファイル用のLinterだ。そして、markdownlint-cliは、markdownlintをCLIで使うためのラッパーである。 たとえば、README.md という下記のMarkdownファイルがあるとしよう。 プログラミング、完全に理解した。 これ…

よく使う「AWS Organizations」のAWS CLIチートシート

アカウント確認 最初にマスターアカウントかどうか確認する。本記事では 999999999999 をマスターアカウントとする。 $ aws sts get-caller-identity { "Account": "999999999999", "UserId": "AIDAIBIY7OM4E3EXAMPLE", "Arn": "arn:aws:iam::999999999999:u…

Docker HubとGitHubを自動連携させる「Automated Build」が楽チンすぎる件

Automated Buildとは Docker Hubの「Automated Build」は、GitHubでの変更を検知して、Dockerイメージのビルドを自動的に行う機能である。 Docker Hubへイメージをpushするのに、ローカル環境やCI環境でいちいちdocker build・docker pushするというルーチン…

コマンドラインから雑に、自分のグローバルIPアドレスを取得する

開発しているときに、自分のマシンのグローバルIPアドレスを知りたくなるときがまれによくある。そんなときは↓を叩く。 curl -s ifconfig.io ifconfig.io は自分のIPアドレスを返してくれるだけのシンプルなWebサービスで、フツーにブラウザからも見れる。 …

「hadolint」にシバかれながら美しいDockerfileを書き上げる

hadolintとは hadolintはDockerfile用のLintツールだ。 たとえば、下記のようなDockerfileを作って、チェックしてみる。 FROM alpine RUN cd /tmp && echo 'hello' すると、次のような警告をしてくれるようになる。 /dev/stdin:1 DL3006 Always tag the vers…

「ECS Fargate」をAWSマネジメントコンソールで構築すると何が起きるか

ECS Fargate Dockerコンテナを管理してくれる君。Fargate起動タイプを選択すると、クラスタのEC2の管理が不要になる。ひゃっほーい。詳細は、公式ドキュメントを参照する。 AWSマネジメントコンソールによる構築 とりあえず、動かしてみるぐらいだったら、ポ…

「ShellCheck」を使って、メンテナンス性の高いシェルスクリプトを実装する

ShellCheckとは ShellCheckは、シェルスクリプトの静的解析ツールで、マズい書き方をしてると怒ってくれるLinterだ。 たとえば、example.sh という下記のシェルスクリプトがあるとしよう。 echo $0 これをShellCheckでチェックすると、こんな警告を出してく…

「cli-highlight」で無味乾燥なターミナル表示をカラフルに

cli-highlightとは cli-highlightはターミナルでもエディタのように、シンタックスハイライトをしてくれるツールだ。 無味乾燥なターミナルがとっても見やすくなる。 Before なんの面白みもない表示。 After とってもカラフルで見やすい!

GitHubのWikiをマークダウン形式で取得する

背景 ときどき、GitHubのリポジトリで、ツールの使い方などがバージョン管理されたファイルではなく、Wikiに書かれていることがある。 ブラウザから参照することも可能だが、このWikiで書かれたテキストをマークダウンで取得したくなるときがまれによくある…

雑にシェルスクリプトのみを一覧取得するコマンド

CLI

ファイル名に拡張子 .sh が付いていれば見つけるのは簡単だが、拡張子なしのファイルも見つけたかったので、試行錯誤をメモ。 最初に結論 $ grep '^#!' -rn . | grep ':1:#!' | cut -d: -f1 | grep -v .git 試行錯誤 shebangで検索 $ grep '^#!' -rl . 行頭…

「VPC Flow Logs」をAWSマネジメントコンソールで設定する

VPC Flow Logs 概要 VPC Flow LogsはVPC内のIPトラフィックをキャプチャして、CloudWatch Logsに保存してくれる機能である。VPC Flow Logsでは、下記の単位でキャプチャすることが可能である。 VPC サブネット ネットワークインターフェイス 本記事では、サ…

ECS初回構築時に自動作成されるIAMロール「AWSServiceRoleForECS」とTerraformでの予期せぬ挙動

AWSServiceRoleForECSとは ECSを作成すると、勝手に作られるIAMロール。Terraformでaws_ecs_clusterリソースを作ったときにも自動作成される。Service-Linked Rolesというヤツの一種らしい。 公式ドキュメントから、AWSServiceRoleForECSについての説明を引…

「ECR」をAWSマネジメントコンソールから作成する

ECR ECR(Elastic Container Registry)とは、AWSのDockerレジストリサービスである。Dockerイメージをプライベートに管理し、IAMによるアクセス制御も可能である。 詳細は公式ドキュメントを参照すること。 ECRでは、Dockerイメージごとに、リポジトリを作…

「NATゲートウェイ」をAWSマネジメントコンソールから構築すると何が起きるか

NATゲートウェイ 概要 NAT Gateway は AWS のフルマネージド NAT(ネットワークアドレス変換)サービスである。自前でNATインスタンスをオモリする必要がないのがウリ。控えめに言えば、最高である。詳細は、公式ドキュメントを参照する。 構築手順 おおまか…

SlackのGitHub連携の手順

通知したいチャンネルで、Slackのスラッシュコマンドを叩いて、通知設定を行う。 Sign in Sign in しておかないと、GitHubと連携できない。最初、コレに気づかずハマった。 /github signin すると、こんなボタンが出てくるのでクリック。 で、接続が完了した…

coinbase/assume-role でシュッと多要素認証を突破して、マルチアカウント環境で快適にTerraformライフを送る

なにこれ? CLIコンソールで、AWSのIAMユーザの多要素認証(MFA)を簡単に実行できる。 https://github.com/coinbase/assume-role 背景 Terraform 単体だと、多要素認証したうえで AssumeRole することができない。terraform-provider-aws リポジトリに Issu…

IntelliJが「Not a valid command: idea-shell (similar: shell)」とか言って死ぬ

そのときは突然に 突然IntelliJさんがエラーを吐くようになった。何もしてないのに! [error] Not a valid command: idea-shell (similar: shell) [error] Not a valid project ID: idea-shell [error] Expected ':' (if selecting a configuration) [error]…

最もシンプルに「macOS High Sierra」をクリーンインストールする全手順

Macをクリーンインストールしたのでその全手順を公開する。 コンセプトは、極力余計な設定は入れないである。後追いで可能な、Apple IDの入力や、各種設定は全部スキップする。

terraformのaws_default_network_aclリソースを素人が安易に使ってはいけない

最初組み込んでたんだけど、調べてみるとなんかキワイ。 公式ドキュメント カッコ書きは、Google翻訳を使いながら、適当に翻訳したものである。(残念英語力なので、間違ってたらゴメンね https://www.terraform.io/docs/providers/aws/r/default_network_ac…

Terraformのバックエンド用のS3バケットは、Terraformで管理してはいけない

新規にAWSアカウントを取得するにあたって、極力AWSリソースの管理はterraformに寄せようと思ったのだが、ふとterraformのtfstateファイルを置くS3は、terraform管理していいのか気になった。ので、調べてみた。 公式ソース 結論としてはタイトルどおりなわ…