Publishing技術評論社の電子書籍サイトログインカート本サイトではJavaScriptを使用しております。JavaScriptが無効な状態ではご利用いただけません。本書は,2019年6月18日に発売された雑誌の電子版です。“速い”Webアプリケーションの作り方[バックエンド編]ボトルネックの見つけ方,キャッシュ・CDNの活用ボタンを押すたびに数秒待たされるWebアプリケーションでは,ユーザ離れを招いてしまいます。ユーザのリクエストを受け取り,レスポンスとして返すまでの時間を短くするにはどうすれば良いでしょうか。Webアプリケーションにおけるバックエンド――ロードバランサ,Webサーバ,アプリケーション,データベースなど――に潜むボトルネックを見つけましょう。特集前半では,システム全体の構成の把握,測定のポイントについてまとめました。さらなる高速化の手段として,また急激な流入への対処としては,プロキシやCDNで使われる「キャッシュ」があります。特集後半ではキャッシュのしくみについて概観しつつ,CDNの活用ポイントをまとめました。第2特集IT業界ビギナーのためのDocker+k8s入門講座[Kubernetes編]図解で深く理解して最先端にキャッチアップ!本誌2019年6月号の2第特集では,Dockerの概念・しくみ・機能を基礎から学ぶことに注力しました。実際にシステムを構築するとコンテナがどんどん増えていきます。今度はそれを管理する技術が必要になります。これにGoogleは早くから取り組み「Borg」を開発し,さらにオープンソースプロジェクト化したものがKubernetesです。莫大なコンテナ群を管理するのは,非常に困難です。Docker+Kubernetesの組み合わせは,まさに車輪の両輪です。本特集では,より便利なサービスを作りあげるKubernetesを図示しながら解説します。システム構築・開発の主流となる考えをぜひ習得してください。機械学習を用いたアプリケーションの構築は,まだまだハードルが高いと言えます。加えて運用では,機械学習の精度の改善よりもインフラや環境構築といったことに時間を取られます。SageMaker」を紹介します。Services)とオンプレミスをVPNや専用線を使いどのようにつなぐかについて,背景も含めて説明します。第2回では,AWSとオンプレミスを実際にVPNで接続してみます。「生体認証」のようなパスワードレス認証のための仕様「FIDO」,そしてFIDOをWebアプリケーションに組み込むためのAPIの仕様「WebAuthn」について前後編で解説します。後編ではWebAuthnを利用したFIDOのユースケースと関連する機能を紹介します。chat導入のメリットSlackを導入し,ソフトウェア開発やビジネスに利用している企業が増えています。企業のコンプライアンスやさまざまな制約のため,導入に踏み切れず躊躇している方も多いのが現実です。GitHubが使えない企業では,GitLabなどを導入することで,そのメリットを享受しています。それと同様にオープンソースでchat環境を構築するのが,本稿で紹介するMattermost(マターモスト)です。最終回では機能のことからは離れ,実際に利用したときの事例について紹介します。file」に使用するファイルが以下からダウンロードできます。詳細については,記事をご覧ください。ダウンロードunzip同一のファイルはhttps://github.com/SECCON/SECCON2015_online_CTF/tree/master/Crypto/100_Unzip%20the%20fileからもダウンロードできます。免責:本ファイルを使用することによって,使用者が受けたあらゆる不利益に対して,原著者および技術評論社はその責任を負いません。補足情報P.166「Unixコマンドライン探検隊」補足:MariaDBへの接続ユーザと認証(2019年6月17日最終更新)MariaDBの認証のしくみは,Unixのものと似ている部分と異なっている部分があるので混乱しやすいところです。図1に示すように,MariaDBにおけるユーザ認証は,mysql.userテーブルにある,userとhostの組み合わせに対して行われます。同じuserであっても接続元のhostが異なるなら,認証は異なります。18.04でaptからインストールした環境では,図2のようにUnixの一般ユーザからmysqlコマンドを実行してもログインできません。pluginが有効になっていて,ローカルのソケットを介してMariaDBに接続するときUnixの資格情報を使用しているためです(図3は,macOSで接続して認証に関するpluginの情報を取得したところです。図4のUbuntuの状況と比較するとpluginの項目が異なっています)。sec)図4のように初期状態ではroot@localhost以外のユーザは存在していませんので,ローカルホストからrootとして,unix_socketを使った接続のみが可能です。そのため,OSのrootとしてmysqldへ接続する必要があります。rootオプション)して接続します。同様の理由で,本誌面で実施したように,unix_socketプラグインを有効にせずに新規に作成(誌面ではsbtestユーザを作成)するMariaDBのユーザでは,異なるUnixユーザからも接続できますし,unix_socketが有効であっても,OSのユーザとMariaDBのユーザが一致していれば接続できます。Unixの一般ユーザから,suせずにMariaDBのroot@localhostにログインできるようにするには,unix_socketを無効にする必要があります。pulginを無効にする例です。pluginをシステムの起動時に無効にする設定の記述(図6,図7)があります。この操作だけでは,すでにunix_socketプラグインが有効になっているユーザに対しては,プラグインがないためにログインできなくなってしまいますので注意してください。unix_socketを無効にするmysqldの起動オプション--unix-socket=OFF不便なようですが,ローカルホストでsudoしなければMariaDBのrootユーザとして接続できないというのは,セキュリティ面においては安全性が高いとも言えます。ここで確認したいずれの環境でも,デフォルトでrootのパスワードが空です。実際の運用の前には,パスワードを設定するなどセキュリティへの配慮を忘れないようにしましょう。(了)P.166「Unixコマンドライン探検隊」補足:MariaDBでの文字コードの扱いコンピュータの発展とともに,多くの文字コードが生まれてきました。日本語でも,一般的なコードの呼び方だけでも,JISコード,Shift-JIS,EUC,Unicodeなどさまざまです。厳密にはそれぞれのコードに対して,複数のバージョンや呼称があったりします。OSやDBMS,ブラウザなどのアプリケーションプログラムでも,コードセットが異なると,使える文字,使えない文字が異なったりして,これらを意識しなければならないことがあります。ややこしく感じるかもしれませんが,MariaDBの設定においても,データベース,テーブル,カラムに収納する文字,問い合わせで扱う文字,クライアントプログラムで扱う文字コードを意識しなければなりません。Collations」に記述があります。TABLE時のカラム指定時)で,カスケードダウンし継承されます。収納するときにも,文字コードはSQL文の発行時に指定できます。SETで確認できます。mysqlコマンドから確認しておきましょう。デフォルトの指定をうっかり間違えて運用してしまっても,機能的には後に変更することができます。ここでは,データベースのデフォルトをutf8からutf8mb4に変更する例を見てみましょう。挿入されたデータを確認すると,日本語(あいう)はOK,は?(=不明の文字)になっている。TABLE文で,デフォルト文字コードをutf8mb4にする。挿入済みのデータを再確認。入っているデータに変化はない。新規にを含む行を追加して,確認。,?(不明の文字)になっている。テーブル(t)に加えて,列(vt)の文字コードをutf8mb4に変更。