EC2の起動からSSH接続までの一連の流れ

### 前提条件
– MFA認証のIAMユーザ作成済
– VPC、public subnet、InternetGateway、RouteTable作成済
– セキュリティグループ作成済
– Key Pairsで秘密鍵・公開鍵作成済

### EC2
1. launch instance
2. Amazon Linux 2 AMI (HVM), SSD Volume Type 64bit(x86)
3. Choose instance type
4. networkで作成したVPC、public subnetを設定(InternetGateway紐付け済)
  Auto-assign Public IPをenableにする disableのままだと、privateしか割り当てられない
5. storage sizeはdefaultの8GiB
6. Add tag: keyにdev, valueにdev-testとする
7. Configure Security Groupで作成したsecurity groupを紐付け(ssh許可)
8. 作成したkey pairを選択
※VPCのDNS resolution、DNS hostnamesがEnabledになっていることを確認。desabledの場合はactionで変更。instanceを再起動

接続

ssh ec2-user@${public ip} -i  ~/.ssh/***.pem

cyberduckでも同様に、ssh-private keyで.pemを指定すると、接続できる。

お、お、お、お疲れ様でしたー

EC2のKey Pairs作成(mac編)

### Key Pairs作成
– EC2のleft paneのNetwork & Security -> Key Pairsを選択
– Create key pair
– Name: aws-dev(file formatはpem)

### macの.sshに保存
$ pwd
/Users/${username}
$ ls -a
$ cd .ssh
$ ls
aws-dev.pem

アクセス権限の変更: オーナーのみ読み出しができる400(所有者:R)
$ sudo chmod 400 aws-dev.pem 
$ ls -l
-r——–@

pemファイルは秘密鍵
流れとしては
1. ssh接続要求
2. aws側でランダムデータを生成し、公開鍵を使ってクライアントに送る
3. 受け取ったクライアント側は秘密鍵でデータを復号化して送り返す
4. aws側でランダムデータと受け取った復号化データを比較して認証する

このような仕組みから、key parisはAWSで生成するのではなく、ローカルマシンでの生成が望ましい。
$ ssh-keygen -t rsa -f hoge.pem

linux timezone変更手順

$ date
$ cat /etc/localtime
TZif2UTCTZif2?UTC
UTC0
$ sudo cp /etc/localtime /etc/localtime.org
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ sudo cp /etc/sysconfig/clock /etc/sysconfig/clock.org
$ sudo vi /etc/sysconfig/clock

ZONE="Asia/Tokyo"
UTC=false

$ strings /etc/localtime
$ date

php build-in serverでhttpsサーバーを起動

ローカル環境で、httpsの挙動を確認したい時に使えるのが、hyper-builtinというライブラリ
https://github.com/mpyw/php-hyper-builtin-server

opensslでサーバー証明書を生成し、composerでhyper-builtinを入れて起動
※下はawslinuxだが、centosでも同様

### sslモジュールインストール(centOSの場合はmod_ssl)
$ sudo yum install mod24_ssl
$ httpd -M | grep ssl

### 秘密鍵作成
$ openssl genrsa > server.key

### CSR作成
$ openssl req -new -key server.key > server.csr

### サーバー証明書作成
$ openssl x509 -req -signkey server.key < server.csr > server.crt
$ rm server.csr

### 秘密鍵&サーバー証明書配置
$ sudo mkdir /etc/httpd/conf/ssl.key
$ sudo mkdir /etc/httpd/conf/ssl.crt
$ sudo mv server.key /etc/httpd/conf/ssl.key/
$ sudo mv server.crt /etc/httpd/conf/ssl.crt/

### ssl.conf編集
sudo vi /etc/httpd/conf.d/ssl.conf

# SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
# SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

### apache再起動
$ sudo service httpd restart

### composerでhttps用のphp buildin-server libraryインストール
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar require –dev mpyw/php-hyper-builtin-server:^2.0

### httpsサーバー起動
$ vendor/bin/hyper-run -s 192.168.33.10:8000

うおおおおおおおおおおおおおお、めんどくせええええええええええええ
これ、playbook.ymlで一括管理してーーーーーーーーーーーーー

EC2のCPUはインテル? AMD?

EC2ってiシリーズ使ってるの?
AMDのEPYCを使っているらしい。x86-64マイクロプロセッサ
EPYCのシリーズをみるとL1, L2, L3をみると、L3が拡大化してるな。
—-
Amazon Elastic Compute Cloud (Amazon EC2) は、安全でサイズ変更可能なコンピューティング性能をクラウド内で提供するウェブサービスです。開発者がウェブスケールのクラウドコンピューティングを簡単に利用できるように設計されています。 AWS は、AMD とのパートナーシップを通じて、最も広くかつ深いインスタンスポートフォリオを強化する追加的な EC2 インスタンスを提供し、ワークロード要件に対するコストとパフォーマンス両方の最適化を実現します。
—-
AMD EPYC プロセッサ
Amazon EC2 インスタンスには現在、全コアターボのクロック速度が 2.5 GHz の AMD EPYC 7000 シリーズプロセッサが搭載されています。AMD ベースのインスタンスは、お客様に新たな選択肢を提供します。コンピューティングリソースが十分に活用されていない多くのワークロードに、よりぴったりなものが見つかる可能性があります。コンピューティングリソースと使用率の間のバランスを最適化することにより、これらのインスタンスでは類似のインスタンスと比べコストを 10% 節約できます。
——
https://aws.amazon.com/jp/ec2/amd/

あれ、GCPもAzureもEPYC? これまじ?
Intelじゃなくて、CPU=AMDなんだ。。

AWS AMI

AMIは”Amazon Machine Image”の略。
AMIはインスタンスのルートボリュームのテンプレートが含まれ、インスタンスの丸ごとバックアップが取れる。

EC2のイメージの作成からAMIを作成する

AMIをローンチすると、EC2が立ち上がる。
なるほど、これは凄い便利ですねー

AWS MFA(多要素認証)

– AWSのアカウント申請お願いします
→ 終わりました、MFA認証しといてね
→ え、MFAって何?
→ は? 自分で調べろよ
→ 。。。

よくある会話ではないでしょうか? ということでして、AWSのMFAを調べます。
https://aws.amazon.com/jp/iam/details/mfa/

AWSのページだと、IAM配下にありますね。
MFA (Multi-Factor Authentication)は、ユーザーとパスワードに加えて、保護レイヤーを追加。サインインする際に、認証コードの入力が必要になる。

MFAのフォームファクタ
– 仮想MFAデバイス
– ユニバーサル第2因子(U2F)セキュリティーキー
– キーホルダータイプのMFAデバイス
– ハードウェアのディスプレイカードMFAデバイス
– SMS MFAデバイス(プレビュー)
– ハードウェアのキーホルダータイプ MFAデバイスAWS GovCloud向け
なんだこれは?とりあえず、SMS MFAデバイスのことか??

公式のポリシーサンプル

{
	"Version": "2012-10-17",
	"Statement": [{
	  "Effect": "Allow",
	  "Action": "["ec2:*"]",
	  "Resource":["*"],
	  "Condition": {"NumericLessThan": {"aws:MultiFactorAuthAge": "3600"}}
	}]
}

ん?

{
	"Version": "2012-10-17",
	"Statement": [
	{
		"Sid": "AllowAllActionForEC2",
		"Effect": "Allow",
		"Action": "ec2:*",
		"Resource": "*"
	},
	{
	    "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent",
	    "Effect":"Deny",
	    "Action" : [
	    	"ec2:StopInstances",
	    	"ec2:TerminateInstances"
	    ],
	    "Resource": "*",
	    "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": false}}
	}
	]
}

EBS、インスタンスタイプの最適化

AWSのEC2のインスタンスタイプやEBSを見直したいとする。さて、どこから見直す?

まず、現状を調べるところから。
モデル、VCP, CPUクレジット、メモリ(GiB), ストレージからか。
現状把握 → 検証方法検討 → パフォーマンス測定 → レビュー → インスタンスタイプ・EBS変更 → 事後レビュー
こんなところか。 

rtc_cmos: probe of rtc_cmos failed with error -16

rtc_cmos: probe of rtc_cmos failed with error -16

Error related to time synchronization at OS startup

https://forums.aws.amazon.com/thread.jspa?threadID=87634

Re: Linux EC2 instance unresponsive! crashed?
Posted by: msloc016
Posted on: Feb 23, 2012 2:15 PM
in response to: msloc016 in response to: msloc016
 	Click to reply to this thread	Reply
I did just see that logwatch gave me this:

WARNING: Kernel Errors Present
http://2230098.568434 rtc_cmos: probe of rtc_cmos failed with error -16 ...: 1 Time(s)
http://8424538.017762 rtc_cmos: probe of rtc_cmos failed with error -16 ...: 1 Time(s)
Don't know if that means anything to anyone.

なるほどな、コミュニティのスレッドで調べるのか、勉強になります。

backup and recovery approach using AWS

Durability
Use 99.999999999% durability of safe storage of data provided by Amazon S3.

Security
Use flexible access control applicable to data transfer and storage and various encryption options.

Global infrastructure
Since it can be used all over the world, will use regions that comply with organization’s compliance requirements, local laws and regulations, standards etc.

Compliance
Since AWS complies with various security standards around the world including SOC, ISO 27001, PCI DSS, etc., it is possible to easily match the backup mechanism to existing compliance standards.

Scalability
Since a storage area that automatically changes according to the size of the backup data is provided, there is no need to manage the storage capacity

Reduced TCO
By using full managed services, operation costs are reduced, leading to a reduction in the total cost of ownership(TCO) of backup storage.

Price based on metered basis
Since it is a usage fee based on the used capacity and duration, a life cycle plan is set so that only data necessary for backup and recovery plan is saved.