fbpx

メニュー

マカーが複数台構成のサーバをロリポップのように簡単に使うための設定

高橋文樹 高橋文樹

この投稿は 10年半 前に公開されました。いまではもう無効になった内容を含んでいるかもしれないことをご了承ください。

Webサイト制作を請け負って生活していると、ある日突然複数台環境での開発を余儀なくされることがあります。「黒い画面でやれ! 終了」と言えばそれまでなのですが、僕はGUIの方がなんとなく気楽なので、そのための設定方法を紹介します。サーバにデプロイする時のドキドキ感を減らしたいというわけですね。

1. アプリの紹介

デプロイが完全自動化(コミット→ビルド→自動テスト→デプロイ)されているならまあいいですが、僕はそうでない環境で日夜過ごしているため、サーバをいじるときにこんなアプリを使っています。

Transmit(SFTPクライアント)

マカーおなじみPanicのお洒落FTPクライアント
マカーおなじみPanicのお洒落FTPクライアント

これはSFTP用クライアントですね。有料。「同期」という機能があって、それが地味に便利です。ただし、ファイルのタイムスタンプしか見ていないので、複数人で使う場合はなんの役にも立ちません。コツとしては、「同期専用」のローカルコピーを作ることですね。

Transmitにはファイルを「Transmitで編集」という機能があります。この機能はサーバ上のファイルをテキストエディットっぽいGUIで編集できます。「設定ファイル書き間違えてたヤベヤベ」みたいな時にサクッと直せます。もっとも、Nginxなんかは設定ファイル書き直した時点で再起動しなきゃいけないので、ssh必須ですが……

Sequel Pro

MySQLクライアントです。無料。レンタルサーバに慣れている人はphpMyAdminとか使うと思いますが、サーバ複数台環境でphpMyAdminが用意されることってあまりないので、これを使うと楽です。SQLもちょっとずつ直しながら試せるし。

phpMyAdminが入ってなくてもこれがあれば大丈夫!
phpMyAdminが入ってなくてもこれがあれば大丈夫!

MySQL自体はコマンドラインから使う人が多いようですが、以前かなり優秀なインフラエンジニアがMySQLデータベースをぶっとばしたのを見てから、僕は絶対にコマンドラインからMySQLを触らないと誓いましたね。

2. SSHの設定

さて、上で紹介したTransmitとSequel Proなのですが、両方ともSSHでの接続が可能です。が、鍵認証の設定があんまりうまくありません。なんでかわかりませんが。

Transmitの設定画面
Transmitの設定画面

たとえば、Transmitだと秘密鍵を指定するオプションがあるのですが、これがこける場合がよくあります。こういう場合はちょっとメンドクサイですけど、黒い画面を立ち上げてSSHの設定ファイルを編集します。たとえば、データベースサーバのIPが210.00.00.000で、ユーザー名がme、秘密鍵がid_rsa_db_1、ポートが6022だったとしましょう。

vi ~/.ssh/config
# vimが立ち上がる
Host myproject.db
    HostName 210.00.00.000
    User me
    Port 6022
    IdentityFile ~/.ssh/id_rsa_db_1

こうやって書いておくと、Transmitの「サーバ」にmyproject.dbって書くだけで認証が通ります。鍵にパスワードが指定されていた場合は変なダイアログが立ち上がります。キーチェーンに覚えさせておけば、二度と聞かれなくなくなります。

秘密鍵にパスワードが設定されていた場合
秘密鍵にパスワードが設定されていた場合

ま、とにかくSSHさえ繋がるようにしておけば、GUIアプリで繋げることはできるというわけですね。はじめは黒い画面を触らなくてはいけませんが、二回目からはとても楽ちんです。

Sequel ProでEC2につないでいる様子。
Sequel ProでEC2につないでいる様子。

3. ポートフォワーディング対応

複数台の構成だと、普通は踏み台サーバがあって、そのサーバを経由しないとWebサーバやデータベースにアクセスできません。

複数台構成ってこんな感じ
複数台構成ってこんな感じ

ターミナルでやればなんとかなるのですが、マスターからRsyncするだけのWebサーバに行ったらVimが入ってないとか、そういうメンドクサイこともありえます。

それに、ファイルをアップロードするだけでも一々scpしてcpしてとかやりたくないので、Transmitでぽんと上げられたら楽ですね。

で、TransmitやSequel Pro自体には踏み台をどうにかする機能はないのですが、このためのアプリが存在します。それがCoccinellidaです。てんとう虫って意味ですかね。

コチネリーダ?
コチネリーダ?

このアプリはSSH Tunnelを設定するためのアプリです。細かい設定はMac OS X で簡単に SSH Tunnel を構築する方法とかを読んでください。

このアプリを使うと、サーバlocalhostのポート30022と設定するだけで、普通にTransmitとかが使えるようになります。この設定を済ませておくと、複数台構成のサーバでもロリポップみたいに使えますよ。

Coccinelidaを設定すると、Transmitでも簡単に踏み台突破!
Coccinelidaを設定すると、Transmitでも簡単に踏み台突破!

終わりに

「俺は黒い画面を使いこなすぜ! ウィザードだぜ!」という方も多々おられると思いますが、人は疲れているときに思わぬミスをしてしまうもの。デプロイが大変だと、責任者が官僚化しやすい(ex. ほう、こんな糞コードをデプロイしろとな?)ですし、仕事を終えて家に帰っても電話がかかって来たりします。

また、GUIアプリで設定を済ませておくことのメリットは、「スキルが低くてもデプロイできる」という点ですね。「スキル低いヤツがデプロイできていいのか」という問題もありますが、バナー1個アップロードするのに大騒ぎするような状況よりはましでしょう。

IT業界は人の移り変わりが激しく、付き合いのある会社が1年経ったら社長以外全員別人ということもざら。フロントエンド、ミドルウェアなんでもござれという優秀な人を際限なく雇えるならともかく、そうじゃない場合はこんな感じでGUIアプリの設定を済ませておいて、「このMac使ってね」で終わります。

この方法の問題点はお金がかかるということですが、人件費に比べたら安いもんですよ、奥さん。おわり。

[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)

すべての投稿を見る

高橋文樹ニュースレター

高橋文樹が最近の活動報告、サイトでパブリックにできない情報などをお伝えするメーリングリストです。 滅多に送りませんので、ぜひご登録お願いいたします。 お得なダウンロードコンテンツなども計画中です。