ローカルPC上で、DynamoDBのコマンドテスト環境作成
DynamoDBについて全く知らなかったので、コマンドテストができる環境を作成します。
※Java Runtime Engine (JRE) バージョン 6.x 以上をインストールしてあること
私の環境がWindows7なので、Windows7でやってみます。
http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.zip
置きたい場所にフォルダ作って、上記URLからzipファイルをダウンロードして、解凍します。
コマンドプロンプトで、解凍したフォルダの中に入り、下記を実行します。
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
上記の状態になったら、ブラウザで下記URLへ http://localhost:8000/shell/
すると下図のような画面に飛びます。 左側にjavascriptを入力して、真ん中の▶をクリックすると右側に実行結果が出ます。
いろいろ試していきます~
Solr Cloud (ver.5.5.0) ~サーバ3台~
目次
概要
作成手順
確認
概要
サーバ3台構成で、Zookeeper(3.4.8)とSolr Cloud(5.5.0)を使い、分散冗長構成の作り方をまとめます。 OSは、CentOS6.7です。
作成手順
まず、Zookeeperを用意します。 設定はこちらに記載してます。
the-casket-of-star.hatenablog.com
/opt/zookeeper/bin/zkServer.sh start まで行った前提です。
Solrの設定を行います。
こちらを参考にさせて頂きました。
Tutorial – Deploying Solrcloud 5 on Amazon EC2 | Blog of France Labs on Search technologies
cd /tmp wget http://ftp.tsukuba.wide.ad.jp/software/apache/lucene/solr/5.5.0/solr-5.5.0.tgz tar -zxvf solr-5.5.0.tgz mv /tmp/solr-5.5.0 /opt/ ln -s /opt/solr-5.5.0 /opt/solr cd /opt/solr/ vi ./bin/solr.in.sh ※変更箇所 ================================================ ZK_HOST="<Server1のIP>:2181,<Server2のIP>:2181,<Server3のIP>:2181" ZK_CLIENT_TIMEOUT="150000" SOLR_HOME=/var/solr/data SOLR_PORT=8983 SOLR_MODE=solrcloud ================================================ mkidr -p /var/solr/data chmod 777 /var/solr/data cp -ap /opt/solr/server/solr/solr.xml /var/solr/data/ vi /var/solr/data/solr.xml <str name="host"><Server1のIPを記載></str>
solrを起動します。 オプションの -cはクラウドモードで起動するのに必要です。
./bin/solr start -c Waiting up to 30 seconds to see Solr running on port 8983 [\] Started Solr server on port 8983 (pid=6299). Happy searching!
coreを作ります。
./bin/solr create -c test
※testはcore名なので、任意のcore名を指定して下さい。
ls /var/solr/data
testフォルダがあることを確認します。
間違えた時は、deleteコマンド
./bin/solr delete -c test
ブラウザで、
http://xxx.xxx.xxx.xxx:8983/solr/#/ にアクセスすると、下図のように表示されるはずです。
左側のCore Adminをクリックすると、先ほど作ったcoreがあります。
cd /opt/solr/server/scripts/cloud-scripts/ ./zkcli.sh -zkhost <Server1のIP>:2181,<Server2のIP>:2888,<Server3のIP>:2888 -cmd upconfig -confdir /opt/solr/server/solr/configsets/basic_configs/conf -confname solrconfig
上記までを、 残り2台のサーバ上で実行します。 IPアドレスは適宜変更して下さい。
ブラウザの アドレスバーで以下を実行すると、
http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=CREATE&name=test&numShards=1&replicationFactor=3&collection.configName=solrconfig&maxShardsPerNode=3
各値について
name: collectionの名前
numShards: Shardsの数
replicationFactor: shards毎のレプリケーションの数。サーバーの台数と同じ必要がある。
collection.configName: /var/solr/data/test/conf/ の中の設定ファイル。初期はsolrconfig.xml
maxShardsPerNode: NodeあたりのShardsの最大数。
以下のようなXMLが返ってきます。
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">8649</int> </lst> <lst name="success"> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">7170</int> </lst> <str name="core">test_shard1_replica1</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">7891</int> </lst> <str name="core">test_shard1_replica2</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">7903</int> </lst> <str name="core">test_shard1_replica3</str> </lst> </lst> </response>
確認
ブラウザで確認したら、Recoverring状態でした。
LeaderのSolrを再起動したら、全てActiveになり、再度Server1のSolrをstopしたら、leaderが変更されたのを確認しました。
各サーバーのデータディレクトリの中に、 test_shard1_replica1 test_shard1_replica2 test_shard1_replica3
がそれぞれ作られました。
データを入れた検証はまた今度。
Solr Cloud 調査編 Ⅱ
前回に引き続き、Solr Cloudでわかったことを記録しておきます。 メモレベルですので、あまり詳しくはありません。 bin/solr startすると bin/solr.in.shを読んで起動してます。
下記のリンクの方の構成はAWSのEC2で作られていますが、設定ファイル以降は似たようなものなので、間違いではなさそうかなぁと。
Tutorial – Deploying Solrcloud 5 on Amazon EC2 | Blog of France Labs on Search technologies bin/solr.in.shで編集するとこ。
ZK_HOST= "<Solr1_IP>:2181, <Solr2_IP>:2181, <Solr3_IP>:2181" SOLR_HOME='Solr ホームディレクトリのパス' SOLR_PORT=8983</br> SOLR_MODE=solrcloud</br>
あとは、zkcli.sh を実行するように書いてあるので、下記のホスト名を自分の環境に合わせて、変更したら行けるのではないかと思ってますが、まだできてません。
cd server/scripts/cloud-scripts ./zkcli.sh -zkhost <Solr1_IP>:2181,<Solr2_IP>:2888,<Solr3_IP>:2888 -cmd upconfig -confdir /home/admin/solr-5.1.0/server/solr/configsets/basic_configs/conf -confname myconfig
coreとなるフォルダと設定ファイルを全てのサーバーに用意すれば、行けるのではないかという現状の推測です。
AWSのセキュリティ対策
AWSのセキュリティ対策について
ISO7階層モデル
各階層でのAWS対策
まず、ISO7階層モデルというものがあります。 L7:アプリケーション L6:プレゼンテーション L5:セッション L4:トランスポート L3:ネットワーク L2:データリンク L1:物理 ソフトウェアでの制御がL4より上 ハードウェアとネットワークでの制御がL3より下 になります。 ■L1、L2はユーザは何もしなくていいのです。 これはAWSのデータセンターで働いてる人がなんとかしてくれてます。 ■L3の領域は VPCで対策ができます。
■L4の領域は セキュリティグループで守ります。 サブネット同士間のファイアーウォールのみ許可したりします。
■L5の領域は SSL サーバー証明書を設置する対策です。 管理方法は2つ ①CertificateManger ②IAM 設定箇所は3つ ①CloudFront ②EC2 ③ELB ELBにSSLを設置する項目として2つあります。 ①証明書 ②SSL Ciphers Ciphersとは、どのような暗号アルゴリズムを使うかを決めます。 バージョンはSSLv2を使います。 SSLv3があったけど、脆弱性があったので使用しません。
基本EC2に繋ぎたいならパブリックIPは付与せず、ELB経由で繋ぐこと。
どうしてもEC2にGlobalで繋ぎたかったらVPN接続をすること。
というルールを守るとかなりセキュアになります。
AWSの4/19リリースについて
シカゴであったAWS SUMMITで発表があったそうなので、リリースノートに書いてあった内容をまとめます。
AWS SDK for Java 1.10.70 : Release Notes : Amazon Web Services 1. S3
リージョンをまたいだ転送速度が早くなりました。 例えば、東京リージョンで運用しているデータを、シンガポールリージョンに転送することでDR対策とすることがスムーズに行えるようになります。
AWS Storage Update – Amazon S3 Transfer Acceleration + Larger Snowballs in More Regions | AWS Blog
2. Snowball ケースに入れて安全に運ぶサービスですが、今まで50TBだったのが80TBに変わりました。 US East (N. Virginia), US West (Oregon, N. California), EU (Ireland), Asia Pacific (Sydney), and AWS GovCloud (US) のりージョンで利用開始しました。 他のリージョンも今年中らしいです。
Shipping Considerations for AWS Snowball - AWS Import/Export
- CodePipeline
Codecommitと繋げれるようになり、 →Cl→codepipelineという流れで実装できるようになりました。
- Beanstalk
yum updateみたいなものが自動的に実行されるようになり、脆弱性についての問題の為にユーザがメンテナンスする時間を減らせます。 セキュリティ対策を自動で行ってくれるのはいいですね www.publickey1.jp
- Inspector リージョンが増えました。 eu-west-1, us-east-1, ap-northeast-1
東京リージョン来ました! 6. EBS
スループット最適化HDD(st1) – 高スループットを必要とするワークロード(MapReduce、Kafka、ETL処理、ログ処理、データウェアハウスなど)向けのタイプ; 1GBあたり月額0.054ドル
コールドHDD (sc1) – 同様のワークロードでアクセス頻度が低いユースケース向け; 1GBあたり月額0.03ドル シーケンシャルリードに特化し、ブロックサイズを大きくして、転送量を上げたようです。 ボリュームタイプは磁気ディスクです。 Amazon EBSのアップデート – 新たなスループット最適化ボリュームとコールドボリューム | Amazon Web Services ブログ
- Cognite
今までGoogleやFacebookのアカウントを使用して、スマホアプリからのログイン認証(シングルサインオン)を行ってましたが、 Cognite単体でログイン認証ができるようになりました。
OktaやAzureの認証との競争になりそうです。 [New] Amazon Cognito 向け User Pools | Amazon Web Services ブログ 8. Kinesis firehorce
今までlambdaに実行スクリプトを書いてDBにデータを入れてましたが、 Kinesisから直接 ElasticSearchに送れるようになりました。 IoTとして各デバイスからKinesis→ElasticSearchという流れをくめるので、データの可視化がすごく簡単になります。 Amazon S3 | Amazon Web Services ブログ
Poderosaで複数のターミナルに対して同じコマンドを同時に実行する方法
僕はWindows使ってるんですけど、 Macの人が複数のターミナルに同時にコマンド打ってるのを見て、 WindowsのPoderosaでもできないか調べたら、 ありました!
http://tiida.cocolog-nifty.com/netblog/download/rmainte358.zip
こいつを解凍して、インストールフォルダに入れるだけ。 これは便利だ! Poderosaで開いている複数のターミナルに対して同じコマンドを同時に実行する方法 kakakikikekeのブログ: Poderosaで開いている複数のターミナルに対して同じコマンドを同時に実行する方法
Solr Cloud 調査編 Ⅰ
Solr Cloudがうまく動作出来てませんが、設定ファイルややってみたことを書いていきます。
ver.4.10.4です。 前回作ろうとしてできなかったレプリカを設定できるようにするため、設定ファイルを修正します。
Solrの設定ファイルは、 solrのホームディレクトリ直下の solr.xml
中身はこちら
<solr persistent="false"> <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:8983}" hostContext="${hostContext:solr}"> <core name="core0" instanceDir="core0" /> <core name="core1" instanceDir="core1" /> </cores> </solr>
Solrを起動して、Add Coreした場合、 coreタグのところに追加されていきます。
ちなみにver.5.5.0の場合は、
<solr> <solrcloud> <str name="host">${host:}</str> <int name="hostPort">${jetty.port:8983}</int> <str name="hostContext">${hostContext:solr}</str> <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool> <int name="zkClientTimeout">${zkClientTimeout:30000}</int> <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int> <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int> </solrcloud> <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory"> <int name="socketTimeout">${socketTimeout:600000}</int> <int name="connTimeout">${connTimeout:60000}</int> </shardHandlerFactory> </solr>
全然違います。(・へ・)
あと、データ用ディレクトリの 各coreディレクトリ/conf/ の中に solrconfig.xml があります。 長いので載せませんが、 dataDirは指定すること あとはまだよくわかってません。 curlでsolrに対して叩けば、solrconfig.xmlが変更されていくのかなという感じです。 このファイルが重要な気がします・・・。
5.5.0やってみた
coreを作ります bin/solr create -c test1 -d /opt/solr-5.5.0/server/solr/configsets/basic_configs/conf/
実行結果
Copying configuration to new core instance directory: /opt/solr-5.5.0/server/solr/test1 Creating new core 'test1' using command: http://localhost:8983/solr/admin/cores?action=CREATE&name=test1&instanceDir=test1 { "responseHeader":{ "status":0, "QTime":2642}, "core":"test1"}
coreを削除するとき
bin/solr delete -c new_core Deleting core 'new_core' using command: http://localhost:8983/solr/admin/cores?action=UNLOAD&core=new_core&deleteIndex=true&deleteDataDir=true&deleteInstanceDir=true {"responseHeader":{ "status":0, "QTime":0}}
bin/solr create -help とすると、 createにhelpオプションないから、 create_core -help create_collection -help にしてねって怒られます。
ブラウザでcoreができたのを確認しました。