2019年9月13日金曜日

ロードバランサー作成方法



1)ロードバランサーの作成を選ぶ。


2)今回は、Application Load Blancerを選択する。


3)ロードバランサーの設定を行う
①入力する
②今回、インターネット向けにする
③セキュアを考慮して、HTTPSにする
④アベイラビリティゾーン、適度に設定する。

4)証明書の設定

上記で、リスナーをHTTPSの設定にしているので
証明書の設定を行う。



5)証明書のリクエスト

以下で行う。

メモ:(ACMの料金について)
ACM プライベート認証機関(CA)は 2 つのディメンションで料金設定されています。 
各プライベート CA を削除するまでのオペレーション月額料金と
各月発行するプライベート証明書の料金をお支払いただきます。








リードレプリカとは


この図のように、リードレプリカを複数台設置させることで、読み込みが多いサービスではデータベースに1つにかかる負荷を削減させ、
データベースの負荷分散をすることができます。

参照ページ:



サービスロールの作成(コンソール)


ロールの作成を選ぶ。

AWSサービスを選択

①CodeBuild            :CodeDeploy
②ユースケースの選択:CodeDeploy







インスタンスの削除について



①削除対象のインスタンスを選択
②アクションを押す
③インスタンスの状態を選択
④終了を選択。

注意:
インスタンスの状態がterminatedになって削除完了。
削除されたインスタンスは、数日残る状態になる。







SSL/TSL証明書の発行



1)以下の証明書のプロビジョニングを選択する。

メモ:(ACMの料金について)
ACM プライベート認証機関(CA)は 2 つのディメンションで料金設定されています。 
各プライベート CA を削除するまでのオペレーション月額料金と
各月発行するプライベート証明書の料金をお支払いただきます。



2)署名書のリクエストを押す。

4)登録対象のドメイン名を記載する。

5)検証方法の選択
DNSの検証を選択して、確認を押す。

6)確認画面
問題ないような[確認とリクエスト]を押す


7)検証中の画面
問題ないようなら、[続行]を押す。
   ->この先が進まないので一旦検証終了。
(作成途中の証明書は削除した。)







RDS オートスケーリングの設定


RDSのストレージの空き容量が少なくなってくると自動で増やしてくれるストレージの自動スケーリング
(冗長構成ではない)

注意点:
データベースの空き容量が不足していると検出されてストレージが自動拡張される
  • 使用可能なスペースが割り当てたストレージの10%未満
  • ストレージが不足した状態が少なくとも5分継続する


RDS > データベース 

①対象のDBを選択する。
②変更を選ぶ

以下のストレージの自動スケーリングにチェックを入れる


適応するのに、以下の設定が必要

①変更を適応する時間:運用中はこれのが良いかも
②すぐに適応:運用に支障がないなら良い



AWS見積もり方法について

1)以下の見積もりサイトに移動。

①言語変更
②見積もり箇所
③リージョンウィ選択
④各種機能の選択



[インスタンスについて]


■インスタンスの参照方法

<インスタンスファミリー>
①T[ ]  /M[ ]   : 汎用
 ->CPU・メモリ・ネットワークの各リソースのバランスが良い
②C[ ]  : コンピューティングに最適化
③R[ ] /X[ ]   : メモリ最適化  
 ->メモリが大きいタイプなので、大規模なアプリケーションやDB(特にインメモリDB)サーバ用  
④P[ ] / G[ ] /F[ ]   : 高速コンピューティング
 ->GPU搭載型のインスタンス
⑤H[ ] / I[ ] / D[ ]
 ->ストレージ容量が大きいタイプ

注意:インスタンススペックの変更には、システム停止が必要。

<インスタンス種類 例:>
汎用
t2.nano
m5.large
m4.large
m3.medium

■コンピューティング最適化
c5.large
c4.large
c3.large        

■メモリ最適化
x1e.xlarge
x1.16xlarge
r4.large
r3.large

■高速コンピューティング
p3.2xlarge
p2.xlarge
g3.4xlarge
f1.2xlarge

■ストレージの最適化
h1.2xlarge
i3.large
d2.xlarge


インスタンスサイズ  
     ->スペックを指す。


[AWS  RDS]
■汎用 :T3 /T2 /M5 /M4
 ->字のごとく、汎用向け。

T3
 ->T3インスタンスはバランスの取れたコンピューティング、メモリ、およびネットワークのリソースを提供し
使用中に一時的なスパイクが生じる中程度の CPU 使用率を持つデータベースワークロード向けに設計されています。

T2  [無料枠対象]
 ->T2 インスタンスは、マイクロサービス、テストおよびステージングデータベースなど
さまざまなデータベースワークロードに適しています。

M5
->バランスの取れたコンピューティング、メモリ、およびネットワークのリソースを提供し
さまざまなデータベースワークロードに適しています。

