タグ

ブックマーク / thinkit.co.jp (18)

  • 開発から運用に至るフローを一体化するAtlas

    共通しているのは、いずれも何らかのワークフローの解決を目指すという点です。そのためにHashiCorpが提案しているのは、コード化を通した自動化です。それは、効率の向上だけでなく、人手による誤りを防ぐという役割も持ちます。そのため、来行いたい開発や運用に関する業務に集中するための仕組みを提供しています。 その一方で、実際の開発から運用に至る流れを見てみますと、各ツールを組みあわせる必要が出てきます。たとえば、次のようなケースが考えられます。 Vagrantで作った環境を、Packerでマシン・イメージ化したい Packerで作成したマシン・イメージを使ってTerraformで使いたい Terraformで作った環境を、Consulで監視・オーケストレーションしたい そこに登場するのがAtlasです。Atlasは、サイトの説明によると「開発から運用に一貫したフローを提供する」とあります。A

    開発から運用に至るフローを一体化するAtlas
  • サービス・ディスカバリのためのConsul入門

    Serfの足りない機能を補うConsul 前回の記事の復習になりますが、Serf(https://serfdom.io)の主要な役割は、オーケストレーション(自動的に複数のサーバなどのインフラ上で処理すること)と、クラスタ上のメンバ管理です。 Serfを単純なツールとして見た場合は、オーケストレーションを簡単に行える便利なツールと言えるでしょう。しかし、実際の運用シーンを考えますと、次のような弱点が浮かび上がります。 メンバ管理はSerfエージェント間の通信正常性が基準であり、アプリケーションやミドルウェアの状況に応じた自動処理が行えない(サーバは稼働しているが、ウェブサーバやデータベースが停止するような状況) 何らかの状態を保持する仕組みがないので、冗長化の仕組みは自分で考慮する必要がある Serfクラスタとの通信には独自のCLIかAPIを使う必要があり、他のツールとの親和性が低い これ

    サービス・ディスカバリのためのConsul入門
  • 悪意のある攻撃から身を守るには?

    nonce:リプレイ攻撃に対する対処方法 第2回の最後で少し紹介しましたが、セキュリティーの大事な考え方の1つにnonce(ノンス)というものがあります。nonceとは、number used onceの略で、1回だけ使われる番号という意味です。ワンタイムトークンと呼ばれることもあります。 トークンというのは、文字の並びという意味で、セッションIDを使ったセッショントークンなどは、一般的な認証やフォームを使ったやりとりに幅広く利用されています。 ご存じのとおり、サーバーのリクエストは常にブラウザを使って人間が行うとは限りません。telnetを使ったり、プログラムを使うことによって、POSTやGETなどのHTTPリクエストができます。それは、悪意あるユーザーにとってみれば、強力な武器になり、例えば3秒ごとに認証を試みるといったことも、もちろん可能になります。 よって、セッションをベースとした

    悪意のある攻撃から身を守るには?
  • コンテナ上のマイクロサービスの認証強化 ~QuarkusとKeycloak~

    Quarkusとは、KubernetesネイティブのJavaフレームワークです。Quarkusを使用することで、コンテナに最適化されたJavaアプリケーションを開発できます。ここではQuarkusKeycloakを組み合わせた堅牢化方法をご紹介します(図2)。 前回は各サービスにそれぞれIstioのAuthorizationPolicyを作成し導入することで、各サービスにJWTによるアクセス制御を追加しました。Quarkuskeycloak-authorizationエクステンションを使うと、各サービスのアクセス制御ロジックをKeycloakの認可サービスに集約することができます。 各サービスのアクセス制御ロジックを、各サービスで個別に持つべきか、認可サーバ側で集約して持つべきかについては一長一短があり、またシステムの要件に大きく依存する部分があるため、一概にどちらが良いとは言えません

    コンテナ上のマイクロサービスの認証強化 ~QuarkusとKeycloak~
  • コンテナ上のマイクロサービスの認証強化 ~IstioとKeycloak~

    連載5回目となる今回は、Istioを用いたマイクロサービスのシステムをKeycloakを用いて認証強化する手順を紹介します。 第五回からは、内部向けのAPIであるマイクロサービスの認証を強化する最先端の機能をご紹介します。第四回までは、APIセキュリティを考えるうえで最も重要である、外部ネットワークと内部ネットワークの境界部分に着目してハードニング方法を説明してきました(図1)。

    コンテナ上のマイクロサービスの認証強化 ~IstioとKeycloak~
  • Keycloakのインストールと構築例

    認可サーバ(Keycloak)の構築 まずは認可サーバを構築します。連載では、Keycloak 9.0.3を使用します。インストール先ホストのOSはCentOS 7.8とします。 Keycloakをインストールします。Keycloakのインストールは、zipファイルをダウンロードして解凍するのみと、非常に簡単です。 まずは事前準備として、Java Development Kitをインストールします。連載では、OpenJDK 8を使用します。

    Keycloakのインストールと構築例
  • 注目のOpen Policy Agent、その概要とKubernetesでの活用事例

    はじめに Kubernetesコミュニティにおいて、ここ数年で国内外の企業がOpen Policy Agentを導入しているという話を耳にすることが多くなってきました。今回は、KubernetesをはじめとしたCloud Native技術には触れているが、Open Policy Agentにはまだ触れたことがない方向けに、その概要や仕組み、Kubernetesでの活用事例などを紹介します。 なお、ここで扱うOpen Policy Agentの情報は執筆時点(2020年4月26日現在)での最新バージョンv0.19.1に基づいたものとなります。 Open Policy Agentとは Open Policy Agent(以下、OPA)はオープンソースの軽量かつ汎用的なポリシーエンジンです。ポリシーをコードとして管理する(Policy as Code)ためのポリシー言語Regoと、アプリケーショ

    注目のOpen Policy Agent、その概要とKubernetesでの活用事例
  • 詳解KubernetesにおけるPersistentVolume

    はじめに コンテナはデータを持つアプリケーション(ステートフルアプリケーション)には不向きと言われてきました。しかし、Kubernetesの進化に伴い、ステートフルアプリケーションも動作できるようになってきました。 そこで記事では、ステートフルアプリケーションをKubernetesで動作させるために重要となるストレージについて解説します。 ストレージのモデル Kubernetesは、データを永続化するためのストレージを抽象度の高いモデルで表現しています。これにより、ユーザはストレージの詳細を知らなくても、Pod内のコンテナにボリュームを割り当てて使うことができます。 PersistentVolumeClaim, PersistentVolume, StorageClass Kubernetesではストレージの基モデルとして、次の3つのリソースがあります。 PersistnetVolum

    詳解KubernetesにおけるPersistentVolume
  • システム運用エンジニアを幸せにするソリューションPagerDutyとは

    インシデント管理とは? なんでもかんでもWebサービスなしでは動かない現代、24x7でのサーバ運用が当たり前になって久しくなります。絶対落ちないシステムはありえないのに、求められるのはダウンタイムゼロ。ただでさえエンジニア不足がひどい昨今ですが、運用担当者の負担は増えるばかりです。 DevOpsでのアジャイル開発で、できるだけ早くサービスを投入しようという流れの中、どうしても完璧なテストを実行するのが難しくなってきており、バグ発生の頻度も高くなる傾向にあります。 加えて、最近はオンプレミスとクラウド、プライベートクラウドとパブリッククラウドのハイブリッド運用が急増し、サーバ構成もたくさんのマイクロサービスを組み合わせる構造となるなど、非常に複雑化しています。 当然、それぞれのインフラ、サ―ビスにはNagios、Zabbix、Mackerelなどの障害検知、運用監視ツールが組み込まれています

    システム運用エンジニアを幸せにするソリューションPagerDutyとは
  • HBaseの概要とアーキテクチャ

    はじめに ネットワークに接続されたセンサ機器の普及により、IoT(Internet of Things)が注目を集めています。IoTでは様々なセンサ機器が膨大なデータを生成するため、システムが管理するデータ量は急激に増加しています。このような膨大なデータを管理するためのデータストアとして、RDBと比較して高い性能とスケーラビリティを持つNoSQLが注目を集めています。 「Apache HBase」(以降、HBase)はNoSQLの1つで、センサ機器が生成する時系列データを管理するための有力なデータストアとして注目されています。連載では、HBaseを用いたシステム設計のノウハウと、1,000万個のスマートメータから収集したデータによる性能検証の結果を紹介します。 今回は、まずNoSQLにおけるHBaseの位置付けを説明し、その後でHBaseの概要とアーキテクチャについて説明します。 NoS

    HBaseの概要とアーキテクチャ
  • Rubyプログラミングの基礎知識

    実践Ruby on Rails 4 現場のプロから学ぶ格Webプログラミング 顧客管理システムの構築を体験しながら、Railsアプリケーション開発のノウハウを習得! この記事は、書籍『実践Ruby on Rails 4 現場のプロから学ぶ格Webプログラミング』の内容を、Think IT向けに特別にオンラインで公開しているものです。詳しくは記事末尾の書籍紹介欄をご覧ください。 インスタンス変数 「インスタンス変数」。単純そうで意外に奥が深い概念です。もう一度おさらいしておきましょう。 インスタンス変数とは インスタンス変数は、特定のオブジェクトが排他的に所有する変数です。そのオブジェクト自身だけがその値を参照できます。インスタンス変数という名前は、クラス変数との対比で用いられています。クラス変数は、あるクラスのすべてのインスタンスが共有する変数です。インスタンス変数は、それぞれのインス

    Rubyプログラミングの基礎知識
  • MySQL 5.6での機能強化点(その1) - パフォーマンスと使い勝手を大きく向上

    MySQL 5.6:今までで最高のリリース 2013年2月にMySQL 5.6がリリースされました。このバージョンは、パフォーマンスや使い勝手も大幅に向上し、「今までで最高のリリース」と言われています。また、製品品質の面でも、従来のバージョンよりも高い評価を頂けています。その背景にあるのが、DMR(Development Milestone Release)という開発モデルです。 MySQLは現在、正式リリース前に年に2~4回程度新たな機能を追加した開発途上版をリリースし、ユーザーからのフィードバックを受けて品質を高めた上で、正式版であるGA(Generally Availability)をリリースする、という開発モデルを採用しています。例えば、MySQL 5.6の場合は、以下の図のようにDMRをリリースし、機能追加/品質向上を続けてきました(最後のRCは、Release Candidat

    MySQL 5.6での機能強化点(その1) - パフォーマンスと使い勝手を大きく向上
  • MySQL 5.6での機能強化点(その3)- 人気のレプリケーションが更に機能強化

    前回の連載、前々回の連載では、MySQL 5.6での主要な機能強化点として、InnoDBとオプティマイザ、NoSQL APIとパフォーマンス・スキーマについて紹介しました。今回はレプリケーションの改善点について紹介します。 レプリケーション:人気の機能を更に機能強化 MySQL 5.6では、レプリケーション機能に対して非常に多くの改善が行われています。パフォーマンスの改善につながる機能から耐障害性を高める機能、開発生産性や運用性の向上につながる機能まで、幅広く改善されています。ここでは、主要な改善点を紹介します。 レプリケーション:パフォーマンスを向上 バイナリログのサイズ削減 レプリケーション構成時は、バイナリログというファイルを利用してデータベースに対する更新内容を伝搬していきます。バイナリログのフォーマットには以下の3種類があります。 SQL文自体を記録するSBR(Statement

    MySQL 5.6での機能強化点(その3)- 人気のレプリケーションが更に機能強化
  • [ThinkIT] 第1回:シェアの差はそのままデータベースの実力の差か?〜RDBMS各々のメリットとデメリット比較〜 (1/3)

    OracleSQL Server、DB2 UDBの3大製品に代表される商用RDBMS、そしてMySQLやPostgreSQLといったオープンソースデータベース、両者にはどんな違いがあり、技術者やユーザにとってのメリット/デメリットにはどんなものがあるのか? いくつもの"定説"が語られながら、今ひとつ当のことが伝わってこなかった、これら2つのデータベースの事実を探ってみる。 ITソリューションを考えるときに、データベースは欠かせない存在だ。とりわけリレーショナルデータベース(RDB)は、世の中のいわゆるエンタープライズ系ソリューションのバックエンドに必ずといってよいほど実装されている。RDBは、いまやITソリューションの隠れた中心とさえ言ってもよいだろう。 他のアプリケーションと同じように、RDBにも商用ソフトウェアとオープンソースソフトウェア(以下OSS)の2つの大きな潮流がある。前者

  • [ThinkIT] 第8回:Cookieとセッション情報 (1/3)

    サーバ/クライアント間の通信を担当するHTTPは、ステートレス(状態を管理しない)なプロトコルです。このように表現してしまうと難しく聞こえるかもしれませんが、要するに「複数のページ間で情報を保持することができない」ということです。 例えば、ページXとページZという2つのページがあったとします。ページXを処理したあとにページZを呼び出したとしても、ページZはページXで入力された内容や処理結果、さらにページXのあとに呼び出されたということも知ることはできません。 HTTPにおいては、リクエスト/レスポンスの一往復が完結された処理と見なされるので、次に発生したリクエストはまったく別物と認識されるからです。 しかし、JSP&サーブレットアプリケーションを構築する場合、複数のページ間で情報の保持が必要になるケースは少なくありません。例えば、認証を必要とするアプリケーションを想定してみてください。トッ

  • Facebookのデータセンターやビジネス活用の進むOSSなどを紹介 - オープンソースカンファレンス2013 Hokkaido -

  • DBサーバーの負荷分散

    MySQLアクセスを負荷分散する ユーザーからのアクセス数が非常に多いWebサイトにおいて、MySQLのSLAVEサーバーを複数台並べて負荷分散させるということがよく行われています。ただ、Webアクセスの負荷分散は一般的なテーマなのでいろいろなところで語られているのに対し、DBアクセスの負荷分散というテーマは一般的でないのかあまり語られていないように感じます。 DBアクセスを負荷分散するにあたって一番荒っぽい方法は、Webサーバー上のプログラムの中でどのSLAVEサーバーに接続するかをランダムで決める方法です。ランダムと言っても長時間アクセスしているとほぼ接続先が均等化されるので、一見この方法でも問題ないように見えます。しかしこの方法だと、接続しに行こうとしたSLAVEサーバーが高負荷もしくはサービス停止中であっても構わず接続しに行ってしまうという問題があります。 このような問題を解決する

  • [Think IT] 第7回:Apache+SSL環境を構築しよう! (1/3)

    こんにちは。ビーブレイクシステムズの木下です。前回はSSLのメカニズムについて解説しました。今回は、皆さんのApacheでSSLを利用する方法について解説します。 それでは、皆さんの環境にApache+SSL環境を構築しましょう。 Apacheをインストールされていない方は、「第2回:Apacheをインストールしてみるのは難しくない」から、「第5回:ApacheをWindowsへインストールするのだ!」を参照し、それぞれの環境に合わせてApacheをインストールしてください。 インストール時の注意点として、ソースインストールを行う方はconfigure時に、「# ./configure ?enable-SSL」としmod_sslを有効にしてください。また、Windowsの方はOpenSSL付きApacheインストーラでApacheをインストールしてください。

  • 1