- 1. ECSタスクからS3への疎通確認用の簡易Dockerイメージを作成する
- 2. CodeBuildの環境変数をSecretsManagerから取得する
- 3. SNSからWeb漫画ランキングを自動生成したら、話題の漫画が集まった【個人開発】
- 4. AWS Budgetsでアラート設定する~90年代の隠しサイト…?
- 5. AWS Lambda function URLsを手軽に実行
- 6. CloudFormationでCodeBuildを作成しようとしたら「Not authorized to perform DescribeSecurityGroups」になった
- 7. Firebase Authenticationを使ってAPI Gatewayに認証機能を付与する
- 8. 画像キャッシュを部分的に無効化する
- 9. AWSのCloudWatch Agentを任意のDockerイメージにねじ込んでログを転送する
- 10. AWSでディープラーニングを実践しようとしたら、CPUの上限に引っかかった話
- 11. 【備忘録】マウントしました
- 12. CloudWatch&SNSでメール通知
- 13. リソースベースポリシーで Lambda function URLs のアクセスを制御する
- 14. AWS公式資料で挑むSCS認定(40)-こんな時どうする(全分野その17)
- 15. aws lightsail snpashot (バックアップ)
- 16. aws lightsail (ドメインの設定、メールの受信設定、FTP接続)
- 17. AWS DMSでPostgreSQLの既存データを移行してみた(RDS to RDS)
- 18. AWS 移行のサービスを雑にまとめる
- 19. AWS タグ付けのベストプラクティス
- 20. Amazon AWSにおける、リージョンごとのAZなどの数
ECSタスクからS3への疎通確認用の簡易Dockerイメージを作成する
ECSタスクとして実行するバッチ処理から、外部システムのS3バケットにアクセスするケースにおいて、まだバッチ処理のアプリケーションができていない状況で、先にインフラレベルの疎通確認を行うための簡易なDockerイメージを用意してみました。
## Dockerfile
“`dockerfile:Dockerfile
# syntax = docker/dockerfile:1.3-labs
# ヒアドキュメント使用のためsyntaxバージョンの指定が必要
# BuildKitが有効化されている必要がある# S3にputするだけなのでAWS公式イメージをそのまま使用
FROM amazon/aws-cli# putする固定のダミーファイル。本来はアプリケーションで都度作成するもの
# amazon/aws-cliはWORKDIRが/awsのため、/aws/dummy.csvとして出力される
COPY <
CodeBuildの環境変数をSecretsManagerから取得する
# はじめに
CodeBuildの環境変数の設定についてのメモです。# 実装例
* `GITHUB_PAT`: SecretesManagerから取得する環境変数
* `SECRETS_NAME` : CodeBuildに設定する環境変数
* `REPOSITORY_URI`: 同上
* `IMAGE_URI`: 同上
* `CONTAINER_NAME`: 同上
* `CODEBUILD_RESOLVED_SOURCE_VERSION`: CodeBuildにデフォルトで設定されている環境変数“`buildspec.yml
version: 0.2env:
secrets-manager:
GITHUB_PAT: ${SECRETS_NAME}:GITHUB_PAT #key: secret-id:json-key:version-stage:version-idphases:
pre_build:
commands:
– IMAGE_URI=”${REPOSITORY_URI}:$(echo ${CODEBUILD_RESOL
SNSからWeb漫画ランキングを自動生成したら、話題の漫画が集まった【個人開発】
# はじめに
Web漫画のランキングサービスをリリースしました!
SNSで話題になっている漫画を探すのに便利です。bookle – 話題のWeb漫画が見つかる!(無料)
http://bookle.work/## サービス概要
はてなブックマークやTwitterからWeb漫画のブックマーク数やツイート数などを収集し、**漫画の人気度をスコア化してランキング表示するサービスです**。
– 特徴
– 手間をかけずに人気の漫画を発見できる
– 広く情報収集して自動判定するため、特定のサービスや個人の嗜好の影響を受けにくい![service.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/118730/68d8c1c4-693a-1a6e-58a0-e371b188e9f6.png)
## なぜ開発したのか?
いろいろなサイトでWeb漫画が公開されていますが、私自身は時々SNSで話題になったものを読む程度で、あまり積極的に読んでいませんでした。一番の理由は、**多数の漫画の中
AWS Budgetsでアラート設定する~90年代の隠しサイト…?
AWS Budgets から Amazon SNSで通知を発砲するには、SNS トピックに AWS Budgets への許可アクセスポリシーを設定しないといけない。そのアクセスポリシーのコピー時に衝撃をうけたので、その部分を書きたいがために記事にする。
# 1.AWS Budgets
➤ Budgets 【意味】:予算(額), 経費英単語の意味そのまま、予算管理サービス。
一定期間の予算を設定しておき、以下のような場合にE メールや SNS でアラート通知を受け取れるように設定できる。
– コストと使用状況が設定した予算のしきい値を超過あるいは超過しそうになった
– Reserved Instance や Savings Plans の使用率やカバレッジが設定したしきい値を下回ったAWS Budget Actions では、アラート発生時に以下のようなアクションを設定することが可能。
– IAM ポリシーの適用、
– サービスコントロールポリシー (SCP) のアタッチ、
– 特定の Amazon EC2 インスタンスまたは Amazon RDS インスタンスの停止これ
AWS Lambda function URLsを手軽に実行
# 世間の方々よりも少し遅いけど、AWS Lambda function URLs を試してみよう
– ドキュメント
– https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html## AWS マネジメントコンソール Lambda から
– マネジメントコンソールで操作
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482752/6a9ecc1c-598a-982b-429e-f58e5bc4f419.png)– 「関数の作成」ボタンを押す
– 作成された内容を確認 ,URLが払い出しされて紐づいている
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1482752/2c2b3c50-6420-daab-8f78-f68fd38bfa29.png)作成された URL:https://ej2mqhfzpd45oaz
CloudFormationでCodeBuildを作成しようとしたら「Not authorized to perform DescribeSecurityGroups」になった
# 起きたこと
– CodeBuildプロジェクトをCloudFormationで作るためにyamlテンプレートを作成し`AWS::CodeBuild::Project`を追加した。
– またプロジェクトにアタッチするロールとポリシーを一緒に作りたかったので、同じテンプレートに`AWS::IAM::Role`と`AWS::IAM::Policy`を追加した。
– 作成したテンプレートをもとにスタックを実行すると`Not authorized to perform DescribeSecurityGroups`というエラーメッセージが表示され作成に失敗した。# 原因
## 1. 必要な`ec2:DescribeSecurityGroups`の権限が不足している。(エラー文そのまま)
– VPC内にCodeBuildを作成する場合に必要な権限となる。
– 他にも必要な`ec2:`のポリシーがあるが、基本的には公式が載せている[このポリシー](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-a
Firebase Authenticationを使ってAPI Gatewayに認証機能を付与する
# 概要
Firebase Authenticationに登録されているユーザーだけがAPIを使えるようにするため、
エンドポイントであるAPI Gatewayにオーソライザーを設定します。処理の流れは以下の通りです。
1. **Firebase Authentication SDK**を使用し**IDトークン**を取得する
2. 取得したIDトークンをヘッダーに付与し、APIGatewayのエンドポイントへリクエストを送る
2. API Gatewayの**オーソライザー**が**Firebase Admin SDK**を使用しIDトークンを検証する
2. 認証できた場合、Lambda関数を実行する# 対象読者
Firebase Authenticationの機能が分かる方
API GatewayとLambdaでAPIを作成
画像キャッシュを部分的に無効化する
Imagemagickを深掘りするため、ユーザー画像とアイテム画像を合成させて、簡易的に試着ができるという機能を実装していた。
![9ab908fcf945ef3911f996ea2d4757e7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2584427/6c34fefb-aa1f-127b-cdc3-432f7e5790ba.jpeg)
上の画像はパンツの画像とユーザー画像を合成させているが、それぞれのアイテムページから試着ページに遷移するとそのアイテムの画像とユーザーの画像が合成されるという機能で、
例えばジャケットのページで試着ボタンを押すとジャケットの画像とユーザー画像が合成される様になっている。が、
ローカル環境では問題なく動いていたのに、AWSにアップロードした後試着ページを表示させると一番最初に合成した画像が別の試着ページに遷移しても表示されてしまい、二回目以降は試着できなくなってしまった。
[![Image from Gyazo](https://i.gyazo.com/
AWSのCloudWatch Agentを任意のDockerイメージにねじ込んでログを転送する
おはようこんにちはこんばんは
えんじにあの@tumuginです
きんようびですさて、今日はECSなどで運用しているDockerコンテナにAWSのCloudWatch Agentを入れて任意のログファイルをCloudWatchに転送できるようにしたのでその方法を紹介したいと思います。
通常は標準出力に出したものをECSの機能などを用いてCloudWatch側に送り込むことが多いと思いますが、コンテナ内部に複数のログファイルがあってそれぞれを別のロググループに送りたい、のようなときには困ってしまいます。
また、CloudWatchのAPIを用いて転送するのもひとつの手ですが、レートリミットのことを考慮しなければならないなど様々なハマりポイントがあるので、今回はなんとかしてCloudWatch Agentを入れてあげて送る方法にしました。
## 大前提
– 運用しているDockerイメージをビルドするDockerfileがある
– アプリケーションから吐き出されるログファイルがある## 諸々の設定を用意する
まずは `amazon-cloudwatch-agent.json`
AWSでディープラーニングを実践しようとしたら、CPUの上限に引っかかった話
## AWSでディープラーニングを実践しようとしたら、CPUの上限に引っかかった話
こんにちは、「AWSで始めるクラウド開発入門」という教材を使用しAWSを勉強しています。
用意されたdocker imageに移動し、さてg4dn.xlargeインスタンスを建てようと思った矢先、エラーがでてしまったので今回はそれについて話していきます。
## g4dn.xlargeインスタンスとは
結論から言うと、GPUを搭載したインスタンスタイプのことを指します。
webアプリケーションのデプロイなどではt2.microインスタンスなどが用いられます。
これらは、CPUのみのインスタンスとなります。このg4dn.xlargeインスタンスを使用する際の一例としてディープラーニングなどの解析が挙げられます。
GPUは設計上、行列の計算などの単純かつ規則的な計算を得意とします。この性質はディープラーニングと相性が良く、CPUのみの演算よりも遥かに高い処理速度を発揮します。## 学習の流れ
4章と同じ流れで
– venvを作成し、依存ライブラリのインストールを行う
– S
【備忘録】マウントしました
## やろうとしたこと
・WebAPサーバの資材をNFSサーバに格納(EC2をそれぞれ1台)
・WebAPサーバからマウントして表示させること## 参考にしたページ
https://hara-chan.com/it/infrastructure/how-to-mount-server/
https://hara-chan.com/it/infrastructure/fstab/
https://linuc.org/study/knowledge/505/## 手順
前提:/etc/hosts でNFSサーバ、WebAPサーバを登録済み
1. AWSセキュリティグループの確認
1. NFSサーバの/etc/exports 編集
1. WebAPサーバの/etc/fstab 編集#### AWSセキュリティグループ
インバウンドルールで「タイプ」NFSが入っていることを確認する
※直接追加でなくとも含まれて入ればOK#### NFSサーバの/etc/exports 編集
NFSサーバ
“`bash
# systemctl enable nfs
# systemctl st
CloudWatch&SNSでメール通知
最近、仕事でCloudWatchをしっかり使うようになったので、勉強がてらCloudWatchでメール通知の設定をしてみた。
# 動画
# 環境構築
ElasticBeanstalkというサービスを使ってサクッと環境を用意します。
このサービスを使うと、AWS側で用意してあるテンプレートに簡単な設定を加えるだけで、サーバー環境を一瞬で作成できてしまう!
「Create Application」を押下。
![image.png](https://qiita-image-store.s3.ap-n
リソースベースポリシーで Lambda function URLs のアクセスを制御する
## はじめに
2022/4/6 から利用可能になった Lambda function URLs (関数 URL) はリクエストの認証タイプに `AWS_IAM` を選択できます。AWS_IAM では IAM エンティティのポリシーと AWS Lambda のリソースベースポリシーに基づいてリクエストが認証されます。https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html
リソースベースポリシーによる制御パターンについていくつか検証してみました。
## 結論
### できたこと
* クロスアカウントの呼び出しを許可するポリシーステートメントの設定
* PrincipalOrgID を指定した、組織内からの呼び出しを許可するポリシーステートメントの設定
* コンソールからは設定できないため、AWS CLI/SDK での AddPermission API の実行が必要### できなかったこと
* [AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/la
AWS公式資料で挑むSCS認定(40)-こんな時どうする(全分野その17)
##### [前回] [AWS公式資料で挑むSCS認定(39)-こんな時どうする(全分野その16)](https://qiita.com/mingchun_zhao/items/11956c3652a311ab0d2e)
## はじめに
SCS認定にめでたく合格した同僚からの体験談共有です、ありがたい。
[AWS Certified Security – Specialty合格しました!](https://qiita.com/kosuke_doi/items/909df7a3ebce221cf0bb)今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– 不正アクセスの疑いがある操作が報告された、過去同じ操作が行われていないか調査したい
– 過去90日間のイベント履歴調査
– CloudTrailコンソールのイベント履歴から、問題操作のAPIコールを確認
– 過去90日間より前のイベント履歴調査
– CloudTrailの証跡を作成し、収集イベントをS3バケットへ配信する必要あり## 分野
aws lightsail snpashot (バックアップ)
# スナップショットを作成しよう
スナップショットとは、バックアップのこと。
>スナップショットを作成する時は、インスタンスを停止することが推奨
そのままの状態で作成すると復元時にバグる可能性があるから。
# スナップショットを作成
・サーバーを停止
“`
sudo shutdown -h now
“`管理画面から作成できる。
サーバーを再起動するときは、lightsailの管理画面から行う。# スナップショットの復元
取得したsnapshotsをクリック。
右側の「・・・」をクリックしてcreatenewinstaceをやる。
とっても簡単。
aws lightsail (ドメインの設定、メールの受信設定、FTP接続)
参考
https://liginc.co.jp/549866
# ドメインの設定 (web)
Amazon Lightsail にログイン
→ Networking
→ Create DNS zoneネームサーバーが表示されるのでメモ
ns-2549.awsdns-01.co.uk
ns-1134.awsdns-21.org
ns-634.awsdns-41.com
ns-5c6.awsdns-08.net# ムームードメインにログイン
弊社サービス以外 のネームサーバを選択し、
上記ネームサーバーを入力していく。`これでドメイン設定OK`
# メールアドレスの設定
とりあえず info@your.com に届いたメールを hoge@gmail.com に転送するだけ。
conohaのメールサーバーを利用します。# conoha メールサーバーにログイン
メールサーバーを選択
→ドメイン追加メール転送設定
ネームタグ 任意
送信元アドレス info@your.com
転送先アドレス hoge@gmail.com
転送方法 転送したあとにメールを
AWS DMSでPostgreSQLの既存データを移行してみた(RDS to RDS)
AWS DMSを利用してRDSのPostgreSQLからRDSのPostgreSQLにデータを移行しました。
# 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398131/bbff7f9b-36c4-9420-dca5-a41572cfd3f8.png)# 移行元DBの構成
移行元DBは以下のような構成です。
スキーマはデフォルトのもの(Public)を利用するとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398131/ebda3dc2-5a9c-73d6-20e2-d873b83c4e50.png)# 前提条件
* 移行元RDSはPostgreSQL 11.12で、複数DBが存在する。
* 移行元RDSのデータは今後更新されることはない。
* 移行元RDSのデータを全て移行先RDSに移行する。
* 移行先RDSは新規構築したものを利用する。# 作業内
AWS 移行のサービスを雑にまとめる
## はじめに
AWS認定ソリューションアーキテクト アソシエイトの勉強中で、移行関係のサービスが苦手なので
自分用に雑な言葉でまとめてみる## 内容
`AWS ADS (Application Discovery Service)`
*サーバーの設定データ、使用状況データ、動作データが収集してサーバーの使用率データや依存関係のマッピングなどの移動に必要な情報を提供するサービス*
→ `設定データの移動に必要な情報を教えてくれる``AWS DMS (Database Migration Service)`
*データベースを短期間で安全にAWSに移行することが可能、データベース移行ツール*
→ `データベース移行するやつ``AWS SMS (Server Migration Service)`
*数千のオンプレミスワークロードを従来よりも簡単に、かつ短時間でAWSに移行できるエージェントレスサービス*
→ `サーバー移行するやつ``AWS SCT (Schema Conversion Tool)`
*ソースデータベーススキーマ、およびビュー、ストアドプロシージャ、関数とい
AWS タグ付けのベストプラクティス
## 初めに
AWS認定ソリューションアーキテクトの勉強中で、
タグの問題に関して間違えてので、自分用にまとめてみる。## タグの付け方のベストプラクティス
`個人情報 (PII) などの機密情報や秘匿性の高い情報はタグに格納しないでください。`
→ 重要なことはタグにしない`タグには標準化された、大文字と小文字の区別がある形式を使用し、すべてのリソースタイプに一貫して適用します。`
→ キャメルケースなどで統一する`リソースアクセスコントロールの管理、コスト追跡、オートメーション、整理など、複数の目的に対応したタグガイドラインを考慮します。`
→ 絞り込んだりしやすいようにする`自動化されたツールを使用して、リソースタグを管理できます。AWSリソースグループとリソースグループのタグ付けAPIを使用すると、プログラムによるタグの制御が可能になるため、タグとリソースの自動的な管理、検索、フィルタリングが容易になります。`
→ タグ作るのに便利な「AWS Resourse Group」を「リソースグループのタグ付けAPI」があるらしい`タグは、多めに使用します。`
→
Amazon AWSにおける、リージョンごとのAZなどの数
VPCを設計するにあたっては、サブネットを切る必要が出てくるが、その際、各リージョンごとに、いくつAZがあるのかの情報が必要になってくる。それらをまとめた表がこれである。なお、通常のユーザーが利用可能なもののみ記載する(例えば東京リージョンは4AZ実は存在するが、このうち1AZはほとんどのユーザーは利用可能でない。また、オプトインが必要なリージョンについても割愛する)。
| リージョン名 | AZ数 | ローカルゾーン数 | Wavelength Zone数 |
|:–:|–:|–:|–:|
| us-east-1 | 6 | 10 | 11 |
| us-east-2 | 3 | 0 | 0 |
| us-west-1 | 2 | 0 | 0 |
| us-west-2 | 4 | 7 | 6 |
| ap-south-1 | 3 | 0 | 0 |
| ap-northeast-1 | 3 | 0 | 2 |
| ap-northeast-2 | 4 | 0 | 1 |
| ap-northeast-3 | 3 | 0 | 0 |
| ap-southeast-1 | 3