- 1. ControlTowerで集約したCloudTrailのログをAthenaで検索したときにエラーが出た
- 2. 〇野比太「〇〇えもん〜、複数のIAMを楽にスイッチしたいよー」
- 3. EC2の終了忘れを防ぐ起動スクリプト
- 4. 【Microsoft Teams】Incoming Webhook メッセージに改行を入れる方法
- 5. AWS初心者は必ず読むべき!必見!AWSの基本⑨RDSを冗長化
- 6. Qiitaアカウント作成してみました
- 7. AWSのハイブリッドアーキテクチャ設計図をPower pointで描いてみた
- 8. AWS CloudFront概要
- 9. AWS初心者は必ず読むべき!必見!AWSの基本⑧ELBと冗長化
- 10. AWS初心者は必ず読むべき!必見!AWSの基本⑦S3とCloudFront(画像配信をする)
- 11. CodeBuild時にGradleのバージョンが古くて失敗する
- 12. NLB経由でPrivate subnetにあるEC2へアクセスする
- 13. AWS S3 オブジェクトの保護についてまとめ
- 14. 【AWS】rootユーザー以外で、AWSの請求金額を閲覧する設定方法 〜IAMユーザー・ロール・IAM Identity Centerユーザー(SSOユーザー)で請求金額を見る方法〜
- 15. Amazon WorkSpacesを使ってみた(二度目)
- 16. 検証目的のためにCloudFormationでシングルインスタンスのAuroraを建てようとしたら手こずった話
- 17. GitHubからAWSにOIDC認証するときのIAM信頼ポリシーではStringLikeとStringEqualsに気をつける
- 18. 【備忘録】JAWS DAYS ハンズオンコーナー「コンテナサービスをCI/CDパイプラインでデプロイしよう」をやってみての気づき・学び
- 19. Amazon ComprehendとLambdaを利用した感情分析APIを作成する
- 20. 【AWS】CloudTrailでS3特定バケットの動作をTrailする
ControlTowerで集約したCloudTrailのログをAthenaで検索したときにエラーが出た
### サマリ
– ControlTowerでログアーカイブアカウントに保管しているCloudTrailを検索しようとしたらエラーが出た
– テーブル設計はドキュメント通りで問題無くクエリ可能なはず
– IAM側の権限は必要十分だった### 本文
Athenaを使ってAWSが生成するログを検索する場合のテーブル定義については以下にまとまっているのでこれを使ってサクッとテーブルを作る
AWS のサービス ログのクエリ
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/querying-aws-service-logs.htmlクエリを投げるとオブジェクトに対しての権限が足りない旨が表示されている。
この権限が足りないってのがハマったポイントでした。実際にオブジェクトを見に行ったら権限エラーが出たんですが、詳細を呼んでみると復号化が出来ていないみたいだったのでピンと来ました。他のアカウントのユーザーに KMS キーの使用を許可する
https://docs.aws.amazon.com/ja_jp/kms/latest/d
〇野比太「〇〇えもん〜、複数のIAMを楽にスイッチしたいよー」
## 自己紹介
おはようございます。こんにちは。こんばんは。
株式会社プロトソリューション(沖縄)で自社開発チームに所属しているスナガワです。
みなさま、よいBeer Time?な日々をおくれてますか?## 本記事について
本記事では以下の悩みを持った方へ小技を紹介する感じです。
– 管理するAWSアカウントが増えてきたよー
– AWS CLIを使用する際、毎回profileを指定するの面倒くさいよー
– かといって、環境変数で切り替えるのも面倒くさいよー
– もっと楽に、profileを指定せずスイッチしたいよー
– どうにかしてよー、ドラ○もん〜## 環境
ちなみに環境は以下の感じです。
“`zsh
$ sw_vers
ProductName: macOS
ProductVersion: 12.6
BuildVersion: 21G115$ echo $SHELL
/bin/zsh$ node -v
v16.17.1$ npm -v
8.15.0
“`
## ある日のやりとり
※あの見慣れたやり取り風でご紹介します、読み飛ばしたい方は[導入手順](#導入手
EC2の終了忘れを防ぐ起動スクリプト
# これは
「あ、EC2消し忘れた。。」
「むしろ、ちゃんと止めたことない。。」
「お金が。。」
「高額インスタンスで。。。」EC2を一定時間でシャットダウンする方法です。
`EC2` の `ユーザデータ` という機能を使います。
## 参考
– [起動時に Linux インスタンスでコマンドを実行する – Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html)
– [【Ubuntu】シャットダウン、再起動コマンド | PostgresWeb – ポスグレウェブ](https://postgresweb.com/ubuntu-shutdown-reboot-command)## 作業の流れ
1. EC2インスタンスを停止する
1. ユーザーデータを設定する
1. EC2を起動する
1. 仕事する
1. 仕事終わる
1. EC2の停止を忘れる
1. 自動終了する# ユーザーデータを設定する
[EC2 インスタンス
【Microsoft Teams】Incoming Webhook メッセージに改行を入れる方法
先日、AWS LambdaからTeamsチャネルにメッセージを送るpythonコードを書きましたが、普通に以下のように書くことだけではメッセージの改行(NewLine)ができなかったので記録します。
# Before
“` python
message = f”””
こんにちは。
メッセージを送ります。
“””
“`“`
# 出力結果
こんにちは。メッセージを送ります。
“`
multiple line stringで書いても出力してみたら1行のStringになっていました。# After
調べてみたらTeamsに送るメッセージ(String)に改行を入れられる方法はいくつかあるみたいです。
“` python
message = f”””
こんにちは。
メッセージ1です。
メッセージ2です。 \r \n
メッセージ3です。 \n
“””
“`
“`
# 出力結果
こんにちは。
メッセージ1です。
メッセージ2です。
メッセージ3です。
“`
以下の4つを試してみたらOKでしたので、この中で選んで使えばいいかと思います。
– `
AWS初心者は必ず読むべき!必見!AWSの基本⑨RDSを冗長化
# この記事を読む前に
# この記事の概要
この記事で行う捜査は****サービスを継続的に利用する状態***にすることが目的です。
WEbサーバーとDBサーバーを***2台以上にして冗長化***していきます。
1台あること前提なので1台増やしていきます。
ここでは“`マスタースレーブ方式“`にします。## この記事の目的
DBサーバーを増やすのは目的です。# マスタスレーブ構成
***RDSでマスタスレーブ構成にするにはマルチAZの機能***を使います。
同じエンドポイントで接続し、アベイラビリティゾーンはレプリケーション(複製)します。まずRDSに移動します。
![スクリーンショット 2022-10-10 4.04.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/4d628944-98bc-0be9-1265-c2f237e1338b.png)
設定のマルチAZなしが確認できると思います。
![スクリーンショット 2022-10-10 4.05.34.
Qiitaアカウント作成してみました
# 当面
– 書く予定はありません
– 資格取得したらノウハウ共有
– 引き当てたバグの速報とワークアラウンドの共有とか# バグ記載例
# Catalyst9300
– Stackのバグ解消されてなくない?Secondary側のIFから設定変更しようとしたら、config同期が取れなくなってSecondary側がreload起こすバグがIOS17台でも起きる。IOS16で解消されているような記載になってるけど。
AWSのハイブリッドアーキテクチャ設計図をPower pointで描いてみた
# 目次
* はじめに
* 全体像
* 意図
* 難しいところ# はじめに
先日SAAの試験に落ちまして、手を動かさなきゃいけないなと感じた30歳です。
今回はAWSの公式アイコン集を利用して、アーキテクチャの設計をやってみたいと思います。
Power pointで公開されていたので、設計図もPower pointで作りました。# 全体像
Power pointをスクショして貼りました。
![スクリーンショット (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2773852/54043ee8-0194-8c77-c32f-2fd5200d9e63.png)
こんな感じのオンプレ環境を
![スクリーンショット (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2773852/281ab2f5-5936-da2d-78a9-483658a60526.png)
こんな風にしてみました。
![スクリーンショット
AWS CloudFront概要
# AWS CloudFront概要
HTMLやファイルや画像、動画などの静的コンテンツをキャッシュし、オリジンサーバの代わりに配信するCDN(Content Delivery Netwark)サービス。
活用することで、サーバの負荷を軽減し、安定したサービスの提供をすることが出来る。利用にはオリジンサーバ(バックエンドサーバ)が必要で、AWSのサービスでは
・ELB
・EC2
・S3のホスティング機能
がある。
また
・オンプレ環境のサーバ
を指定することも可能。## ディストリビューション
### 1 ダウンロードディストリビューション
HTTPやHTTPSを使い、HTMLやCSS、画像を配信する際に利用。### 2 ストリーミングディストリビューション
RTMPを使い、動画のストリーミング配信の際に利用。
※今後は非推奨のようです。## キャッシュルール
拡張子やURLパスごとに、キャッシュ機関の指定を行う。
変更頻度が多い :キャッシュ期間を短く
変更頻度が少ない:キャッシュ期間を長く## ☆チェックポイント
URLのパスに応じて、異なるオリジンサ
AWS初心者は必ず読むべき!必見!AWSの基本⑧ELBと冗長化
# この記事の概要
# 稼働率を上げる
稼働率を上げるには障害が発生した時の間隔を長くするか、復旧時間を短縮するために“`冗長化“`します。
システムを増やし、あるシステムで障害が起きても処理を引き継げるようにします。稼働率を上げるには以下のことをします。
1. 単体の稼働率を上げる
2. 要素を組み合わせて稼働率を上げる
3. 負荷を適切なプロビジョニング(必要に応じてネットワークやコンピュータの設備などのリソースを提供できるよう予測し、準備しておくこと)しておきます。# サーバー構成
基本的には1台のサーバーでWebとDBを運用し、1台のサーバースペックが足りない場合は、DBを別のサーバーで使います。
Web側の性能などが足りないおsyntax機はWebサーバーを複数使い、冗長化と負荷分散ができます。そしてマスタレーブ方式を使うことでDBの冗長化をし、DBも冗長化できます。
つまりこれはWebの冗長化と負荷分散、DBの冗長化です。# ロードパランサーとELBとは
“`ロードパランサー“`とは***サーバーを複数に分けて、負荷を分散する装置***で
AWS初心者は必ず読むべき!必見!AWSの基本⑦S3とCloudFront(画像配信をする)
# この記事の概要
S3やCloudFrontを使って画像配信をしていきます。
WordPressから画像を投稿したらS3に画像が保存されるように設定していきます。
そして配信もS3からにします。
次にCloudFrontを使って画像配信を高速化します。# インフラの設計で大事なこと
1. サービスを継続できるか
2. システムの性能が良く将来的にも拡張しやすいか
3. 運用と保守ができるか
4. セキュリティがしっかりしているか
5. 今現在のシステムは他のシステムに移行しやすいか***特に1と2が大事***みたいです。
# S3とは
***データを管理、格納できる安く耐久性の高いAWSのクラウドストレージサービス***です。
その中でも3つの概念が大事です。
1. “`バケット“`
オブジェクトの保存場所です。
2.“`オブジェクト“`
データ本体でS3に格納されるファイルです。
3.“`キー“`
オブジェクトの格納URLパスです。この記事にも説明が載っています。
https://www.wafcharm.com/blog/s3-for-beg
CodeBuild時にGradleのバージョンが古くて失敗する
# 現象
– CodeBuildのbuildspec.ymlでgradleコマンドを実行した際に以下のようなエラーが発生した
“`
[Container] 2022/10/07 02:43:03 Running command gradle build -x test
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use –status for detailsFAILURE: Build failed with an exception.
* Where:
Build file ‘/codebuild/output/src757482764/src/app/build.gradle’ line: 7* What went wrong:
An exception occurred applying plugin request [id: ‘com.diffplug.spotless’, version: ‘6.11.0’]
> Failed to apply plugin [id
NLB経由でPrivate subnetにあるEC2へアクセスする
# はじめに
AWSのNLBでPrivate subnetにあるEC2へアクセスする方法を書いた記事です。
Web3層アーキテクチャをEC2単体で全部賄っているけど、EC2自体はPublic subnetではなくPrivate subnetに置いておきたいなといった場合に便利です。
ところで、なぜALBではなくNLBを採用するのか?というと、今回は以下の条件があったからです。
– 複数AZで冗長化する予定がない。
– 多量のデータをやり取りする可能性がある。
– 相互 TLS 認証(サーバー認証+クライアント認証)を使いたい。ALBは今のところ相互 TLS 認証がサポートされていません。公式資料はここら辺を参考にしました。
Network Load Balancer の作成
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/create-network-load-balancer.html
プライベート IP アドレスを持つバックエンドインスタンスを ELB のインターネット向けロードバラン
AWS S3 オブジェクトの保護についてまとめ
## 概要
AWS Solution Architect Associate試験で問われがちなS3のアクセス制御・誤削除防止など、「オブジェクトの保護策」についてまとめてみました
## アクセス制御
### ACLによる読み取り・書き込み制限
パブリックアクセスをブロックするなどの設定を行い、直接URLからオブジェクトにアクセスできるのを防ぐ
デフォルトではバケット内のオブジェクトがプライベートアクセスとなっており、所有者以外はアクセスできない### バケットポリシーの設定
IAMユーザー・ロール・AWSアカウント・サービスに対してアクセス制御を行う。
特定のIPアドレスを許可/拒否、バケット内のオブジェクト・ディレクトリごとにアクセス制御を行えるなど、ACLより柔軟に設定ができる。
一つのポリシーで100個までルールを設定できる。バケットポリシーのサンプル
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “IPAllow”,
“Effect”: “Deny
【AWS】rootユーザー以外で、AWSの請求金額を閲覧する設定方法 〜IAMユーザー・ロール・IAM Identity Centerユーザー(SSOユーザー)で請求金額を見る方法〜
## 背景
– AWSのアカウントを作成した際、初期設定ではrootユーザー以外ではAWSからの料金の請求情報が見えません。
– AWSを使用していく中で、rootユーザーを使用することは稀(というか[AWSも普段からrootユーザーは使うな](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user.html)と言っている。)だと思います。
– IAMユーザーやIAM Identity Centerユーザー(SSOユーザー)で請求情報を閲覧するためには、簡単な初期設定が必要なので、その設定方法を紹介します。## rootユーザー以外で、請求情報を見えるようにする設定方法
### rootユーザーでAWSにログインする
– [AWSのマネジメントコンソール](https://aws.amazon.com/jp/console/)画面からログインを選択します。
– スクショのログイン画面でrootユーザーによるログインを行います。
![01.png](https://qiita-image-store.s
Amazon WorkSpacesを使ってみた(二度目)
# はじめに
M1 Macしか手元になく、Windowsマシンが利用したくなったのでWorkSpacesを利用しようと思います。
この記事では利用開始時のメモを残しておきます。
ちなみに過去に利用していたことがあったため、初めて使うときとは画面表示や手順が違うかもしれません。# 手順
### 1. AWSアカウントでログインし、WorkSpacesをクリック
以下の画面になりますね。“`WorkSpacesの起動“`を押下します。
![スクリーンショット 2022-10-10 22.24.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/894678/ed10900e-0e90-23e0-69bb-8c49f20fbb33.png)### 2. ディレクトリの選択
過去に作ったSimple ADがあったのでそれを利用します。“`次のステップ“`へ。
![スクリーンショット 2022-10-10 22.26.14.png](https://qiita-image-store.s3.ap
検証目的のためにCloudFormationでシングルインスタンスのAuroraを建てようとしたら手こずった話
# 本記事の内容
– AWSが提供するCloudFormationサービスを利用し、データベース(RDS)の一つであるAuroraをシングルインスタンスで建てる方法を記載した記事です。
– 検証目的のため等、インスタンスを冗長化せずシングル構成で作成したいこともあるかと思います。たくさん建てますとお金もかかりますし。ネットにはシングルインスタンス構成で構築した情報があまりなく、冗長構成前提の情報が多かったため、試行錯誤して完成したCloudFormationテンプレートを本記事にまとめました。参考情報になれば幸いです。本記事の手順で以下のような構成のクラウド環境を作成します。
![CF_Aurora-ページ1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2017667/0c221a43-0f07-ed08-5722-68c630bc542f.png)
※AWSの操作画面はサービスリリースと共に更新されていくため、本記事をご覧いただくタイミングによっては、現在の画面と異なる場合があ
GitHubからAWSにOIDC認証するときのIAM信頼ポリシーではStringLikeとStringEqualsに気をつける
# 概要
今までGitHub ActionsでAWSにOpenID Connect認証する設定を2回して、2回ともハマった設定ミスを今後はもう繰り返さないためにメモ。
# 内容
設定の過程で、認証先のIAMロールに信頼ポリシーを設定する必要がある。
https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services#configuring-the-role-and-trust-policyそのConditionに次のようなものを書いてしまうと失敗する。
“`
“Condition”: {
“StringEquals”: {
“token.actions.githubusercontent.com:aud”: “sts.amazonaws.com”,
“token.actions.githubusercontent.com:sub”: “repo:octo-or
【備忘録】JAWS DAYS ハンズオンコーナー「コンテナサービスをCI/CDパイプラインでデプロイしよう」をやってみての気づき・学び
[**JAWS-UG**](https://jaws-ug.jp/) の最大のイベントである [**JAWS DAYS 2022**](https://jawsdays2022.jaws-ug.jp/) ではハンズオンも開催されており、3種類のハンズオンがありました
その中でも個人的に一番気になっていたのが「コンテナサービスをCI/CDパイプラインでデプロイしよう」です
本日はコンテナハンズオンに参加頂きましてありがとうございました。今日のハンズオン資料は以下です。https://t.co/Zvf5dOx2p2
今回は前半だけでしたが、後半含めどこかでイベントで再演したいと思います。#jawsdays2022 #jawsdays #jawsug #aws #jawsdays2022_E https://t.co/KBZqtciHrU pic.twitter.com/nz6YSpaMqg
— Shigeru Oda (織田 繁)育休中 (@OutputSeq) October 8, 2022
私は今回ボランティアスタッフとして参加したため、イベントの次の日を丸一日使ってハンズオンをやりました
内容や構成を理解することを重視してハンズオンを進めましたが、これがかなり濃密なハンズオンなのです
私にアプリケーション開発の経験がないことも相まってかなり大変でした・・・
ただ、非常に勉強になったため学びを残しておこうと思います# タグの付け方によってコマンドの形態が違う
まず前提として、CLI でのタグ付け操作の方法は以下の2パター
Amazon ComprehendとLambdaを利用した感情分析APIを作成する
# はじめに
AWSを利用してのテキスト分析が何か出来ないか?と思い、調べていたところ、**Amazon Comprehend**なるものを知りました。
POSTリクエストで「特定の文書」を送ると、文書内の感情分析を行うAPIを作成してみたので、ご紹介します!
※とりあえずAPIを作って動かしてみたい方向けの記事です。## 感情分析とは?
Amazon Comprehendではドキュメントの感情を4つの値から判断します。
「Positive(肯定的)」「Negative(否定的)」「Mixed(混合)」「Neutral(ニュートラル)」の4つの値が結果として返ってきます。例えばAmazon Comprehendのコンソール上からInput textに適当な値を入れて「Analyze」を押すと…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411902/6b9e58d2-86cd-c52a-9993-04edd124721b.png)`Sentiment`として以下
【AWS】CloudTrailでS3特定バケットの動作をTrailする
S3の特定バケット動作をTrailしたかったのでやってみました?
## ①S3バケットを作成する
Trailしたいバケットとログを吐き出したいバケットの2つを作成します。
(既にあるなら不要です)test:ログをおいたいバケット
output:ログをはきたいバケット
![スクリーンショット 2022-10-10 20.03.52.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/984662/f035bf66-6723-da79-4201-fde07da374c0.jpeg)## ②CloudTrailを設定をする
**1.保存先バケット(output)の指定**
![スクリーンショット 2022-10-10 20.05.59.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/984662/8f313aaf-80a5-70f4-b9f2-41b9acdc4dcc.jpeg)
KMSキーも必須なのでここも入力しておきます。