Software Design 2018年5月号

今号の特集概要

第1特集
パフォーマンスを向上させるテーブル設計とSQL
“速い”データベースの作り方

データベースをアプリケーションのボトルネックにさせないために,考えなければならないことは何でしょうか。

まずはデータベースの基礎部分,テーブル設計を見直しましょう。正規化をしたうえで,適切なインデックスを張ることが肝心です。その次は,データベースを操作するSQL。SELECTやWHEREといった「句」がどのような順番でどのように処理されるのかを理解することで,遅いSQLの原因がわかります。RDBMSの持つ強力な機能も,高速化のための武器になります。OSSのRDBMSであるMySQL・PostgreSQLについて,それぞれの持つ機能,得意分野を知りましょう。さらなる高速化のための手法として,RDBMS以外のデータストアも検討します。今回はインメモリのKey-Value Store,Redisを取り上げます。

第2特集
HashiCorp入門
Vagrant,Packer,Terraform,Consul――いっきにわかる使い方

コンピュータは,作業をもっと便利にするための道具であるはず。スマホ対応や,その他ユーザニーズに合わせて日々複雑化するITシステム。そんな開発の現場のニーズをくみ取ったツール群が,HashiCorpにあります。

HashiCorpがツールやサービスを開発・提供する際にベースとなる重要な考え方が「The Tao of HashiCorp(HashiCorp 道)」です。これはインフラをコードとして管理し,自動化しようとする原理原則です。ワークフローが優先であり,技術ありきではなく,シンプルでモジュール型であり連携できるものであること,そしてインフラをコード化することです。

同社が提供するツール群の中でも基本中の基本とも言えるのがVagrantで,ローカルの開発環境構築を自動化できます。Packerは仮想マシン・イメージを自動的に構築するためのシンプルなツールです。Terraformはクラウドや仮想化などのインフラ管理の自動化を目指します。Consulは運用やメンテナンスにおいてサービス・ディスカバリをするツールです。本特集ではこれらのツール群の使い方をまとめました。きっとみなさんの日々の業務を推進するものになるでしょう。

第3特集
これが定番Linux環境だ!
Ubuntu 18.04 LTSの最新事情

Ubuntuは偶数年の4月にLTS,Long Term Support版のリリースを行っています。2年ぶり6番めのLTSリリースとなるUbuntu 18.04 LTS(デスクトップ版とサーバー版)について,従来からの変更点や新機能を中心に紹介します。

一般記事
Jamesのセキュリティレッスン
【11】Wiresharkはじめました!

Wiresharkを使ったパケットキャプチャへの理解を深める本連載。今回は新年度スタートということで,パケットキャプチャ入門者に贈るWiresharkの導入解説です。インストールのポイントから画面の見方,必須となるフィルタの使い方を説明します。

一般記事
[短期連載]実践! GPUサーバでディープラーニング
【3】GPUサーバでつくるミニ囲碁プログラム(前編)

ここ数年,ディープラーニングを用いてさまざまな課題を解決しようとする取り組みが多くあります。ディープラーニングではGPU(Graphics Processing Unit)を用いてモデルを訓練する,ということをご存じの方も多いのではないでしょうか。連載の第3回はディープラーニングの成功事例としてよく取り上げられる「囲碁」を題材に,CPUとGPUとで学習を行いながら,どのようにしてディープラーニングが利用されているかを前後編に分けて解説していきます。

一般記事
[短期連載]ARKitとUnityで作るiPhone ARアプリ集中特講
【5】ARペット育成ゲームの仕上げ

AppleはiPhoneやiPadでのAR体験をユーザにもたらそうとしています。最新のiOS 11でリリースされた「ARKit」はそのARアプリケーションを開発するためのフレームワークです。この短期連載では,AR空間や物理エンジンの使い方を理解し,シンプルなARゲームを完成させることを目的とします。最終回となる今回は,猫の3Dモデルとのお遊びに経験値の概念を入れ,よりゲームらしく仕上げて完成です!

目次

