アクセスログを眺めていると、時々「これは誰だ?」というIPアドレスに出くわします。大量のアクセスを飛ばしてくるIP、深夜に管理画面を叩いてくるIP——正規のユーザーなのか、それとも攻撃者なのか。この記事では、素性の分からないIPアドレスを調べる実践的な手順をまとめます。
そもそも何を知りたいのか
IPを「調べる」と一口に言っても、知りたいことは大きく2つに分かれます。素性(どこの国の、どの...
ある日、既存の AWS リソース(セキュリティグループ)をコード管理下に置くため、terraformer import というツールで .tf ファイルと tfstate を自動生成しました。生成されたコードに対して terraform plan を実行すると、こんなエラーが出ました。
Error: Unsupported argument
on security_group.tf ...
未経験から2年目へ。年齢を重ねても現役で手を動かし続ける先輩の姿が、「長く続ける」イメージにつながっている。
働く環境や人の雰囲気は、求人票や会社概要だけではなかなか伝わりません。そこで、ケイズ・ソフトウェアで働くメンバーに、仕事とキャリアについて聞くインタビューシリーズ「KEISのメンバー」を始めます。第1回は、入社2年目の若手エンジニア・Yさんに、入社のきっかけから...
このブログは @nano-cms/core の上で動いています。Liquid 連載では、共通パーツを配る {% partial %} タグを、使う側・なぜ拡げたか・作り方の 3 回で見てきました。本記事は、その補遺となる文法リファレンスです(連載 3 回に続くリファレンス編)。名前・属性・型解決・スコープ・版選択・エラーまで、{% partial %} の文法を端から端まで引けるようにまとめ...
連載の最後は、Liquid に自作タグを 1 つ足す具体的な手順です。題材は、これまで見てきた {% partial "名前" %} タグそのもの。前回(なぜ Liquid に自作タグを 1 枚だけ足したのか)は「素の Liquid に partial を 1 枚足し、それを支える足場を用意した」という設計の話でした。今回はそのタグの中身を開けて、何をどう書けば 1 つのタグになるのかを追い...
前回は、共通パーツを配る {% partial "名前" %} という 1 つのタグを、使う側から見ました(ヘッダーは 1 か所だけ ― 共通パーツを全ページに配る partial タグ)。今回はその裏側、設計の話です。@nano-cms/core はテンプレートに Liquid を採用していますが、ほとんど素のまま使い、自作のタグはこの partial 1 枚だけ足しています。なぜ 1 枚...
このブログは @nano-cms/core という自作の CMS の上で動いています。今回から 3 回に分けて、テンプレートを組み立てる仕組み ― Liquid テンプレートの「タグ」について書きます。1 回目は、いちばん身近で具体的な「使う側」の話です。題材は {% partial %} という 1 つのタグだけ。ヘッダーやフッターのような共通パーツを、コピーして回らずに全ページへ配る仕組...
このブログには、記事を探すための検索があります。「検索機能」と聞くと、入力するたびに裏側でサーバとデータベースが動く、いわゆる動的なサイトを思い浮かべる方が多いかもしれません。ところがこのサイトは、公開されたあとは「動かないただのファイル」の集まりで、検索もブラウザの中だけで完結します。だから配信先を特定のサービスに縛られず、いわゆる CDN であればどれでも同じように配れます。
このサイ...
このブログ自体が、これからご説明する仕組みの上で動いています。記事を「公開」したあと、それが読者のブラウザに届くまでに何が起きているのか ―― その届け方の仕組みを、なるべく専門用語を使わずにお話しします。
先に結論をお伝えします。公開後の記事は「動いているプログラム」ではなく「できあがったファイル」として届きます。この一点が、表示の速さ・止まりにくさ・狙われにくさのすべてにつながっていま...
このシリーズは配信を軽くする話を続けてきました。前々回は ETag で再検証を安く(CDN と ETag を入れたのにサーバ負荷が上がった ― 動的生成と CDN はなぜ相性が悪いのか)、前回は キャッシュバスティングで「変えた分だけ」失効(更新したのに古い CSS が表示される ― キャッシュバスティングを content hash で正しくやる)。最後は 圧縮です。ただ正直に言うと、圧縮...
前回(CDN と ETag を入れたのにサーバ負荷が上がった ― 動的生成と CDN はなぜ相性が悪いのか)は、動的生成の前に CDN を置いて ETag を返してもかえって負荷が上がること、そして静的化して nginx の更新時刻ベースの ETag を安定させると配信元が楽になることを見ました。今回はその続きで、アセット(CSS・JS・画像・フォント)側の話です。よくある事故から始めます。...
動的に HTML を生成するサイトの前に CDN を置き、オリジン(配信元サーバ)が ETag を返すようにした。「変わっていなければ 304 Not Modified で済むから、オリジンは楽になるはず」 ―― そう期待したのに、負荷は下がらない。場合によってはむしろ上がる。動的生成サイトでよくある話です。原因は 2 つの事実に集約されます。動的生成では ETag は「作ってからしか決まら...
サイトを長く運用するほど、地味に効いてくる悩みが 3 つあります。古い下書きがたまって一覧が見づらくなる、間違って消したものを戻したくなる、そしてデータがじわじわ膨らんでいく ―― ケイズの CMS は、この「片付く・戻せる・太らない」を仕組みで解決しています。
古い下書きは、自動で片付く
長いあいだ操作されていない作業中のコンテンツは、自動でアーカイブされ、作業一覧から外れます(既定では...
複数の担当者で、しかも複数のサイトを運用するようになると、「この人は編集だけ」「この人は承認・公開まで」「外部の協力会社は閲覧だけ」といった操作範囲の切り分けが必要になります。公開前チェック(承認フロー)と並んで、運用の安心は「誰が・どこで・何をできるか」を仕組みで決められるかどうかで大きく変わります。公開前に承認をはさむ仕組みそのものについては 誤掲載を仕組みで防ぐ ― 承認ワークフローと...
ブランドサイト、サービスサイト、コーポレートサイト ―― 複数のサイトを、それぞれ別の CMS で運用していると、管理が分散し、サーバーも費用も積み上がっていきます。ケイズのCMSは、複数のサイトを 1 つの管理画面でまとめて運用し、小さなサーバー 1 台で配信できます。
複数サイトを 1 つの管理画面で
サイトごとに別々の管理画面へログインし直す必要はありません。1 つの管理画面でサイト...
Web サイトの事故でいちばん怖いのは、公開してはいけないものが公開されてしまうことです。誤った料金、未確認のお知らせ、直し忘れの誤字 ―― 承認の仕組みが無い CMS では、こうしたチェックがメールと目視に頼りがちで、抜けが起きます。ケイズのCMSは、公開前のチェックを仕組みとして標準で備えています。
「作業中 → 承認依頼 → 承認完了 → 公開」の 4 段階
記事は、書いた人がそのま...
料金・スペック・共通の数値 ―― こうした「サイト全体で使い回す情報」は、気づけばサイト内の何十、何百という箇所に散らばっています。1 か所変えるたびに全部を手で直すのは、抜け漏れと事故のもと。ケイズのCMSは、静的サイトでありながら「1 か所変えれば、関係する全ページに反映」を実現しています。
共通データを 1 つの画面でまとめて更新
サイトのあちこちで参照している共通データ(料金表・ス...
公開前の確認といえば、ふつうは「いま書いているページ単体」を見るだけです。ですが実際のレイアウト崩れやリンク切れは、ヘッダー・ナビゲーション・関連記事へのリンク、ほかのページとの兼ね合いで起きます。ケイズのCMSは、サイト全体を本番そっくりのまま、公開前に丸ごと確認できます。
ページ単体のプレビューでは、全体の崩れを見落とす
1ページだけのプレビューで分かるのは、そのページの中身だけです。...
Web サイトに求められるのは、結局のところ「速い・落ちない・安全」です。ニュースリリースやキャンペーンでアクセスが集中しても遅くならず、止まらず、攻撃にも強い ―― この 3 つを、ケイズのCMSは配信のしくみ(静的配信)そのもので実現しています。今回はその「公開した後」の強さを、数字を交えてご紹介します。
読者に届くのは「できあがったファイル」だけ
多くの CMS は、読者がページを開...
お知らせやキャンペーンを「この日時に出したい」と予約しておく ―― よくある機能です。ですが実際の運用でいちばん不安なのは、その日が来たとき、サイトが本当に思ったとおりに見えるかです。とくに複数のお知らせやバナーを前もって仕込んでおくと、それぞれが重なり合った「当日の姿」は、出してみるまで分からない ―― ここを解消したのが、ケイズのCMSの予約公開です。
指定した日時に、自動で公開される...