CloudFrontの料金

CloudFrontの料金を見てみましょう。
cloudfront

ページ中段のオンデマンド料金(GB単位)
10TBまで 0.110USD
10TB-50TB 0.105
50-150TB 0.090
150-500TB 0.08
500TB-1024TB 0.060
1PB-5PB 0.050
5TB超 0.04
ん? GB単位ってことは、3GBで3.4USDくらい!? なんかCDNにしては高いような気がする。

HTTPメソッドのリクエスト料金 1万件あたり0.060USD
100万リクエストで6ドル? 100万リクエストなんて、直ぐに行くでしょうから、これもそこそこ高いような。。

専用IPカスタムSSL 毎月600ドル
SSL証明書だと、ものによるが、1年で数万もかからないのに、謎に高いな。
CRSなんて簡単につくれるのに、いやーなビジネスのにおいがしますね。

オリジンサーバーからCloudFrontへオリジンフェッチ
エッジロケーションへのデータ転送が無料? 

Webソケットは無料
インターネットでは、TCP/IPと呼ぶ通信プロトコルを使用するが、そのTCP/IPを利用するには特別な出入り口が必要なる。その出入口がソケット
電話番号や郵便のようなイメージ

ソケット通信を使用すると、HTTPよりも下を使用することができる。
なんか、Cloudfrontとは別の話になってしまいましたね。

aws athenaの使い方

athenaとは: S3でのデータの直接分析を簡易化

AWSのヘッダから[サービス]を押下すると、AWSのサービス一覧が表示されます。
athenaは分析の下にあります。

以下のように記載があります。petabyteは凄いですね。ペタバイトは1024テラバイト、1兆バイトです。
>Amazon Athena is a fast, cost-effective, interactive query service that makes it easy to analyze petabytes of data in S3 with no data warehouses or clusters to manage.

get startedを押下します。
To query the ELB log files, you need to define a corresponding table in Athena.
ELBに対応するテーブルを定義する必要がある。

