GCPの「Compute Engine」と「App Engine」の違い
Compute EngineはIaaSであり、
App EngineはPaaSである。
アプリ開発者の視点から
Compute EngineはOS・ハードウェア構成のレイヤーから選択できる。
App EngineはJava、PHP、Pythonなどを選択すると、インフラは自動でGCP上に構成される。(後はアプリをデプロイするだけ)
Compute EngineはApp Engineの領域を含む。
アプリ開発者が任意のJavaプログラムを公開したい場合は、App Engineで簡単に公開できる。
しかし、OSの種類・バージョン等は選ぶことができない。
Compute Engineはインフラの知識が必要である。
そのため、アプリ開発者がインフラの勉強も兼ねてGCPを触ってみる場合は、Compute Engineから始めなければ意味がない。
インフラレベルから構築したい、OSやハードウェア性能含めて全てを任意に作りたい場合は、Compute Engineからスタートする。
AWS(Amazon Web Service)との対比
Compute EngineはAWSのEC2である。
App EngineはAWSのElastic Beanstalkである。
GCPの下記公式ドキュメントが明るい。
AWS サービスと Google Cloud Platform プロダクトの対応 | 無料試用 | Google Cloud Platform
Servermans@VPS に redmineはインストールできないです
Servermans@VPS に redmineはインストールできなかったです。
Redmine 3.2をCentOS 7.1にインストールする手順 | Redmine.JP Blog
この中段に
PassengerのApache用モジュールのインストール
というのがありますが、それができないからです。
なぜインストールできないかというと、httpd-develとういのがインストールできないから。
それはServermans@VPSの仮想化基盤であるOpenVZだからのようです。
passenger-install-apache2-module
が正常終了しないため、passenger_module(mod_passenger.so)が生成されず、redmineをapacheと連携させることができないのです。
残念ですが、Servermans@VPSでredmineを使うことはあきらめます。
仮想化基盤がOpenVZではなく、KVSであるさくらのVPSやお名前.comのVPSならいけるようです。
レンタルサーバー契約変更(DTI ServersMan@VPSにてRedmine構築失敗) | 知識日記@IT中心
↑
とても参考になりました。
ありがとうございます。
期限切れドメインの取得可否チェックの続き
ドメインの取得可否チェックだけなら、
別に内容まで取得しなくてよい。
URLに接続してみて、そのステータスコードを判定すればいいだけ。
URLへのつ接続は、下記を使用する。
URLConnection (Java Platform SE 6)
openConnection
メソッドを呼び出すことによって、接続オブジェクトを生成する。
とあるから、openConnection
の結果で、
取得可否は判定できるはずだ。
・openConnection
の結果
getResponseCodeの結果:java.net.UnknownHostExceptionが発生する
public class UnknownHostException
- extends IOException
ホストの IP アドレスが判定できなかった場合にスローされます。
上記、openConnection
の結果がUnknownHostExceptionではなく、
openConnection
後のgetResponseCodeで発生するようだ。
これは文句なしに取得可能。
・期限切れドメイン
肝心のいわゆる中古ドメインは
http://www.expireddomains.net/deleted-com-domains/
こういうとこでまず拾います。
なんかでやるとどうなるか。
再帰的に発リンクを取得しようとしたら、java.util.ConcurrentModificationException
全く見たことがないException見たらワクワクしますね。
新しいことやってるな~
っていう気分になります。
ConcurrentModificationExceptionって出たから、
「おっ?」って思った。
と思ったらなんのこっちゃあらへん、
ArrayListの共有違反でした。
ArrayListの使い方が下手ってことね。
複数個所から同時にリストの中身を書き換え、
読み込んだ 場合に発生 するようです。
何をしたかと言うと、
とあるURLから発リンクを取得した。
その発リンク先(複数)からさらに発リンクをどんどん取得し、
結果を格納するArrayListにじゃんじゃんつっこんだ。
そうした時に複数の発リンク先の発リンクを、
同時にArrayListにつっこんだからそうなったんや。
結果リストを
Collections.synchronizedList(new ArrayList<String>());
によって生成することで解決。
って思ったら、違った。
そもそも構造が間違っていた。