2018年6月27日水曜日

IT放浪記~奄美大島編~

今回は技術の話は一切なく日記です。

本当は書こうか迷ったのですが、
ただITインフラを触る人や事業者には、割と興味を持って欲しいなと。
そうするには私が見てきた現状を発信する事が一番と思い書くことにしました。

そもそもが私の個人的な事業目的で奄美大島に訪れた為、
各アポ先にはもちろんblog掲載の許可を頂いていません。
なので出どころや詳しい話、人間関係や思惑等は記載しません。
ただ、聞いて回った話と私が感じた事を書こうと思います。

前置きはこの辺にしまして。

奄美大島に行ってきました。
奄美大島のイメージって皆さんどんな感じでしょうか。

私は調べるまでは沖縄の近くの島。というイメージしか持ってませんでした。
ただ調べてみるとフリーランスや情報通信産業に市が力を入れている事がわかりました。
行政がフリーランスや情報通信産業に力を入れる島というのも面白いなと。
いてもたっても居られなくなり、実際に状況を確認しに行ったというのが今回の放浪記です。

奄美大島のフリーランス施策や情報通信産業に関する施策ですが、

フリーランスが最も働きやすい島化計画

ここに解りやすく載っています。

面白そうという事と、丁度自分の事業計画にもマッチングしそうだった為、
直ぐに飛行機を予約して、アポ取りをはじめました。
で、実際に市役所にもアポを取って話を伺い、さらにICT施設も見学してきました。
また、ITエンジニアの教育現場も拝見し、お話を伺いました。
そしてさらに紹介を受けて地元の情報通信業の会社様にもお話を伺いました。

順を追って書いていきたいと思います。

まず市が行っているフリーランス施策ですが、厳密に言うとエンジニアは含まれていません。
この施策の大元となるのは島の活性化であり、島の人たちがITを使って発信する事を目的としているそうです。
例えば島の魅力等を伝えるライティング事業であったり、ハンドメイドをインターネットを使って売ってみたり、
そういうフリーランスの方々となります。
この施策はランサーズやGMOペパボ等の企業とタッグになって進めているそうです。
バリバリのITエンジニアの方々も勿論OKですけども、市がやってるフリーランス施策とは一線を画するという事を、
頭に入れておいて計画を練るのが良いと思います。
私の計画とは残念ながらマッチングしませんでした。2020年以降の次のステップで考えてるそうです。
フリーランス支援窓口があり、そこに相談をすると色々と相談に乗ってもらえます。
ここでは移住に関する相談も乗ってもらえるので、ITエンジニアの方も勿論相談に乗ってもらえます。

ICT施設も見学しました。ICT施設は空港に近いところにあります。
カードキーによる入室管理と防犯ビデオも完備されており、管理人が常駐してます。
入口、さらに各部屋にカードキーが設置されています。
更にサーバールームもあります。ここは空調でコントロールされていました。
ただ、ドアの結露がとても気になりました。
素で置いておくよりかはよっぽど良いと思いますが、高価な機器はおけなさそうです。
入居する為には奄美に移住する必要があります。
空港から近い為、1か月に1度訪れる程度で借りようと考える人が結構居るそうですが、
入居条件としては3/4以上は常駐する必要があるそうです。
ただ、ここが難しいところなのですが、ICT施設があるのは笠利という地区です。
奄美市の中心地は名瀬というところです。名瀬から笠利は車で40分くらいかかります。
はっきり言って移住して通うには通い辛いです。何故あそこに作ってしまったんだろう。
そう思わざるを得ない場所にあります。
空港から近いというのは1つの利点なのですが。ただ入居のハードルが少し高いです。
個人事業主でも借りれるそうなので、奄美に移住を考えているエンジニアは良いかもしれません。
ハブは山に入ったり藪や農道を通らなければ見かける事も困難なレベルなのでご安心を。

で、実際に移住を考えた場合なのですが、
正直、話を聞いた中での主観になりますが、地元にはエンジニアとしての仕事が殆ど無いと思います。
地元の企業も多くは東京から仕事を持ってきています。そして協力しながら仕事をこなしています。
外から仕事を持ってこれる人でないと厳しいです。

通信環境は整っていますし、携帯の電波もDocomoならほぼ入ります。
物価は平均して特に安くないです。家賃も名瀬なら鹿児島の中心地と変わらないです。
空き家は結構あるそうですが、大家さんとの交渉もあり、あまり出回っていません。
名瀬なら土着の不動産屋さんや市役所に相談して探した方が良いと思います。
実際に見つけた空き家の近所の人に大家さんを聞いて直接交渉する位の気持ちが丁度良さそうです。

さて、今回の旅で一番重要視していたのがITインフラへの知見だったのですが、
そもそもエンジニアもプログラマーが主体なので、
前述のICT施設のサーバールーム扱いからみてわかる通り、
サーバーに関してはまだまだ知識が不足しています。
更に離島あるあるといえばあるあるなのですが、まだまだ物理への信頼感があり、
クラウドに関して疑問を持ってる方が多いです。
なのでレンタルサーバーは普及していますが、クラウドは全く普及してません。
クラウドインフラの普及は急務な気がします。これこそ施策にして欲しいくらいに。
クラウドインフラを広めるようなイベントが開けたらと思いますが・・・
手をあげてくれる事業者が居ると嬉しいです。

今回、観光という観光は殆ど出来なかったのですが、
普段観光する人達が訪れないような場所に沢山立ち寄らせてもらえました。
専門学校や開発センターなど、いろいろと伺わせてもらいました。
島の人達はとても良い人ばかりで、そして皆さんとても自然を大事にしています。
私は奄美大島がとても好きになりました。

