どうも、セクションナイン の 吉田真吾(@yoshidashingo)です。
今週はだいぶ遅れてしまいましたが、先週もいろいろと便利なエントリーがありました。ということで行ってみましょう。
AWS公式
1. AWS CodePipeline が AWS CodeCommit との連携をサポートしました
- CodePipelineのリポジトリにCodeCommitが指定できるようになったことにより、以下のような組合せが可能になった
- 現状「CodePipeline」「CodeCommit」がまだ東京リージョンをサポートしていないので、ワークフロー全体は東京で回せない
リンク:AWS CodePipeline が AWS CodeCommit との連携をサポートしました | Amazon Web Services ブログ
2. IP Address Reputationリストを自動更新でAWS WAF IP Blacklistsとして使う方法
- サードパーティから提供されているIP Address Reputationリストを定期的に取得してLambdaを使ってAWS WAFのIP Blacklistsとして登録する方法
- サンプルとしてCloudFormationでAWS WAFのIP Blacklistsを即座に作成することができる。CloudFrontのWeb ACLに指定すればすぐにできる。元データのIPリストのロケーションを指定することで他のリストも取得が可能
※CloudFormationでAWS WAFのIP Blacklistsを作成する環境の構築は一瞬↓
※AWS WAFの利用および設定も、CloudFrontから作成されたWeb ACLを選択するだけで一瞬↓
3. AWS WAF, Amazon CloudFrontでリファラチェックして直リンクを弾く方法
- 画像などのサイトのコンテンツを「サブドメインで運用している場合」「同一ドメイン内で運用している場合」、それぞれについて、AWS WAFのWeb ACL設定でリファラをチェックして、直リンクの場合にはじく設定方法の解説
4. Amaozn ECSがawslogs Logging Driver(Amazon CloudWatch Logs)に対応しました
- Dockerコンテナ内においてstdout/stderrに吐き出すだけで、CloudWatch Logsにログを投げてくれる「awslogs Logging Driver」に対応した。ECS Agent 1.9.0以上である必要があるので、現行より古いECSのAMIを使っている場合は個別にアップデート要。
- ECSのEC2からAPI利用できるようにEC2 Roleに権限が必要だが、Managed Policyを利用している場合は自動で追加されているので大丈夫。個別にPolicyを自作している場合はマニュアル参照して権限追加。
- Task DefinitionでLog Groupとリージョンを指定することで設定はOK
5. AWS Database Migration ServiceがAmazon Redshiftに対応
- DBレプリケーションサービスであるDMSがRedshiftにも対応し、異種DB間でも特に需要が高い「OLTP用のRDBMS」→「OLAP用のデータウェアハウス」ができるようになった
- 大規模なデータ連携になると「InsertはCOPYコマンドで」「UPDATE, DELETEはDMLで」となるのが定石だが、設定上COPYコマンドで必要なS3の設定がない(DMSインスタンスのローカルディスクからCOPY?)
6. EC2 Windowsインスタンスを自動的にMicrosoft ADにジョインさせる方法
- 1つめの方法はSSMを使ってリモートで設定コマンドを実行する方法
- 2つめはAuto Scalingを使ってlaunch configurationでPowerShellでSSMコマンドを実行させてジョインさせる方法
7. Amazon ECSでディスク使用率を最適化する方法
- ECSのクラスタ内の各インスタンスからCloudWatchにディスク使用量を定期的に送信する方法と、定期的にコンテナの削除とキャッシュされたDockerイメージを削除する方法
- コンテナ内のログは上のポストのようにawslogs Logging Driverで集約できていれば、この対応でステートレスでクリーンなクラスタが維持できるようになる
Optimizing Disk Usage on Amazon ECS | AWS Compute Blog
8. Cloudwatch eventからLambda Functionに固定値を渡す
- CloudWatch eventsでLambdaを呼び出すときに固定値をJSON形式で渡す方法(そのまま!)
9. Amazon Auroraの重要なメトリック
- DataDogのゲストポスト
- AuroraについてCloudWatchで取得可能な各種メトリックの説明と、CloudWatchで取得できないメトリックを、EC2を立ててMySQL Workbenchで見る方法や、DataDogを使って見る方法
Key Metrics for Amazon Aurora | AWS Partner Network (APN) Blog
10. 次世代のNATをCloudFormationのテンプレートで作成する
- 次世代のNAT=NAT Gateway(マネージドで冗長化されているので)
- 記述もEC2で自作する場合よりもシンプル
Taking NAT to the Next Level in AWS CloudFormation Templates | AWS Partner Network (APN) Blog
AWS関連
11. サーバなのに?サーバがない?サーバレスアーキテクチャの使いどころ
- 昨年あたりから話題の「Serverless」というキーワードについて、特徴の整理、同期/非同期処理を分離するMulti-tier Architectureとの違い、サーバレスアーキテクチャの使いどころの三点を整理したナイスなエントリ
- (1)サーバレスアーキテクチャの整理
- 柔軟なコンピュートリソースのスケール
- アプリケーションからは、ウェブAPIを通じて透過的に目的にアクセスができる
- APIのコールはキューで管理される
- キューから取り出した処理をWorkerが処理する
- 各タスクは並列で処理することができる
- タスクはさまざまな処理を行うことができる
- (2)Multi-tier Architectureとの違い
- Multi-tier Architectureはサーバーのティアの分割にフォーカスしているので実装がファットになりがち。サーバーレスはその実装をコンテナ仮想化を用いて「実行環境(コード)をSandbox化」することで手軽に扱えるようにしたのが主眼の一つではないかとのこと。もう一つ、最近クラウド事業者いずれからも提供されているFunction as a Serviceについていえば「APIで提供される」「全体のキューの管理は任せられる」「コードを書くだけでよい」「実際のリソース消費のみの課金」という特徴もある
- リソースの共有レベルを上げているため、俗にいうノイジーネイバーの制御やリソース監視、スロットリングや割当て制限など、ある程度の制約が発生しうる
- (3)サーバレスアーキテクチャの使いどころ
- 外部APIなども利用する必要がでてくるとは思うが、ざっと以下のようなものが提案されている
- 画像処理、ドキュメント処理、ウェブクローラ、プッシュ通知、汎用テキスト処理、SMSの送受信、メールの送信、CRONなどのスケジューラの置き換え、Webhookのイベントの処理、ログ格納
その他
12. Docker、Dockerイメージをスキャンし、脆弱性を発見、通知してくれる「Docker Security Scanning」発表
- Dockerのホスティングサービス「Docker Cloud」に、Docker Hubに保存したイメージのセキュリティ脆弱性をスキャンしてくれるサービスが追加された
今週は以上です。