.zshrc
に alias を登録するだけ
alias aws='docker run --rm -i -v ~/.aws:/root/.aws -v $(pwd):/aws --env AWS_PAGER="" amazon/aws-cli'
当然 docker などがインストールされている必要がある。
.zshrc
に alias を登録するだけ
alias aws='docker run --rm -i -v ~/.aws:/root/.aws -v $(pwd):/aws --env AWS_PAGER="" amazon/aws-cli'
当然 docker などがインストールされている必要がある。
バケットに接続できる IP を絞りたいことがある。バケットポリシーを記載することで制御可能なので方法を紹介。
ブロックパブリックアクセスはすべてオフにする
バケットポリシーの設定は以下の通り
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::tsukada-hoge-js",
"arn:aws:s3:::tsukada-hoge-js/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"1.1.1.111/32",
"2.2.2.222/32"
]
}
}
}
]
}
ポイントとして、
Resource にバケット自体を宣言するのとは別にバケット配下を /*
でワイルドカードで指定する必要があるという点だ。
EBS はストライピングすることができ、最大で 60,000 MB/s を出すことができる。
ただし、パフォーマンスはボリュームサイズによって比例するとのこと。
SSD のボリュームに対してバースト機能は存在しない
https://aws.amazon.com/jp/ebs/faqs/
EFS のファイルシステムは
の 2 つある。それぞれの特徴をまとめる。
EFS のスループットは、ストレージクラスのファイルシステムのサイズが大きくなるにつれて上昇する。
100G使っているファイルシステムの場合、
バーストスループットでは 1日あたり 72分間のみ 300M/s の読み込みをできる。
(通常モードは 15M/s)
保存されたデータ量とは別に、
ファイルシステムのスループット (MiB/秒) を簡単にプロビジョンされる。
1日1回動くバッチ処理などのような、瞬間的に使うような使われ方をする場合は、バーストスループットを選ぶとメリットを享受できそうだ。
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/performance.html
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/storage-classes.html
S3 のバケットを誤って公開してしまった時、どのように検知するかをまとめた。
案は2つ
PutObject API
が検出されたとき、 SNS に通知するような CloudWatch イベントを作る。この2つの方法は取ることができるが、単純に案1 の s3 から Lambda をトリガーしてチェックを行うのは実装は簡単そう。
しかし、やろうと思えば案2 の仕組みをつくることもできる。
CloudWatch logs を確認したいが、AWS コンソール に入らずとも CLI で確認することができる。
$ aws --profile stg logs get-log-events --log-group-name /ecs/hogehoge --log-stream-name ecs/stream --output text
EVENTS 1628662114657 COPY FROM S3. 1628662110415
EVENTS 1628662114657 logs ...... 1628662111623
EVENTS 1628662404609 running................................................................................................................................................................................................................................................................................................... 1628662401927
EVENTS 1628662404609 処理時間:289.469252秒 1628662401927
1行目は EVENTS
2行目は タイムスタンプ
3行目にログが記載されている。
https://docs.aws.amazon.com/cli/latest/reference/logs/get-log-events.html
大量のファイルをコピーしようとすると、標準出力が s3 からdownload しているという標準出力で埋め尽くされる
% aws s3 cp s3://sumito-hoge/11.change.csv hogehoge
download: s3://sumito-hoge/11.change.csv to ./hogehoge
これを表示させないためには --quiet
オプションを使う
% aws s3 cp s3://sumito-hoge/11.change.csv hogehoge --quiet
ファイルはきちんとコピーされている
ls -l hogehoge*
-rw-r--r-- 1 sumito.tsukada wheel 5774 8 11 12:40 hogehoge
EFS は
という2種類のモードがある。
それぞれ整理する。
EFS のデフォルト値
レイテンシーが低く、ワークロードがレイテンシーの影響を受けやすい場合に適している。
Webサーバ含め、一般的なファイルシステムなどレイテンシーに敏感なユースケースに最適。
ファイルシステムオペレーションの制限はない。
多数のクライアントから EFS を利用する際 性能劣化を回避する際はこちらを選ぶ。
ただし、ファイルのメタデータを操作する際のレイテンシーが若干高くなるというトレードオフがある。
ユースケースとして、高度に並列化されたアプリケーションやワークロードには、このモードが有効になる。
自分のキーを持ち込みたい場合、
SSE-C
を使うことで独自の暗号化キーを使うことが可能。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
さまざまな対処法がある。
DDoS 攻撃を受けていても連携してエンドユーザーがアプリケーションにアクセスできるようにする2つの機能がある。
カスタマイズ可能なウェブセキュリティルールを定義することで、ウェブアプリケーションに対するどのトラフィックを許可またはブロックするかを制御できる。
SQL インジェクションまたはクロスサイトスクリプティングに加え、カスタマイズされたルールを使うことができる
CloudWatch でのリアルタイムの通知によって、DDoS 攻撃に対する完全な可視性が可能になる。
レイヤー3/レイヤー4攻撃を軽減できるが、詳細なリアルタイム通知や可視化機能が提供していない。