もちろん夜は飲み明かしました。
地元の方々にいろいろとお店を紹介してもらいながらハシゴ。
とても楽しい夜でした。
特にお世話になった屋仁川の心機一転の皆さん、Bar柊のマスターには感謝です。
奄美大島に訪れた際には絶対にまた立ち寄ります。
皆さんもとても楽しい素敵な旅になると思いますのでお勧めです。

一応、海の写真置いておきます。こんな素敵な海が直ぐ近くにあります。



奄美大島で東京に負けないような技術力を持ったインフラエンジニア集団が出来ればいいな。
もしクラウド事業者が本気を出せば、近い将来、それは訪れるかもしれませんね。

それでは皆さん、良いクラウド構築を。

2018年5月26日土曜日

CentOS5でphpのcurlからTLS1.2対応をさせる話

PCIDSSの対応で各決済会社のTLS1.2縛りが始まりました。

乗り遅れてしまった!! やばい!間もなくじゃない?
的な話もチラホラ聞きます。

phpで作られているシステムであれば、curl等を用いて決済情報に確認を
しにいったりリクエストを投げたりしているところが多いのではないでしょうか。

CentOS6以降であれば普通にyumで対応出来ちゃうのですが、
CentOS5系ですとyumでは無理。
proxyで逃げるという策もあるのですが、サーバーも立てられない環境だと、
なかなか安易に逃げれない。
という訳で、今回はphp-curlを更新して対応させちゃう話です。

/usr/localにはソースインストールしているような形跡が無い前提で、
php-5.3.19の環境を元に書いていますので、
その辺は自身の環境と読み変えて下さい。


全て最新を入れたいところなのですが、
全て最新だとなかなかいろいろと問題が出るので、
TLS1.2に対応出来ているという形で収めます。

opensslをダウンロードします。

wget --no-check-certificate https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
tar xzvf openssl-1.0.1u.tar.gz
cd openssl-1.0.1u

既存環境を汚したくないのでprefixを指定してconfigureします。

./config --prefix=/usr/local/openssl shared
make
make install

完了です。

次にcurlをインストールするのですが、opensslのlibを読み込めるように、
ldconfigでpathを読めるように以下を追記しておきます。
vi /etc/ld.so.conf
---------
/usr/local/openssl/lib
---------
ldconfig

curlですがs3等で画像の存在確認をして表示をさせるようなシステムだと、
最新のcurlでは--outputオプションをつけないとbinaryは表示出来ない為、
エラーになるケースが見受けられました。

以下は新しいcurlで実施していますが、エラーが出るようでしたら
curlを7.19くらいに落とすと上手くいきます。
ただ7.19をダウンロードするにも公式からTLSではじかれるので、
7.58.0をインストールしてから
curl -k curlのURL -o ファイル名
でもいいと思います。
ca情報が古い場合はpemファイルを上記と同じようにcurl -k でゲットして配置しなおします。
詳しくはこちら。
うまい棒ブログ(id:hogemさん)
サーバのSSL CA(認証局)証明書が古くてcurl がエラーになる件
http://hogem.hatenablog.com/entry/20120705/1340284071


さて、続きやります。今回は7.58.0をゲットして入れます。
今回も環境汚染しないようにcurlをprefix指定して別にインストールします。
新しいsslを読み込んで作りたいので新しくインストールしたopensslディレクトリを指定します。

wget --no-check-certificate https://execve.net/mirror/curl/curl-7.58.0.tar.gz
tar xzvf curl-7.58.0.tar.gz
cd curl-7.58.0
./configure --prefix=/usr/local/curl --with-ssl=/usr/local/openssl
make
make install

以下でバージョン確認するとopenssl-1.0.1uを参照しているのがわかると思います。
/usr/local/curl/bin/curl --version

新しくインストールしたcurlを元にphp-curlを作り直します。
今回の環境はphp-5.3.19がyumでインストールしてあったので、同じバージョンをダウンロードします。
切り戻せるように元からあるモジュールはバックアップしておきましょう。

mv /usr/lib64/php/modules/curl.so /usr/lib64/php/modules/curl.so.old
※32bit環境であればlib64をlibにして下さい。


wget http://museum.php.net/php5/php-5.3.19.tar.gz
tar xzf php-5.3.19.tar.gz
cd php-5.3.19/ext/curl/
phpize

新しくインストールしたcurlをディレクトリとして指定します。
./configure --with-curl=/usr/local/curl
make
make install

これで完了です。
php -i で確認するとcurlの参照opensslが1.0.1の新しいものに
なっていると思います。

以下のようなテストスクリプトでphpの実行ファイルを作成し、
実行した際にページの情報が表示されればokです。

-----------------------------------
<?php
$url = "対象サイトのURL";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
var_dump($html);
curl_close($ch);
-----------------------------------

意図しない表示崩れ等を起こすと困るので、
apacheを再起動(gracefulやreloadでもok)して表示を確認しましょう。

今回はcurlでしたが他のphpモジュールで対応したい場合でも、
そのモジュールが参照するパッケージを新しくソースインストールして、
新しい方を参照する形で作り直せば通ると思います。

同じようにCentOS5のgitのsshやcurlでハマッてる人をよく見かけますが、
上記と同じようにopensslを元にsshやcurlを作れば大丈夫です。

ここまで書いといてあれですけど、
既に陳腐化しているシステムを無理くりやっているだけなので、
本来であればCentOS7に移行するのが筋です。

あくまでワークアラウンドでお考え下さい。

※ここに書いてある内容は一般的な対応方法では無いので
 くれぐれも実施後は確認を怠らず注意の上、自己責任でお願いします。


それでは、よいクラウド構築を。