[Cloud][CDN][Azure][Linux] ブログサイトアクセス制御

こういうことがしたい

と言う図を貼ります。

やりたいこと概要

要は、外部からサイトを閲覧するユーザには、必ずCDN越しに来てもらいたいということです。それを強制するためのアクセス制御について考えました。

Read more

[Linux][Mastodon][Virtualization] KubernetesインフラにMastodonエンジンを突っ込む

前提事項

ここで記載する内容なんですが、以下が前提になっています。

  • 読む人はDockerやdocker-composeについてよく理解されている
  • 読む人はKubernetes(k8s)についてよく理解されている
  • Kubernetes(k8s)クラスタ及びネットワークコンポーネント(当環境ではProject Calico)、DBコンテナ環境やらRedisコンテナ環境やらはすでに出来上がっている

ちょっと期待はずれな内容かもしれませんので、先に記載しておきます。

今回やった事

ずばり、Mastodonエンジンのコンテナ化です。元々Mastodonはコンテナ構成のものも払い出されては居ますが、あくまでdocker-composeを前提としたものであり、Kubernetesのようなクラスタ構成を想定したものとはなっていません。

私自身、以前Dockerコンテナ型のインスタンスを立てて挫折した経験があるんですが、当時は全くコンテナ技術に対する知見がなく、理解しようとしても中々理解至るのに苦慮しましたが、今回自宅環境でKubernetesに手を出した、ということもあり、思い切ってやってみることにしました。

Read more

[Management][Network][Linux] Elastalertを使う

ELKで得られる情報を監視する

ElasticsearchとLogstash、Kibanaを組み合わせたインフラをELKと呼ぶそうです。

Elasticsearchとlogstashを使用してログの吸い上げ、解析を行い、Kibanaで可視化することをコレまでやってきてるわけですが、これに監視を加えようと思います。本来、X-Packという有償ツールを使えばそれが叶うようなのですが、それはコストの面から難しいため、なにかツールはないかと探したところ、Elastalertなるものを見つけました。お、何だかこれは便利そうだ!

Read more

[Management][Network][Linux] Elasticsearchを使ってログ分析基盤を組んでみた

単語はよく聞くElasticsearch

ここ最近よく聞くElasticsearch。全文検索システムの名称らしいのだが、どうにもパッと頭に浮かばない。結構開発寄りな話が多いかなあぁ・・・?という気がしていて、あまり手を出してなかったのだけど、ここ最近どうやらMastodonの最新バージョンで全文検索を実装するようになったみたいで、その前段に何か学ぶことがないかなぁ?とおもったりしたら、ログ分析の話を見かけたりしたわけでして。

ログ分析では、過去にSplunkというものに触れてみたことがあるのだけど、Elasticsearchでも似たようなことが出来るんだとか。そりゃ面白そうだということで手を出してみたのが今回であります。

Read more

「20171024][Mastodon] IPv6しか繋がらない、そんなインスタンスを作ってみる

はじめに

これまで、インスタンスづくりは外部のサイトを見様見真似で作ってきた経緯があり、今回も見様見真似で作ったものの、色々内容が整理できてきたこともあり、ブログに構築手順を書き起こしてみました。

※一部、手順を修正しました。具体的にはnodejsのインストール周りです。

先に言っとくんですが、あくまで備忘録として頭の中のものをExportしたものになります。本来はMastodonのProduction Guideを参照することが望ましいです。ただ、当該ドキュメントはubuntuベースとなっていて、当方のCentOSには合わないところもあったりするため、そこを補正する際にいろんなサイトをチラ見してます。

なので、正確性についてはどうぞご容赦賜りたく・・・(結局言いたい所はそれかというツッコミは勘弁を)

方針

とりあえず、こんな方針で作ってみることにしました。

  • IPv6アドレスだけを受け付けるインスタンスを構築する
  • サーバは自宅仮想基盤内にVMを構築し、それを使用する
    • 2vCPU/2GB RAM/40GB VHD(SSDデータストア配置)のスペックで構築
  • DNSに登録するレコードはAAAAレコードだけにする。IPv4アドレスは名前解決しない。
    • あくまでIPv4はyumリポジトリやメール配送など、クライアント用途としてしか使用しない
  • インスタンス名とサーバ名は異なるものとする。
    • 当該インスタンスでは、サーバ名はsns-v6.bluecore.netと言う名称ですが、インスタンス名はまた別物(v6don.bluecore.net)です。
  • OSはCentOS7の最新を使う(yum -y updateでコンポーネントを最新化する)
  • インスタンスはオールインワン構成にする(AP/Redis/DBを同一サーバ内で構成する)
  • 証明書はLet’s Encryptを使うことにする
  • 設置セグメントは本番/ステージングインスタンスと同じところにする
  • Dockerは使用しない
    • 非Dockerの方がログが見やすいというのがあります。サービス監視も楽です。
    • Dockerの構成も利点はあって、とっととイメージを組み込むことで、前提アプリケーション導入をバイパスできる点などが挙げられます。Linux不慣れな人はこちらが良いのかも。
  • フィルタリングはサーバ側で行わずに、ゲートウェイ側のACLで行う
  •  メールサーバは本番/ステージングと同様に、内部メールサーバを経由する。
    • メールは外向けに関しては【内部メールサーバ】⇒【メールゲートウェイ】⇒【インターネット】と言う経路で発送される。

Read more

PAGE TOP