2018-01-01から1年間の記事一覧
運用しているサーバにDoS攻撃っぽいリクエストが飛んでくることがまれによくある。 同じIPアドレスから多数のリクエストが飛んでくる場合、どこの国のお客さんか把握したいのが人情だ。特に国内向けのサービスを運営してるのに、国外からのトラフィックが大…
markdownlintとは markdownlintは、Markdownファイル用のLinterだ。そして、markdownlint-cliは、markdownlintをCLIで使うためのラッパーである。 たとえば、README.md という下記のMarkdownファイルがあるとしよう。 プログラミング、完全に理解した。 これ…
アカウント確認 最初にマスターアカウントかどうか確認する。本記事では 999999999999 をマスターアカウントとする。 $ aws sts get-caller-identity { "Account": "999999999999", "UserId": "AIDAIBIY7OM4E3EXAMPLE", "Arn": "arn:aws:iam::999999999999:u…
Automated Buildとは Docker Hubの「Automated Build」は、GitHubでの変更を検知して、Dockerイメージのビルドを自動的に行う機能である。 Docker Hubへイメージをpushするのに、ローカル環境やCI環境でいちいちdocker build・docker pushするというルーチン…
開発しているときに、自分のマシンのグローバルIPアドレスを知りたくなるときがまれによくある。そんなときは↓を叩く。 curl -s ifconfig.io ifconfig.io は自分のIPアドレスを返してくれるだけのシンプルなWebサービスで、フツーにブラウザからも見れる。 …
hadolintとは hadolintはDockerfile用のLintツールだ。 たとえば、下記のようなDockerfileを作って、チェックしてみる。 FROM alpine RUN cd /tmp && echo 'hello' すると、次のような警告をしてくれるようになる。 /dev/stdin:1 DL3006 Always tag the vers…
ECS Fargate Dockerコンテナを管理してくれる君。Fargate起動タイプを選択すると、クラスタのEC2の管理が不要になる。ひゃっほーい。詳細は、公式ドキュメントを参照する。 AWSマネジメントコンソールによる構築 とりあえず、動かしてみるぐらいだったら、ポ…
ShellCheckとは ShellCheckは、シェルスクリプトの静的解析ツールで、マズい書き方をしてると怒ってくれるLinterだ。 たとえば、example.sh という下記のシェルスクリプトがあるとしよう。 echo $0 これをShellCheckでチェックすると、こんな警告を出してく…
cli-highlightとは cli-highlightはターミナルでもエディタのように、シンタックスハイライトをしてくれるツールだ。 無味乾燥なターミナルがとっても見やすくなる。 Before なんの面白みもない表示。 After とってもカラフルで見やすい!
背景 ときどき、GitHubのリポジトリで、ツールの使い方などがバージョン管理されたファイルではなく、Wikiに書かれていることがある。 ブラウザから参照することも可能だが、このWikiで書かれたテキストをマークダウンで取得したくなるときがまれによくある…
ファイル名に拡張子 .sh が付いていれば見つけるのは簡単だが、拡張子なしのファイルも見つけたかったので、試行錯誤をメモ。 最初に結論 $ grep '^#!' -rn . | grep ':1:#!' | cut -d: -f1 | grep -v .git 試行錯誤 shebangで検索 $ grep '^#!' -rl . 行頭…
VPC Flow Logs 概要 VPC Flow LogsはVPC内のIPトラフィックをキャプチャして、CloudWatch Logsに保存してくれる機能である。VPC Flow Logsでは、下記の単位でキャプチャすることが可能である。 VPC サブネット ネットワークインターフェイス 本記事では、サ…
AWSServiceRoleForECSとは ECSを作成すると、勝手に作られるIAMロール。Terraformでaws_ecs_clusterリソースを作ったときにも自動作成される。Service-Linked Rolesというヤツの一種らしい。 公式ドキュメントから、AWSServiceRoleForECSについての説明を引…
ECR ECR(Elastic Container Registry)とは、AWSのDockerレジストリサービスである。Dockerイメージをプライベートに管理し、IAMによるアクセス制御も可能である。 詳細は公式ドキュメントを参照すること。 ECRでは、Dockerイメージごとに、リポジトリを作…
NATゲートウェイ 概要 NAT Gateway は AWS のフルマネージド NAT(ネットワークアドレス変換)サービスである。自前でNATインスタンスをオモリする必要がないのがウリ。控えめに言えば、最高である。詳細は、公式ドキュメントを参照する。 構築手順 おおまか…
通知したいチャンネルで、Slackのスラッシュコマンドを叩いて、通知設定を行う。 Sign in Sign in しておかないと、GitHubと連携できない。最初、コレに気づかずハマった。 /github signin すると、こんなボタンが出てくるのでクリック。 で、接続が完了した…
なにこれ? CLIコンソールで、AWSのIAMユーザの多要素認証(MFA)を簡単に実行できる。 https://github.com/coinbase/assume-role 背景 Terraform 単体だと、多要素認証したうえで AssumeRole することができない。terraform-provider-aws リポジトリに Issu…
そのときは突然に 突然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]…
Macをクリーンインストールしたのでその全手順を公開する。 コンセプトは、極力余計な設定は入れないである。後追いで可能な、Apple IDの入力や、各種設定は全部スキップする。
最初組み込んでたんだけど、調べてみるとなんかキワイ。 公式ドキュメント カッコ書きは、Google翻訳を使いながら、適当に翻訳したものである。(残念英語力なので、間違ってたらゴメンね https://www.terraform.io/docs/providers/aws/r/default_network_ac…
新規にAWSアカウントを取得するにあたって、極力AWSリソースの管理はterraformに寄せようと思ったのだが、ふとterraformのtfstateファイルを置くS3は、terraform管理していいのか気になった。ので、調べてみた。 公式ソース 結論としてはタイトルどおりなわ…