Hatena::ブログ(Diary)

ablog このページをアンテナに追加 RSSフィード Twitter

2017-06-14

AWS クラウドアーキテクチャのベストプラクティス

AWSにおけるシステム構築の10個のベストプラクティス

  • 性能/可用性/コスト(運用含む)に集約される


Well Architected Framework

優れたアーキテクチャの五本柱

一般的な設計原則


運用性のための設計原則


チェック項目(EXCEL

AWSアカウント管理

  • AWS Organizations

  • Consolidated Billing

コスト配分タグ


AWS Config
  • AWS Configでタグの付いていないリソースをチェックすることができる。
請求アラート


Cost Explorer


請求レポート



ディレクトリサービス

ネットワーク

EC2のネットワークパフォーマンス
  • SR-IOV
  • 拡張ネットワーキング
  • プレイスメントグループ
  • ジャンボフレーム
  • プレイスメントグループ
HPC
VPN

Direct Connect
  • 1/10Gbps
  • 802.1Q、1500byte MTU
  • eBGPピア接続
  • プライベート/パブリック仮想インターフェース(VIF)
  • シングル/デュアル DX/CGW

オンプレとAWS間の名前解決

グローバルトランジットネットワーク

デプロイ管理
  • Beanstalk など

データベース移行


大規模アプリケーション


ホワイトペーパー

2017-06-13

Kinesis Stream でシャードへの分散具合を見てみる

Kinesis Stream で10シャードのストリームを作って、1000件PUT(パーティションキーに 1〜1000の連番を指定)してみてだいたい均等に分散することを確認してみた。


$ aws kinesis create-stream --stream-name shard10 --shard-count 10
  • 確認する
$ aws kinesis list-streams
{
    "StreamNames": [
        "shard10"
    ]
}
$ for i in {1..1000}
do
aws kinesis put-record --stream-name shard10 --partition-key $i --data testdata
done > kinesis_put1000.log
  • シャードへの分散具合を確認する
$ perl -lane '/(shardId-[\d]+)/ and $h{$1}++;END{map {print qq/$_: $h{$_}/} sort(keys(%h))}' kinesis_put1000.log
shardId-000000000000: 119
shardId-000000000001: 96
shardId-000000000002: 95
shardId-000000000003: 87
shardId-000000000004: 98
shardId-000000000005: 102
shardId-000000000006: 101
shardId-000000000007: 96
shardId-000000000008: 99
shardId-000000000009: 107
$ aws kinesis delete-stream --stream-name shard10

参考

2017-06-06

消えたDB Time を追え (DB Time > CPU Time + Wait Time になるケース)

  • CPU のランキュー待ち
  • ページイン時のディスクI/O待ち(メジャーフォルト)
  • AIX on Power 7 SMT である条件下で発生するケース
    • 問題ではなくCPU時間や使用率の計上の仕方により発生する
  • トレースファイルに書くのに時間を要してるケースいるケース