サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
blog.mosuke.tech
こんにちは、もーすけです。 今回はTerratest を用いたKubernetes環境のテストについて検討します。 TerratestはGruntwork.ioが作成しているインフラのテスティングソフトウェアです。 もともとは、Terraformで作成したクラウド環境のテストとして発達がしましたが、いまの時代となってKubernetes環境やコンテナイメージもテストできるようになっています。 Kubernetesマニフェストにより、宣言的にインフラ環境を表現できるようになってきているととはいえ、その結果が期待通りに動作しているのかは日々の悩みのタネであることはかわりません。 Terratestがこの悩みを解消するのにイケてそうなので調査してみます。 かつて仮想サーバでアプリケーションを運用している時代に、Serverspecを用いてテスト駆動のインフラ構築を行っていてとても気持ちがよかった
もーすけです。本日は最近おこなったトラブルシューティングの中で、自分がKubernetesのDNSまわりについて理解が乏しく手こずっていたのでその内容について簡単に書いていきたいと思います。 前提 これからcurlをhttpサーバに打ったり、digを行ったりしますが、Kubernetes内の下記のような環境で行ってます。 KubernetesのServiceへのアクセス Serviceへは service.namespace.svc.cluster.local で名前解決ができ、アクセスできます。 こちらは基礎的なことなので知っている方も多いかと思います。もし知らなかったという方は、デバッグに非常に役立ちますのでぜひ理解しておくといいです。 (公式ドキュメント: ServiceとPodに対するDNS - Kubernetes) # curl -I http://httpd-example.
こんにちは、もーすけです。 本日は、2021年4月に発売された「ユニコーン企業のひみつ」を読みましたので、書籍の内容や自分なりの考えをまとめてみます。 現代となっては、アメリカのGAFAをはじめとしたテック企業のビジネス脅威を感じないことはないと思います。 彼らに対抗するため、日本企業はどんなふうに戦えばいいのか?そんなヒントになる本です。 この本は発売と同時に多くの方がレビューを書いているので、ぜひ他の人の書評もたくさん読んでみてください。 どんな本なのか? 「ユニコーン企業のひみつ」は、作者のJonathan Rasmusson(以下、ジョナサン)がSpotifyにアジャイルコーチ(その後、エンジニアへ転身)としてジョインし、その中で得たソフトウェアづくりと働き方についてまとめた本です。 Spotifyの実体験がもとになっていますが、いわゆるユニコーン企業がどのように組織を作って、プロ
こんにちは。もーすけです。 はじめてコンテナアプリケーションの開発に挑戦していると覚えることがたくさんあり、楽しさ反面大変さもおそらく感じるかと思います。 そんな覚えることがたくさんの中には、コンテナイメージは軽くしたほうがいいというものも含まれるかもしれません。 軽くしないと動かないわけではないので、はじめてコンテナ環境に挑戦している人はどうしても忘れがち、見落としがちなことかもしれません。 しかし、実際の運用を見据えると、軽量であるほうが断然よいです。 その理由を理解すると、みなさんが「なぜコンテナに挑戦しているのか」思い出してくるのではないかと思います。 なぜ軽いほうがいいのか 「コンテナイメージは軽いほうがいい」そう聞くことも多いかと思います。 VM上動かすアプリケーションだってサイズが大きいよりは小さいに越したことはないです。 では、なぜコンテナ環境でコンテナイメージは軽量である
こんにちは、もーすけです。 本日はKubernetesのノード障害が起きたときのPodの挙動について確認します。 いままで、ノード障害が起きたときのPodの挙動、スケジューリングについて誤った認識をしていました。 お恥ずかしい限りなのですが、同じような誤った認識をしているかたに向けて確認したことを解説します。 概要 まずはじめに、状況を説明します。Workerノード3台があって、アプリケーションが動作しているとします。 Worker#1がシャットダウンした、kubeletが停止した、ネットワーク的に疎通ができなくなったなどが起きたときに、その上で動いていてPodはどうなるの?という話です。 感覚的にいうと、レプリカ数を維持するために他のノードに移って起動するんでしょ!、と思いたいところなのですが、実際はそれほど単純でもありません。 どのような動きをしていくのか、Deploymentを使った
あけましておめでとうございます(いまさらw)。もーすけです。 最近は呪術廻戦にハマっています。ぜひまだ見てない方見てみてください! さて本題ですが、新年はじめの投稿はデータ指向アプリケーションデザインという書籍についてです。 最近読んだ中で一番良かった本ではないかと思っています。 実は、勤めている会社内でこの書籍の輪読会を行っていて、自分が12章(最終章)を担当しました。 12章はこの本の一番言いたいことが書いてある章でもあったので、本の魅力を理解してもらうのにもしかして役立つのでは!?と思い、この書籍の紹介しつつ、輪読会で発表した内容を動画で解説していきたいと思います。 どんな本なのか? もしかしたら本のタイトルから「データエンジニアとかデータサイエンスの人とかよむ本かな?」と思ってしまうかもしれません(自分は最初ちょっとそうおもってましたw)。しかし、この本は 「信頼性があり、スケーラ
1.はじめに 開発環境はVirualboxを使ったVagrantを利用しているが、 本番環境はAWSだったりKVMだったり違う仮想化機構で動作しているなんてことよくあると思います。 そういう環境下でどのように開発環境と本番環境の差分をなくしていますか? わたしの場合、基本的にAnsibleを使ってプロビジョニングをしていますが、 そのプロビジョニング前のベースが異なってしまって困ることがよくあります。 一般に公開されているVagrantBox使ったら余計な設定が入っていたとか、すでにパッケージが入っていたとか… そんな問題を解決しようとPackerを使おう!って考えました。 ですが、Packerも当たり前だけど魔法ではなく、Kickstartなどの自動インストールが前提なので、 Packerをやる前にKickstartを学習せよ、、、ということに気づきました。 ということでKickstar
少なくとも年内まで在宅勤務が確定しいるもーすけです。 さすがに、出社方法などすべて忘れました(笑) はい、本日はコンテナイメージのセキュリティに関する考え方について書きます。 新しくコンテナ環境を導入してみたいけど、セキュリティに対してどう考えたらいいかわからないといった声や、 実際にKubernetes使い始めたけど本当にこれで安全なの?といった不安の声が聞こえてきているのでまとめてみました。 コンテナ環境におけるセキュリティのレイヤー 今回のブログではコンテナイメージに関するセキュリティについて扱いますが、 コンテナ環境という意味ではもっと多岐にわたるセキュリティの問題について考えなければなりません。 イメージのセキュリティ(←本日のテーマ) レジストリのセキュリティ Kunernetesクラスタのセキュリティ(オーケストレーションツール) コンテナランタイムのセキュリティ ホストOS
こんにちは。もーすけです。 コロナでの在宅に非常にしんどくなってきました。 ブログを書いて気を紛らわしていきたいと思います。 今回は軽めの話題でSkopeoを利用したコンテナイメージのレジストリ間のコピーについてです。 課題感 コンテナレジストリにあるイメージを別のレジストリにコピーしたいと思ったことはないでしょうか。 よくあるシチュエーションとしては、開発環境のKubernetesクラスタで生成したコンテナイメージをプロダクション環境などのほかのレジストリへ移したい。 あるいは、DockerHubにあるイメージを自分たちの管理するレジストリに保管して管理しておきたい。 などがあるかなと思っています。実際にあります。 さらに、このようなコンテナイメージの別レジストリへのコピーをCIパイプラインの中に組み込みたいといったことがあります。 Dockerではだめなのか まず真っ先にレジストリ間の
こんにちは。@mosuke5です。 みなさん普段の監視はどのように行っていますか?Datadog使っていますか? 最近Datadogを触る機会が多いのですが、Datadogはobservabilityの3本柱ということで、メトリックとトレース(APM)とログ、この3つを統合した監視サービスであることを強くおしだしています。 3つの分野のそれぞれに対応したOSSやサービスは多いですが、統合されてシームレスに連携できる点はDatadogの非常に強いポイントと感じます。 さて、そんななかでDatadog APM (Application Perfomance Monitoring) が強力だったので紹介したいのと、その仕組みを探っていきましょう。 APMとはなにか、なぜ必要か 従来的な監視との違い 今回に至るまで、APMは名前は聞いたことがありましたが、実際に利用したことはありませんでした。 A
こちらの反響もよかったこともあり、KubernetesにおけるCI/CD(継続的インテグレーションと継続的デリバリー)に焦点を絞って、いままでの経験も含めて大事なポイントをいくつかの切り口でまとめることにしました。 一部は書籍の内容とかぶる部分もあるのですが、わたしが普段Kubernetesでのアプリケーション運用に携わる中で大事だと思うことなど含めてご紹介します。 KubernetesにおけるCI/CDとしていますが、項目は必ずしもKubernetesに限った話ではありませんのでご了承ください。 また、もっといろんなトピックを書きたいのですが、すべてのトピックを揃えると記事自体のボリュームも大きくなり公開も遅くなりそうだったので、基本的な内容のみ選んでみました。随時追加されていく(あるいは別記事?)可能性があります。 ブランチ戦略 CI/CDの実践にまず根本的に関わるポイントとして、ブラ
こんにちは、もーすけです。 先日、O’REILLY Japanから Kubernetesで実践するクラウドネイティブDevOps という本が出版されました。 最近仕事でKubernetes上のアプリケーションに関するDevOpsやCI/CDによく携わっているのもあり、発売日に手にとりにいきました。 せっかくなので、こちらの本の紹介をしていきたいと思います。 どんな本か この本は、Kubernetes上でアプリケーションを運用している人、これからする予定のある人が主なターゲットの書籍です。 著者自身も「Kubernetesを本番で使用しようとする場合に知っておく必要があると著者らが考えること」を判断材料に内容の取捨選択をしたと書いてあります。 本書では、タイトルにDevOpsとあるとおり、開発の工程からKubernetesでアプリケーションを実行し運用していくなかで必要なトピックを網羅的に扱
おひさしぶりです。@mosuke5です。 最近「LeanとDevOpsの科学」という本を読みました。 自分の周りの先輩方たちのあいだでは当たり前のようにこの本のコンテキストで会話がすすんでいるということもあり、読んでみたのがきっかけです。 実際に、読んでみるととても素晴らしい書籍であり、是非みなさんにも読んでほしいと思ったためこの記事を書くにいたりました。 ここでいうDevOpsとは この本を紹介する前に、先に説明しておきたい言葉があります。 この本を紹介していく中でタイトルにもある「DevOps」という単語ですが、いろんな解釈がされています。 Infrastructure as Codeに代表されるような自動化のツールの利用を指している場合もあります。 このブログ・この書籍でいう「DevOps」は下記のような手法を指し、関心の対象は技術だけでなく組織やチーム、にもあるということを説明して
こんにちは。@mosuke5です。 私ごとですが、先日結婚式をあげました。結婚式は、普通であれば一生に一回しかないことが望ましいわけですが、逆にいうと一度しかないので、他の人の助けになればと、我が家では振り返り会を実施しました。その中で、おもによかったなと思うポイントをピックアップしてまとめました。是非、こらから結婚式をあげようとしている方々の参考になればと思います。 1. お祝儀、招待状のデジタル化 他の人の結婚式に行くときにこんな悩みがありませんでしたか? 新札を用意するのに手間取った いただいた招待状が家の中で紛失あるいは転がっている 自分の式に来ていただく人にはそういう思いをなるべくして欲しくなかったので、weddingday.jpを使いデジタル化しました。 このサイトでできることは、招待状をウェブ化できることと、クレジットカードによる事前決済です。 招待状をウェブ化してメールなど
@mosuke5です。早くも3月になってしまいました。 しかし、個人的にはこの2か月は非常に動きがあった2か月でしたのでいろいろ楽しかったです。 さて、本題ですが、、 わたしの好きなTerraformを使ってKubernetesクラスタ上のリソースを管理するのをやってみたいと思います。 そもそもKubernetesをTeraformで管理するとなると2つのレイヤーの話があります。 今回は、後者のほうに重きを置いてお伝えします。 KubernetesクラスターそのものをTerraformで管理する Kubernetesクラスター上のリソースをTerraformで管理する KubernetesクラスターそのものをTerraformで操る こちらは軽く流していきますが、Terraformでクラウドのサービスを操ることができるので、もしKubernetesのサービスを提供している場合は、下記のよう
@mosuke5です。 Kubernetes上でのアプリケーションのロギングについてFluentdを使ってどうできるか考えていきます。 今回はサイドカー方式という方法を使ってFluentdでAWS CloudWatch logsへ集約することについてやってみました。CloudWatch logsを例に取っていますが、それ以外でも考え方は応用できますので読んでみてください。 また、サイドカー方式以外の方式については、こちらの「Kubernetesのロギングパターンは結局どれを採用したらいいの?」を参照してください。 FluentdとAWSの連携については、以前に「NginxのログをFluentdでDynamoDBへ送る」もかきましたので、参考にしてください。自分も復習で見返しました。 実現すること 今回やりたいことは、Kubernetes上で動かしているアプリケーションに対して、サイドカーと
※本記事は、もともと2019年7月に執筆されたものですが、当時の有効期限である2年が経過したので、2022年7月に認定を更新しました。2022年7月現在の状況に更新してお知らせします。 @mosuke5です。CKAD(Certified Kubernetes Application Developer)を受けてきました。 すでに多くのCKA/CKADの合格レポートや体験記がでておりますが、 それでも自分が実際に受けてみるまで不安な要素も多くあったので、 そのあたりを払拭するべくこの記事を書きたいと思います。 2019年7月5日にCKADを受験して無事に合格しました。 スコアは89%と案外高く(66%で合格)、驚きでもあったのですが、その体験をこれから受験する人にもシェアできればと思います。 (その後、2022年7月8日に認定を更新しました。スコアは96%と高く嬉しかったです) モチベーショ
ブログの更新頻度が落ちていますが、サボっているわけではないです。。 はい。mosuke5です。 やはりKubernetesマニフェストのテンプレートエンジンは必要だ、と気づいてしまったので、マニフェストを生成できるツールを探していました。 そこで、Kustomizeを試しみたのでアウトプットとして残しておきます。使ってみた上でハマったポイントや注意すべき点なども含めて書きたいと思います。 モチベーション kubernetes初心者として、マニフェストもかけてきたし、kubectl apply -f xxxxですぐにデプロイできるし、最高だなって思ってました。 しかし、いざ、開発環境と本番環境の2つのNamespaceで利用したくなったり、運用のことを考えるといろいろと不都合が発生してきました。 開発環境と本番環境でパラメータが変えたいことがある 本番環境だけ入れたいリソースがある(例えばL
ニート最終日の@mosuke5です。 今日は、Amazon ECSからみる、AWSのコンテナ戦略やECSへのデプロイフローなどについて解説します。 自分はDockerやKubernetesなどを触ってきましたが、AWS特有のコンテナサービスであるECS, Fargateを調査していくとAWSの戦略などいろんな発見がありました。 全体像 Amazon ECSで実現することの全体像は下記の通りです。 大きく右と左で分かれていて、左側のAWS上ではECS(Fargateのタスク)でNginxで静的なデータを返すWebサーバを配置。前段にALBで分散してアクセスできるようにしています。 右側では、Gitlabを用いて、そのECSに対して変更をデプロイを行います。 Fargateの動き まず、Fargateについてです。個人的に一番盛り上がっていたポイントです!! Amazon ECSではタスクを実
你好(ニーハオ)、@mosuke5です。 本日2019年3月29日をもって、ソフトバンク株式会社の最終出社日で、同時にAlibaba Cloudの中の人を卒業しました。 2016年8月1日からAlibaba Cloudにジョインし、2年8か月の間、日本リージョンの立ち上げから企業への導入支援、トレーニングなど、このクラウドビジネスを拡大させるためのたくさんのことを行ってきました。 2年8か月という期間ですが、非常に濃い日々で5年分くらいの経験をさせていただいた気持ちです。 今回退職することにはなりましたが、最後の最後までAlibaba Cloudをみなさんに知ってもらうべく退職エントリーに全力を尽くしていますし、これからもユーザの立場として貢献していきたいと思っています。 私は、2013年4月から新卒でソフトバンクに入社したので、ソフトバンク自体は6年間在籍していたことになります。 が、本
気がつけば、2018年度も終了間際で時の流れの速さを実感しています。 はい。@mosuke5です。 Ansibleのmodule(モジュール)でTerraformが知らぬ間にできていたので、 さっそく触ってみたのと、その有用性や使いみちについて考えてみました。 terraform – Manages a Terraform deployment (and plans) Terraformでクラウド環境のセットアップをして、その後にそのクラウド環境のサーバに対してプロビジョニングすることが一気通貫でできるようになります。素晴らしいことですね。 一方、こちらのツールを使ってみると、実現にあたっていろいろと工夫しなければ行けない点が出てきたのでご紹介していきます。 AnsibleのTerraform module Ansibleはもともと?サーバのconfigurationの自動化のツールとして
非マネージド: マスターノード及びワーカーノードすべてが仮想サーバとしてデプロイされる形式のこと。 マネージド: マスターノードがマネージドサービスとなっており、ユーザが管理する必要がない形式のこと。 ノードレス: ユーザがクラスタを意識する必要がなく、コンテナイメージの指定で実行できる形式のこと。 コンテナが普及し始め、まだオーケストレーションツールとしてのデファクトスタンダードが決まっていなかったころ、Azure Container Serviceは非マネージド型でオーケストレーションツールをユーザが選択できるものとして提供していました。一方で、AWSはAmazon ECSはAWS独自の仕様としてマネージド型でコンテナサービスを打ち出していました。 時代はKubernetesをデファクトスタンダードになっていき、各社は単純に仮想サーバ上でSwarmやKubernetesをインストールす
自分は、この執筆時点では、Alibaba Cloudの日本リージョンの運営側の人間です。 ですが、いろんなモチベーションがあり、AWSソリューションアーキテクトプロフェッショナルを先日取得してきました。 AWSの認定試験は業界でも取得したい人は多いと思うので、自分なりの勉強方法をまとめておきました。参考になれば幸いです。 すでに多くの人が勉強方法などをブログ投稿しているので、差別化が難しいところではあるのですが、自分がまとめた試験問題サンプル集などもあるので、ぜひ参考にしてください。 取得した目的 まず、Alibaba Cloudの人なのになぜ取得したの?というところから。 仕事柄、業界で一番先頭をゆくAWSのことはもよく聞かれるのでより深く知っておきたいと考えたから。 AWSのみではないが、やはり多くのニーズに応える他社のプロダクトや考え方を知ることで自社製品をより相対的に判断できるよう
SSHを単なるサーバへのログインのツールとして使っていませんか? SSHを制する者がインフラを制する、なんていわれることもあります。 SSHにはポートフォワーディングをはじめとしたいろんな使い方があります。 今日は実際にローカルポートフォワーディングを理解しみなさんに使いこなしてもらえるようになっていただこうと思います。 どういうときに必要なの どういうときにポートフォワーディングが必要なのでしょうか? ネットワーク的に直接とどかない(ただしサーバを経由すればとどく)環境に直接的に接続したい場面がありませんか? まずは、いくつか活用場面をご紹介します。 プライベートネットワークのAmazon RDSに接続したい クラウド上でシステムを構築しているとよく遭遇するケースです。 RDS(データベース)をプライベートネットワークに配置しているため、インターネットから直接アクセスできません。 踏み台
ここずっとTerraformの基本的な部分の投稿がつづいている@mosuke5です。 理由は、Terraformを最近結構触ることが多いのもあるが、今まであんまり使ってこなかった機能をきちんとキャッチアップして、より効率的にTerraformを活用できるようにしようと思っているからです。 と、まあ余談はおいておき、import機能をやっていきます。 import機能についてはできることもなんとなくしっていたが、自分の手でやったことがなかったのでやってみようと思っています。 使い所 importは、Terraformで現状管理されていない既存のクラウド上のリソースをTerraform管理できるように取り込むことのできる機能です。 今まで、手動で管理していたクラウドリソースをTerraformでの管理にに変更していきたい、あるいは、Terraformに非対応だったリソースは手動で作っていたが、
こんにちは。mosuke5です。 職業柄、AWSについても研究含めて勉強しています。 ベンチマークとしてAWS Solution Architect Professional(ソリューションアーキテクトプロフェッショナル)の取得も目標にしているのですが、海外のサイトで模擬試験の問題とそれに対するディスカッションが普通におこなわれていました。 模擬試験の問題が表にでているのはどうかとも思いますが、38問見つけたので、それぞれのリンクと簡単な個人のコメントを書きましたので、勉強しているよという人はぜひ参考にしてみてください。 私のコメントは完全に個人的なもので、あやまりも多いと思います。 もし見つけた方は教えてくれるとたすかります。 また、ディスカッションでは答えが割れているものも多いです。 ぜひ、ディスカッションの内容も読んでみると良い勉強になると考えています。 もっとやり込みたい方はぜひこ
Terraformのバージョン0.9以降で追加された、workspace機能について自分の環境で使い始めたので、その使い方やtipsなどを残していきたいと思います。 workspaceは名前から推測できますが、同じTerraformのコードをワークスペース(環境)ごとに使い分けることのできる機能です。例えば、productionとdevelopmentの2つのworkspaceを作れば、同じTerraformコードを利用してこの2つの環境で別のリソースを作成していくことができます。 Terraformでは、実行結果をstateファイルに保存することで、インフラストラクチャの状態を管理することができます。(ドキュメント) このworkspace機能を利用すると、このstateファイルを環境ごとに分けて管理するようになります。このあたりは使い方をみながら理解していきましょう。 workspac
早いものGWも終わり一週間が経ってしまいました。 長期の連休になるとだいたい自分は趣味のアプリケーション開発をよくすすめています(ふだんからやりたいけどなかなかできない)。今年のGWも趣味アプリケーションの開発をしてました。 いま作っているアプリケーションは自分の英語学習用のサービスなのですが(サービスについては別途どこかでご紹介したい)、新しい技術を実際に試す場としても利用しています。自分はいつも趣味アプリケーションで新しいことを試してみて、よかったらそれを職場にもっていくことが多いです。 アプリケーションはRailsで書いているのですが、Railsの他にMySQLやNginx、ElasticSearch、Kibanaなど関連するコンポーネントが多いです。 そのため、Docker Composeを利用して動かすことにしています。Dockerは以前から使っていたのですが、実際にアプリケーシ
こんにちは@mosuke5です。 もともとApach+PHPで動作していたシステムに、リバースプロキシ(Nginx)を前段に挟むことになりました。理由は、もともと社内ネットワークでのみ利用するシステムだったのですが、インターネットの外からも利用することになり、インターネットからの入り口にリバースプロキシを導入したからです。 つまり、Nginx->Apache->PHPという構成になりました。 リバースプロキシを導入した際によく問題となることだが、Apacheからみるとすべてリバースプロキシから通信がきているようにみえます。 接続元のIPアドレスがすべてリバースプロキシのもの変わってしまいます。 そこで、HTTPヘッダーに接続元のIPアドレス追加しアプリ側(PHP)で受け取る方法とその際の注意点を書きます。 リバースプロキシ側でHTTPヘッダー追加 まず、デフォルトのNginxの設定では接続
次のページ
このページを最初にブックマークしてみませんか?
『Goldstine研究所 · Goldstine研究所』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く