M4
->オープンソースまたはエンタープライズアプリケーション用の小規模および中規模データベースを含む
さまざまなデータベースワークロードに適しています。


■メモリ最適化 :R5 /R4 /X1e /X1 /Z1d
 ->ハイパフォーマンス向けかな。

R5
->R5 インスタンスは R4 と比較して GiB ごとの価格が 10% 低く
CPU パフォーマンスも最大 20% 高くなっています。

R4
->メモリ負荷の高いデータベースワークロード向けに最適化されており
RAM GiB あたりのメモリ価格が R3 よりも安価です。

X1e
->X1e インスタンスは、Amazon RDS のインスタンスタイプの中でも 
RAM 1 GiB あたりの価格が最も低いインスタンスのひとつです。

Z1d
->クラウドインスタンスの中で最も高速で、コア単位のライセンス費用が高い
リレーショナルデータベースワークロードに最適です。



Amazon S3

以下、ストレージタイプ比較
ストレージクラス
概要
標準
デフォルトのストレージクラス                                 
標準-IA
S3 標準に比べオブジェクト格納料金が安価。ただしデータの読み出しに対して課金あり
Intelligent-Tiering
コストの異なる低頻度/高頻度の2階層ありオブジェクト別にアクセス頻度に応じて自動で階層移動。30日間アクセスがないオブジェクトは低頻度層に移動し、アクセスがあると自動的に高頻度層に移動
1ゾーン-IA
S3 標準-IAよりも安価。データの冗長率が低く、またデータの読み出しに対して課金あり
Glacier
とても安い(S3標準と比較しデータ格納料金は1/5)だがデータの読み出しに課金および数分~数時間がかかる
Glacier Deep Archive
S3 Glacierより安く最も低コストだがデータの読み出しに課金および長時間(12時間以内)かかる

リクエスト料金は以下の通りです。
ストレージクラス
S3Selectによって返されたデータ
S3Selectによってスキャンされたデータ
PUT、COPY、POST、LISTリクエスト/1000リクエスト毎
他リクエスト/1000リクエスト毎
データ取り出し
標準
$0.0008/GB
$0.00225/GB
$0.0047
$0.00037
-
標準-IA
$0.01/GB
$0.00225/GB
$0.01
$0.001
$0.01/GB
Intelligent-Tiering
$0.0008/GB
$0.00225/GB
$0.0047
$0.00037
-
1ゾーン-IA
$0.01/GB
$0.00225/GB
$0.01
$0.001
$0.01/GB
Glacier(例:スタンダード版)
$0.005/GB
$0.0092/GB
$0.0571
$0.0571
$0.011/GB
Glacier Deep Archive
(リリース前のため未確定)
(リリース前のため未確定)
(リリース前のため未確定)
(リリース前のため未確定)
(リリース前のため未確定)




aws-cli インストール for Mac

■pythonのインストールについて

①homebrewのインストール
/usr/bin/ruby-e"$(curl-fsSL

②ppythonの開発環境をインストール
brew install pyenv

③以下、環境変数の設定を行う
echo'exportPYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo'exportPATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo'eval"$(pyenvinit-)"'>> ~/.bash_profile

④python3をインストール
pyenv install 3.6.7

⑤バージョンの変更を行う。
pyenv global 3.6.7


■aws-cliのインストール
前提条件:python3以上を入れていること。

①インストーラーをダウンロード
②解凍を行う
unzip awscli-bundle.zip
③インストールプログラムを実施
sudo ./awscli-bundle/install-i/usr/local/aws-b/usr/local/bin/aws
④以下でバージョンの確認をする。
aws--version




■AWS側とコマンド連携を行う


1)アクセスキーの作成を選択する。


2)csvファイルのダウンロードをしておく。


3)aws configureを入力する。
Key ID               :上記で作成したのを参考に記載
Access Key       :上記で作成したのを参考に記載
region name     :ap-noetheast-1     <-日本の場合、これで良いみたい。
output format   :text        <-"text","JSON","table”の3つ選べます。




AWS アラート関連(slack編)


参照先

①CloudWatchでアラートを登録する
   ->通知先のメールアドレスも設定できていること。

②slackで拡張機能を追加する。
   ->「IncomingWebHooks」を「Add Configuration」を押して、追加します。









AWS sshにより接続するまでの手順

1)ダウンロードした、pemファイルの修正を行う。
   ->(変更前)okay-test.pem.txt (変更後)okay-test.pem 


2)アクセス権の変更を行う。
chmod 400 okay-test.pem 


3)接続を行う。
ssh-i"okay-test.pem"ec2-user@パブリックDNS(IPv4)の箇所を記載。






EFS(Dockerfile)の記載について注意

  Dockerfileにefsのマウントパス宛に、ファイルコピーを行うと ECSのサービス作成時に、コンテナのデプロイ失敗に(container run time error)になるので 別経由で、EFSにファイルをコピーした方が良い!! <Dockerfile> ...