第1特集
パフォーマンスを向上させるテーブル設計とSQL
“速い”データベースの作り方

  • 第1章理論と実践,両輪で考える
    高速化を実現するテーブルの設計…… 末並 晃
  • 第2章遅くなる要因から考える
    速いSQLの書き方…… 小栁 真太
  • 第3章性能向上に効くRDBMSの知識
    MySQL・PostgreSQL徹底比較…… 澤田 雅彦
  • 第4章メモリをキャッシュに有効利用
    RDBMSと組み合わせて使うRedis…… 大谷 祐司

第2特集
HashiCorp入門
Vagrant,Packer,Terraform,Consul――いっきにわかる使い方

  • 第1章:HashiCorpは開発と運用を隔てる見えない壁を橋渡し…… 前佛 雅人
  • 第2章:開発環境の自動化を支えるVagrant…… 前佛 雅人
  • 第3章:仮想マシン・イメージを自動構築するPacker…… 前佛 雅人
  • 第4章:インフラをコードで管理するTerraform…… 前佛 雅人
  • 第5章:分散環境のサービス・ディスカバリを行うConsul…… 前佛 雅人

第3特集
これが定番Linux環境だ!
Ubuntu 18.04 LTSの最新事情

  • 第1章:Ubuntu 18.04 LTSとそのフレーバーの変更点
    LTSでは6年ぶりにUnityからGNOME Shellに…… あわしろいくや
  • 第2章LXC/LXDも充実,snapパッケージシステムも便利になった
    Ubuntu 18.04 LTS Server…… 水野 源

一般記事

  • Jamesのセキュリティレッスン
    【11】Wiresharkはじめました!…… 吉田 英二
  • [短期連載]実践! GPUサーバでディープラーニング
    【3】GPUサーバでつくるミニ囲碁プログラム(前編)…… 山口 祐
  • 【最終回】[短期連載]ARKitとUnityで作るiPhone ARアプリ集中特講
    【5】ARペット育成ゲームの仕上げ…… 高橋 憲一

Test Report

  • NETGEAR ReadyNAS徹底運用<第2幕>
    【3】アプリとパッケージ管理…… 後藤 大地

連載

  • ITエンジニア必須の最新用語解説
    【113】Flutter…… 杉山 貴章
  • digital gadget
    【233】カメラとガジェット…… 安藤 幸央
  • 結城浩の再発見の発想法
    【60】プレースホルダ…… 結城 浩
  • 【新連載】[試して理解]Linuxのしくみ
    【1】プロセススケジューラ…… 武内 覚
  • 宮原徹のオープンソース放浪記
    【27】OSC東京春とラズパイ6回目の誕生日イベント…… 宮原 徹
  • 【最終回】ツボイのなんでもネットにつなげちまえ道場
    【35】役に立ちそうな話…… 坪井 義浩
  • 【新連載】scikit-learnで学ぶ機械学習アルゴリズム
    【1】最小二乗法による線形回帰と,L1,L2正則化…… 清水 琢也
  • シェル芸人からの挑戦状
    【9】コードの編集…… 上田 隆一,eban,中村 壮一,青木 裕哉,山田 泰宏,田代 勝也
  • ひみつのLinux通信
    【51】転生したらプロセスになってた…… くつなりょうすけ
  • Vimの細道
    【29】スニペットで高速コーディング…… mattn
  • 書いて覚えるSwift入門
    【36】ハッシュ関数の2つの顔…… 小飼 弾
  • セキュリティ実践の基本定石
    【53】DDoS攻撃の記録を塗り替えたmemcached脆弱性…… すずきひろのぶ
  • SOURCES~レッドハット系ソフトウェア最新解説
    【20】RHELシステムの脆弱性対応方法…… 小島 啓史
  • Debian Hot Topics
    【55】Windows Subsystem for LinuxでDebianが動作可能に…… やまねひでき
  • Unixコマンドライン探検隊
    【25】ラズパイで死活監視(その2)…… 中島 雅弘
  • 【最終回】Linuxカーネル観光ガイド
    【73】Linux 4.6で追加された分散ファイルシステムOrangeFS…… 青田 直大
  • Monthly News from jus
    【79】インスタ映えも夢ではないシェル芸勉強会…… 小林 峻
  • Hack For Japan~あなたのスキルは社会に役立つ
    【77】7年の活動を振り返る[前編]…… 鎌田 篤慎
  • 【最終回】温故知新 ITむかしばなし
    【77】ベーシックマスター~主流になりきれなかった,高性能パソコン~…… 速水 祐