『Pragmatic Terraform on AWS』のPR戦略とその実践

4/14に行われた技術書典6向けに『Pragmatic Terraform on AWS』という本を書きました。本記事では執筆自体ではなく、いかにして皆さんに届けるかについて、筆者なりに考えたことをシェアします。 kosmos.booth.pm

細かすぎて伝わらない『Pragmatic Terraform on AWS』を読みやすくする技術 #技術書典

今更ですが技術書典6、おつかれさまでした。ありがたいことに『Pragmatic Terraform on AWS』も物理本200部が完売しました。また、BOOTHでは10日ほどで、電子版を370名以上の方にご購入いただきました。本当にありがとうございます。 kosmos.booth.pm 本記事…

地味にややこしい「Terraform 0.12 Beta 2」の導入手順を解説してみる

事実上の次期メジャーバージョンである「Terraform 0.12」のBeta 2の公開がアナウンスされました。 Announcing Terraform 0.12 Beta 2 本記事では、いち早くTerraform 0.12を体験するための手順を公開します。

『Pragmatic Terraform on AWS』のハマりどころと回避方法 #技術書典

技術書典6で頒布した『Pragmatic Terraform on AWS』ですが、ハマりどころがあるので、理由と回避方法を説明します。 kosmos.booth.pm 5/20追記 2019年5月現在の最新版であるTerraform 0.12.0-rc1以降では不要な手順になります。なにも考えずに terraform in…

技術書典6で頒布される注目のクラウド・インフラ系書籍まとめ #技術書典

技術書典6が近づいて来ましたが、みなさんサークルチェックはお済みでしょうか。公式サイトで探すのは結構大変なので、クラウド・インフラ系の書籍をまとめておきました。 なお、自分でも『Pragmatic Terraform on AWS』という本を頒布するので、Terraformに…

『Pragmatic Terraform on AWS』の無料サンプルの公開と頒布価格のお知らせ #技術書典

技術書典6で頒布予定の『Pragmatic Terraform on AWS』の目次について、以前「HCL2対応『Pragmatic Terraform on AWS』の目次完全版と推しポイント」という記事で告知しましたが、無料サンプルを公開したのでお知らせです。あわせて価格や頒布形式などもお知…

HCL2対応『Pragmatic Terraform on AWS』の目次完全版と推しポイント #技術書典

以前「技術書典6で『Pragmatic Terraform on AWS』という本を出します」という記事を公開しましたが、目次が確定し、本文の執筆もほぼ完了したので、改めて目次の完全版と推しポイントを紹介します。 nekopunch.hatenablog.com

技術書典6で『Pragmatic Terraform on AWS』という本を出します #技術書典

タイトルどおり、TerraformとAWSについて書いた本を出す予定です。いま絶賛執筆中で、ちょこちょこ変わるかもしれませんが、だいたい構成が固まってきたので目次案を公開しておきます。

コマンドラインから雑に、指定した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管理していいのか気になった。ので、調べてみた。 公式ソース 結論としてはタイトルどおりなわ…

超速でCentOS6.6(さくらのVPS)をセットアップする俺史上最強のFabricスクリプトをさらす

先日公開したはじめてでも爆速でCentOS6.6(さくらのVPS)をセキュアにセットアップする方法まとめの事実上の後編だ。本記事ではセットアップ手順をFabricのスクリプトにして公開する。