database, table nameは適当。
Location of input data setにs3のURLを入れる
s3://athena-examples-us-east-1/path/to/data/

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs (
  `Date` DATE,
  Time STRING,
  Location STRING,
  Bytes INT,
  RequestIP STRING,
  Method STRING,
  Host STRING,
  Uri STRING,
  Status INT,
  Referrer STRING,
  os STRING,
  Browser STRING,
  BrowserVersion STRING
  ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
  WITH SERDEPROPERTIES (
  "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$"
  ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';

ELBのログって書いてあるけど、table nameはcloudfrontだ。何故だ??

エンジニアがamazon欲しい物リストを考えるとこうなる

欲しい物リスト
http://amzn.asia/0W51meS

基本物欲ないからなーーーーー 特に欲しい物ない。。
なんだろーほんとにないな。 

1位:macbook pro 123,984円 i5, 256GBくらいあれば良し。
欲しい。

2位:コーヒーメーカー 18,800円
うーん、まずまず欲しいかも。

他は。。。

そんなものかなー
絞りだしても出てこないなー
むしろ、なんか捨てたいなー。。

うーん、ないぞ。むしろ、財布はノーブランドにグレードダウンしたい。
しかし、やすっぽい財布もなかなかないなー

ということで、結論、欲しい物リストはそんなにない。

こんな感じ http://amzn.asia/0W51meS

Amazon Athena(アテナ)

即時にデータのクエリを実行。数秒で結果取得、料金は実行したクエリに対してのみ。
https://aws.amazon.com/jp/athena/

まず読み方がわからない
Athenaでアテナと読む。アセナと間違える。。

aws athenaのチュートリアル
step1 データベースを作成
step2 テーブルを作成
step3 データをクエリする
athenaでcloudfront_logsテーブルを作成したら、このテーブルに対してクエリを実行して、athenaで結果を確認できる

ん? step3が重要か? データベース作成、テーブル作成は普通のRDB操作と何もかわらんぞ。
では、実際にクエリを書いていきましょう。

Git ソースツリー(source tree)とは

Git操作はコマンドラインではなかなか作業が見にくいのですが、Git ソースツリーでは、今誰が、どのファイルを、どのように編集しているかを視覚化して見えやすいようにすることができます。

細かい操作はコマンドの方が早い などのデメリットもあるようです。

半角スペースの自動削除

<!DOCTYPE html>
<html lang="ja">
<head>
	 <meta charset="UTF-8">
	 <title>space</title>
</head>
<body>
	<div> 前後に半角スペース </div>
	<p> pタグ前後に半角スペース </p>
	<table>
		<tr>
			<td> 前後に半角スペース </td>
		</tr>
		<tr>
			<td> 前後に半角スペース </td>
		</tr>
	</table>
</body>
</html>

ん? 文頭の半角スペースは消えるが文末の半角スペースは残ってる?
なに? 期待値とちょっと違うな。。

Google FormのURLを他のユーザーに送る

割と簡単にできます。
(1)Google Formをつくる
(2)画面右上の「送信」ボタンをクリックします。

(3)ポップアップが表示されたら、メールアイコンの横のリンクアイコンをクリックします

(4)リンクURLが表示されます

ElasticIPとPublicIP

プライベートIPv4は、インターネットから到達できないIP
プライベートIPv4は、同じネットワーク内のインスタンス間の通信に使用

RFC1918

パブリックIPアドレス インターネットから到達可能なIPv4アドレス
インスタンスとインターネット間で通信するにはパブリックアドレスを使用

Elastic IPアドレス(IPv4) : アカウントに割り当てることができるパブリックIPv4アドレス
IPv6アドレス:IPv6 CIDRブロックをVPCと関連付けることができる

プライベートIPは、要するに1つのインスタンスから別のインスタンスに接続する際に使用するIPアドレス

プライベートIPとパブリックIPはサーバを再起動すると変わるが、ElasticIPは固定できる。

RSA秘密鍵、CSR、CRTの配置

/etc/pki/tls 配下にca.crt, ca.key, ca.csrを配置していく

[vagrant@localhost ssl]$ sudo cp ca.crt /etc/pki/tls/certs/
[vagrant@localhost ssl]$ sudo cp ca.key /etc/pki/tls/private/
[vagrant@localhost ssl]$ sudo cp ca.csr /etc/pki/tls/private/

restorecon (RERSTORE files default selinux security CONtext)
正しいセキュリティコンテキストを付与する

[vagrant@localhost ssl]$ restorecon -RvF /etc/pki/
restorecon reset /etc/pki/dovecot/certs/dovecot.pem context unconfined_u:object_r:dovecot_cert_t:s0->system_u:object_r:dovecot_cert_t:s0
restorecon set context /etc/pki/dovecot/certs/dovecot.pem->system_u:object_r:dovecot_cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/dovecot/private/dovecot.pem context unconfined_u:object_r:dovecot_cert_t:s0->system_u:object_r:dovecot_cert_t:s0
restorecon set context /etc/pki/dovecot/private/dovecot.pem->system_u:object_r:dovecot_cert_t:s0 failed:’Operation not permitted’
restorecon: unable to read directory /etc/pki/rsyslog
restorecon reset /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/java/cacerts context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/java/cacerts->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/source/ca-bundle.legacy.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/source/ca-bundle.legacy.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon: unable to read directory /etc/pki/CA/private
restorecon reset /etc/pki/tls/certs/ca.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/certs/ca.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/certs/localhost.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/certs/localhost.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/private/localhost.key context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/private/localhost.key->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/private/ca.key context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/private/ca.key->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/private/ca.csr context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/private/ca.csr->system_u:object_r:cert_t:s0 failed:’Operation not permitted’

なんだこれは?

openssl x509でRSA秘密鍵、CSRから証明書(CRT)を作成する

まつ、csrと秘密鍵がある状態です。
[vagrant@localhost ssl]$ ls
ca.csr ca.key

CRTファイルとは??
CRTファイルは、SSL証明書会社が、CSRファイルに情報を付加して秘密鍵で暗号化したもの。サーバー証明書などと言われる。
証明書会社の秘密鍵に対応する公開鍵は各ブラウザに内蔵されているため、CSRファイルの内容を安全に送信できる。

openssl x509: 秘密鍵で自己署名した証明書を作成する

[vagrant@localhost ssl]$ openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
Signature ok
subject=/C=ja/ST=tokyo/L=shibuya/O=hpscript/OU=developement/CN=hpscript/emailAddress=info@hpscript.com
Getting Private key

まじか!!!!!!!!!!!!!!!