- 1. Amazon CloudWatchロググループ保持期間をAWS Lambdaで管理しよう
- 2. YouTubeでAWSの解説動画(Solution Architect Associate)を作成しました
- 3. 自分向けメモ AWS_Route53レコード、ホストゾーン削除
- 4. 複数のAWSアカウントの切り替え方法
- 5. AWS CLIのスニペットを公開
- 6. [AWS] Cloud9でモブプログラミングの環境を作ってみる
- 7. 【CodePipeline×Elastic Beanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする、のエラーとその対応方法まとめ
- 8. Amazon CodeGuru Reviewer
- 9. sam cli の [SSL: CERTIFICATE_VERIFY_FAILED] エラー回避
- 10. 【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その3
- 11. 【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その2
- 12. 【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その1
- 13. AWS firelens(Fluent Bit)でログを分割する方法と複数の場所に転送する方法
- 14. ECSでFirelensを使ってsidecar方式で複雑なログ収集を実現する方法
- 15. 【AWS】API Gateway Lambdaオーソライザー「User is not authorized to access this resource」エラーの原因と対応
- 16. SageMakerからGoogleCloudVisionに投げてみる
- 17. DynamoDB@boto3のクエリの書き方メモ
- 18. ecsデプロイまで [コマンドまとめ自分用]
- 19. Laravel+AWS-SDK-PHPによるDynamoDBのデータ取得
- 20. AWS-SAA試験勉強メモ1
Amazon CloudWatchロググループ保持期間をAWS Lambdaで管理しよう
こんにちは、stremapackのrisakoです。
長い梅雨が明けて夏がやってきましたね:sunny:
コロナに気をつけながら、マスクで熱中症にならないようにもっと注意が必要ですね:mask:
今年の夏は体調管理に気をつけて過ごそうと思います。
#今回したいこと
今回のテーマは「Amazon CloudWatchロググループ保持期間をAWS Lambdaで管理しよう」です!
Amazon ECSやAWS Lambda(以下Lambda)を使っていると、Amazon CloudWatch(以下CoudWatch)にログが溜まり続けてしまいます。
しかも、CloudWatch LogGroupの保持期間はデフォルトで「失効しない」に設定されるため、永遠にログが残り続けてしまい金額も増えてしまいます。今回は、金額を少しでも抑えるために、新規作成されたロググループの保持期間を自動で「1ヶ月」に変更する仕組みをLambdaで入れてみたいと思います!#今回のアイテム
– IAM role
– IAM policy
– Amazon CloudWatch LogGroup
– AWS Lam
YouTubeでAWSの解説動画(Solution Architect Associate)を作成しました
こんにちは。
YouTubeでAWSの解説動画を作成しました。
レベル的にいうとソリューションアーキテクトのアソシエイト程度を意識しています。## 1.AWSとは? サービスの概要と認定試験
[![1.AWSとは? サービスの概要と認定試験](http://img.youtube.com/vi/BbSUrh-vfH4/0.jpg)](http://www.youtube.com/watch?v=BbSUrh-vfH4)[1.AWSとは? サービスの概要と認定試験](https://youtu.be/BbSUrh-vfH4)
## 2.AWSをはじめよう! アカウントの作成方法
[![2.AWSをはじめよう! アカウントの作成方法](http://img.youtube.com/vi/QMqvGl_ELfE/0.jpg)](http://www.youtube.com/watch?v=QMqvGl_ELfE)[2.AWSをはじめよう! アカウントの作成方法](https://youtu.be/QMqvGl_ELfE)
## 3.認証とユーザ管理 (IAM)
[![3.認
自分向けメモ AWS_Route53レコード、ホストゾーン削除
cloud9→Route53→ホストゾーン→
タイプAのレコードを選択して削除
削除と入力して削除※SOAとNSレコードは削除できない。
ホストゾーンでドメインを選択、削除と入力して削除
複数のAWSアカウントの切り替え方法
## はじめに
環境ごとに複数のAWSアカウントを利用することがあるのですが毎回アカウントIDを忘れてしまうので対応のメモです。## 結論
以下のようにブックマークに保存すれば毎度IDが入力された状態で呼び出されます。“`
https://{{awsアカウントID}}.signin.aws.amazon.com/console
“`
{{awsアカウントID}}の部分にアカウントID(12桁)を入力するようにしてください。
ブックマークでAWSアカウントの環境とか明示してあげるとわかりやすいです!※ アクセスした結果のリダイレクトされたURLをブックマークしないように注意
私はこれをしてて毎回、前回のサインインしていたアカウントのIDが出てきてました。。## 終わりに
大したことない内容ですが、個人的にハマってたので誰かの役に立てたら嬉しいです!
AWS CLIのスニペットを公開
aws-cliは便利ですが、ちゃんと使うには些か慣れが入ります。これからaws-cliをばりばり使っていこうと思っている方向けに(&備忘録用に)普段自分が使っているaws-cilのスニペットを公開します。
## EC2
– 対象のEC2インスタンスの情報を取得
“`
aws ec2 describe-instances –instance-ids ${INSTANCE_ID}
“`– 最新のAmazon Linux2 AMI
“`
aws ec2 describe-images –owners amazon –filters ‘Name=name,Values=amzn2-ami-hvm-2.0.????????.?-x86_64-gp2’ ‘Name=state,Values=available’ –query ‘reverse(sort_by(Images, &CreationDate))[:1].ImageId’ –output text
“`– インスタンスタイプを一覧表示
“`
aws ec2 describe-instance-typ
[AWS] Cloud9でモブプログラミングの環境を作ってみる
# Cloud9とは
AWSが提供するクラウドベースのIDEです。
操作はすべてブラウザで完結させることができ、AWS上で実行するサービスの開発や、各種サービスとの親和性も、当然ながら非常に高いのが特徴です。## 料金
Cloud9そのものに関しては特別な料金はかかりませんが、Cloud9が接続するEC2と、EC2のストレージであるEBSに対して課金が発生します。
当然、インスタンスタイプが高性能なものほど、料金は高くなります。
しかし、一定の時間が経つとEC2インスタンスを停止させるオプションなどもあるので、使い方を工夫することで料金を抑えることはできそうです。# モブプログラミングとは
モブプログラミングは、簡単に書くと、複数人で同じ画面をみながらコーディングを進める開発手法です。
役割として、ドライバー(コードを書く人)と、ナビゲーター(指示者)にわかれ、ナビゲーターの指示や意見を元に、ドライバーがコードを書いていきます。
また、役割は10分や15分といった、時間を決めて持ち回るため、タイムキーパーや、モブプログラミング向けのツール(時間計測)を用いることがあります。
【CodePipeline×Elastic Beanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする、のエラーとその対応方法まとめ
[JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする](https://qiita.com/C_HERO/items/387bb394f5862421513a)
で発生しうるエラーとその対応方法まとめです。## 環境
– OS:Windows10
– IDE:Eclipse 2020-03
– JDK:Amazon Correto 8
– フレームワーク:Spring Boot
– AWS
– CodePipeline
– CodeCommit
– CodeBuild
– CodeDeploy
– Elastic Beantalk
– Java SE(Java 8 バージョン 2.10.8)
→ ※2020年6月3日公開の最新版ではないです。ご了承を。
– RDS:MySQL Community Edition(バージョン8.0.17)## エラーとその対策集
### 1. Elastic Beanstalk
#
Amazon CodeGuru Reviewer
– POCメモ
【参照情報】
https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/tutorial-github-reviewer.htmlデモ用のリポジトリを自分のリポジトリへフォークする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325048/1d856b87-1cde-3aa6-c2a7-aaf2eb1a31e9.png)マネジメントコンソールにログインしてリポジトリの関連付けの設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325048/63183a1a-7749-09bf-dd4f-692eeabc8ca2.png)関連付けされたリポジトリの確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3
sam cli の [SSL: CERTIFICATE_VERIFY_FAILED] エラー回避
# sam deploy時の[SSL: CERTIFICATE_VERIFY_FAILED]回避策(暫定)
samのバージョン 0.53.0
会社のイントラネットでsam deployコマンド実行すると以下のようなエラーが出て困ってました。
(Windows, Linux)“`
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)
“`StackOverflowを見ても困っている人が沢山いそうなので記事にしてみます。
おそらくはGit Hubのこのissueが該当するんじゃないかと。
まだOpen issueなんですよね。
[GitHub awslabs/aws-sam-cliSSL => proxy causing issues with deploy](https://github.com/awslabs/aws-sam-cli/issues/1855)awc cli configファイ
【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その3
Javaアプリケーション(データベースから値を取得し、JSON形式で結果を返す)をCodePipelineでElasticBeanstalkにCI/CDするハンズオンです。
[【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その2](https://qiita.com/C_HERO/items/37b931cca5892c2345ff)
の続きです。## 環境
– OS:Windows10
– IDE:Eclipse 2020-03
– JDK:Amazon Correto 8
– フレームワーク:Spring Boot
– AWS
– CodePipeline
– CodeCommit
– CodeBuild
– CodeDeploy
– Elastic Beantalk
– Java SE(Java 8 バージョン 2.10.8)
→ ※2020年6月3日公開の最新版ではないです
【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その2
Javaアプリケーション(データベースから値を取得し、JSON形式で結果を返す)をCodePipelineでElasticBeanstalkにCI/CDするハンズオンです。
[【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その1](https://qiita.com/C_HERO/items/387bb394f5862421513a)
の続きです。## 環境
– OS:Windows10
– IDE:Eclipse 2020-03
– JDK:Amazon Correto 8
– フレームワーク:Spring Boot
– AWS
– CodePipeline
– CodeCommit
– CodeBuild
– CodeDeploy
– Elastic Beantalk
– Java SE(Java 8 バージョン 2.10.8)
→ ※2020年6月3日公開の
【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その1
Javaアプリケーション(データベースから値を取得し、JSON形式で結果を返す)をCodePipelineでElasticBeanstalkにCI/CDするハンズオンです。
長いので、
– 【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その1(本記事)
→ 1. Java(Spring Boot)アプリケーションの作成, 2. Gitリポジトリの作成
– [【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBeanstalkにCI/CDする その2](https://qiita.com/C_HERO/items/37b931cca5892c2345ff)
→ 3. Elastic Beanstalk環境の作成, 4. データベースの設定
– [【CodePipeline×ElasticBeanstalk】JavaアプリケーションをCodePipelineでElasticBe
AWS firelens(Fluent Bit)でログを分割する方法と複数の場所に転送する方法
aws firelensを使って、ECSのログ収集をする時に以下のような複雑なことをやろうとする場合は自前でfluent bitの設定を変更する必要があって、具体的にはfluent bitの設定を自分で定義してそれを読み込んだコンテナを用意する必要があります。
* 複数の場所にログを転送する
* ログを分割する## やり方
extra.confを用意して、用意したファイルを読み込んだコンテナを作成する。
コンテナの作成の仕方は[こちら](https://qiita.com/SoarTec-lab/items/4e098da16b787841d423)を参照してください。
この記事ではextra.confの書き方だけを残しています。“`
# cw logs
[OUTPUT]
Name cloudwatch
Match *
region us-east-1
log_group_name fluent-bit-cloudwatch
log_stream_prefix from-fluent-bit-
auto_create_gr
ECSでFirelensを使ってsidecar方式で複雑なログ収集を実現する方法
aws firelensを使って、ECSのログ収集をする時に以下のような複雑なことをやろうとする場合は自前でfluent bitの設定を変更する必要があって、具体的にはfluent bitの設定を自分で定義してそれを読み込んだコンテナを用意する必要があります。
* 複数の場所にログを転送する
* ログを分割する## やり方
### 1. docker imageを作成する
以下の様に設定ファイルを作ってそれを取り組んだdocker imageを作成してECSで使うパターン。
例えば、docker/fluent-bitディレクトリを作って以下の様にファイルを配置する
“`
Dockerfile
fluent-bit.conf
parser.conf
stream_processing.conf
“`Docker file内で設定ファイルをADDしていってます。
“`
FROM amazon/aws-for-fluent-bit:latest
ADD fluent-bit.conf /
ADD parser.conf /
ADD stream_processing
【AWS】API Gateway Lambdaオーソライザー「User is not authorized to access this resource」エラーの原因と対応
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312085/322187ad-6ff5-1eb3-5044-8c2e12891a23.png)
上記のようなAPIGatewayで構築したAPIにLambdaオーソライザーを適用した際に、正しい認証情報、正しいAWSリソースへのアクセス権限を設定しているにも関わらず「**User is not authorized to access this resource**」エラーが発生することがあります。
本記事ではその原因と対応を記載します。## 原因
**Lambdaオーソライザーから返却される認可情報のキャッシング**が原因です。以下のようなアクセスポリシーを返却するコードを記述した際に発生します。
“`node.js
…
statementOne.Action = ‘execute-api:Invoke’;
statementOne.Effect = ‘Allow’;
// ↓ 以下のアクセス承認するリソースを
SageMakerからGoogleCloudVisionに投げてみる
# 簡単に
AWSのSageMakerを使用している際に、GoogleのCloud Visionに投げてみようと思いたち、OCRを実行した際のメモ書きです。# 環境
– SageMakerのconda_python3カーネルを使用
– google-cloud-vision: 1.0.0(初期で入っている(?))# 内容
### 認証
[認証](https://cloud.google.com/vision/docs/ocr?hl=ja#set-up-your-gcp-project-and-authentication)に関しては、クリアしている前提とします。### OCR
[チュートリアル](https://cloud.google.com/vision/docs/ocr?hl=ja#detect_text_in_a_local_image)をそのまま持ってきます。テスト用画像としてテキトーな画像を用意しておきます。
![夏.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575891/3
DynamoDB@boto3のクエリの書き方メモ
DynamoDBのクエリの書き方@boto3メモ
## DynamoDBのテーブルの項目定義
パーティションキー:primary_id
ソートキー :sort_id
属性1 :timestamp## コード
“`python
a = client.query(
TableName=’table-name’,
# Limit=500,
KeyConditionExpression=’primary_id = :id and begins_with(sort_id, :sort_id)’, # 主キー向けのクエリ
# FilterExpression=’#tstamp > :st and #tstamp <= :ed', # 属性向けのクエリ # ExpressionAttributeNames={ # '#tstamp': 'timestamp' # timestampが予約語になっていて使えなので代替する # }, ExpressionAttributeValues={ '
ecsデプロイまで [コマンドまとめ自分用]
“`text:リージョンをセット(東京)
AWS_REGION=ap-northeast-1
“`“`text:ECR中身を確認
aws ecr describe-repositories –region ${AWS_REGION}
“`“`text:ECRログイン
aws ecr get-login –region ${AWS_REGION} –no-include-email==>>docker login -u以下すべてをコピーする.
===>>>login successed!
“`ECRの該当リポジトリ内のpush commandを表示通り
“`text:ECSクラスターで起動しているEC2インスタンスへ入る
ssh -i ~/.ssh/aws-and-infra-ssh-key.pem ec2-user@[EC2インスタンスのpublicIPかElasticIP]
“`“`text:EC2内で起動しているdockerコンテナを確認
docker ps
docker ps -a
“`“`text:docker ps -a
Laravel+AWS-SDK-PHPによるDynamoDBのデータ取得
# 背景
LaravelでDynamoDB使うにあたり、ORMのlaravel-dynamodbなどもあるが、DynamoDBでORM利用するのが少し違和感あった為にSDK使ってやってみた際のメモ(そもそもPHPのWEBフレームワークでやるなという話ではあるが、せっかくSDKが提供されているので一度使ってみようという感じ)# 環境
・Windows 10
・HomeStead 9.5
・PHP 7.4
・Laravel 6.0# 1.準備
## AWS-SDK-PHPのインストール“`cmd
composer require aws/aws-sdk-php
“`## DynamoDBの環境作成
AWS提供のローカルDynamoDBを利用。Vagrantを使っていたので、Dockerと共存が面倒なことになるのでローカルに直接インストールしました。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html※GUIツール(結構便利)
https:
AWS-SAA試験勉強メモ1
###AWSでの負荷試験
考慮事項
– ELBのプレウォーミング申請
→ELBはデフォルトでのスケールアウト機能はない(要AWSへの申請)– サーバに負荷をかけるようサーバーの性能
→しっかりと負荷をかけるために必要###S3を使用した静的WEBサイトの構築
必要設定
– S3バケットポリシーを編集して、外部からのアクセスを許可
– 静的WEBサイトのホスティング機能を有効化
###IAMユーザー作成の自動化
Cloudformationを利用する
(リソースだけではなく、IAMユーザーも作成可能)###CodeDeploy
オンプレでもEC2でも**エージェントのインストールは必須**
逆にエージェントが入れられれば、オンプレでもEC2でも利用可能####(備忘)開発プロセスの自動化
CodeCommit(Git)
→CodeBuild(ビルド・テスティング)
→CodeDeploy(デプロイ)
のパイプラインをCodePipelineを使って自動化###AWSのキャッシュサービス
– CloudFront(CDNサービス)
→HTML、CS