- 1. EBSボリュームの消し忘れで7ドル課金されました
- 2. 【Amazon S3】ライフサイクルルールの更新タイミングには注意しよう
- 3. S3署名付きURLの仕組みが面白かった
- 4. 未経験でもAWS SAAを2ヶ月で何とかパスした話
- 5. エンジニア未経験転職後、約1年半でAWS資格 10個取得してみた
- 6. CohereのモデルをAWS上(Bedrock or SageMaker)で使う方法(2024/4/30時点)
- 7. 古いOSを導入したAWS EC2インスタンスを稼働させつつ最新のOSにアップデートする
- 8. Amazon BedrockにCohere Command R と Command R+ が来たよ!RAGがすげーよ!
- 9. AWS
- 10. 【AWS×Webアプリ】S3静的Webサイトホスティング
- 11. CloudWatch カスタムディメンション追加
- 12. AWS Amplifyの新世代Gen2で生成AIアプリをサクッとデプロイ!
- 13. IAM を触るに当たって気を付けること
- 14. cdk-nagで子スタックにNagSuupression適用されない
- 15. API Gateway経由でLambda呼び出すときのマッピングテンプレート
- 16. Github action実行時、 ”unexpected status from HEAD request to 403 Forbidden”エラーの解決
- 17. 初めての個人開発 ①要件定義・設計編
- 18. 「AWSのWhat’s Newを解説くん」」をBedrockで作りました。
- 19. AWS CDK : 特定のAPIコールを監視してみた (CloudTrail,CloudWatch Logs)
- 20. 初サイト制作メモ5: サイトに載せる画像をS3に配置する
EBSボリュームの消し忘れで7ドル課金されました
### はじめに
本記事は、AWSでEBSを消し忘れて無料枠を超えてしまい、7ドルも課金されてしまった失敗談です。
EBSの消し忘れで課金させるのは、AWS初心者あるあるだと思いますが、今回はEC2に複数のEBSをアタッチしたパターンなので、記事にします。![AWSを学ぶ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1851421/e27f1c64-c69f-3468-34b8-2e01de28b4ce.png)
### よくある失敗
まずは、AWSのEBSの課金体系とそれにまつわる失敗について簡単に解説しておきます。EBSは、EC2のストレージです。EC2起動時にEBSをアタッチすると思いますが、EBSにも課金されます。また、EC2を停止しているとき、EC2には課金されませんが、EBSは課金対象となります(EBSは削除するまで、課金されます)
詳しくは、AWSの公式ドキュメントを参照してください。
https://repost.aws/ja/knowledge-center/ebs-vol
【Amazon S3】ライフサイクルルールの更新タイミングには注意しよう
## きっかけ
ライフサイクルルールの動作確認をしていた際、あれれと思ったことがあったので後学のために書き残します。## ライフサイクルルールとは
Amazon S3 がオブジェクトのグループに適用するアクションを定義するルールのセットです。具体的には、次の 2 種類のアクションがあります。
* 移行アクション
別のストレージクラスにオブジェクトを移行するタイミングを定義します。
>ex.作成から30 日後に S3 標準 – IA ストレージクラスにオブジェクトを移行し、作成から 1 年後に S3 Glacier Deep Archiveストレージクラスにオブジェクトをアーカイブする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691986/bebb60bf-b890-7058-87d8-363b24b33a97.png)
![image.png](https://qiita-image-store.s3.ap-northea
S3署名付きURLの仕組みが面白かった
# はじめに
S3署名付きURL発行機能を触っていたのですが、仕様がおもしろかったので整理します。結論から言うと、以下の記事原文と、その解説を行ってくれている記事2つが全てです。
https://aws.amazon.com/jp/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/
https://qiita.com/nasuvitz/items/1a50d5ba9009ff72e3ba
>その本質は 「URLを発行するIAMユーザーまたはロールで可能なS3に対する操作を、URLを介して、期限付きでできるようにする」 です。
## やってみた
### S3バケットを用意 S3バケットを用意
適当に拾った犬の画像でテストします(可愛いから)。https://stock.adobe.com/jp/images/%E7%AC%91%E9%A1%94%E3%81%AE%E6%9F%B4%E7%8A%AC/41495025
バケットと
未経験でもAWS SAAを2ヶ月で何とかパスした話
おはこんばんは! なおぽんです!
4月末にAWS SAAの試験に793点で合格しました!!
インフラ未経験で職業経験もないですが、せっかく合格できたので私の行った勉強方法をシェアします🐹## ステータス
– インフラ完全未経験
– 現在無職
– AWS自体はS3を少しいじったことある程度## 学習期間と時間
– 2ヶ月と少し
– 試験の2週間前は1日平均3~4時間
– 試験の2週間前からは1日6~7時間程度## 学習に使用したもの
– 辞書として使用した参考書
– [(模擬問題付き)徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応(いわゆる黒本)](https://amzn.asia/d/eBRAMAv)
– 問題集
– [Ping-t](https://mondai.ping-t.com/g)
– [【公式出題比率同じ】AWS SAA-C03実践模擬問題集(ソリューションアーキテクトアソシエイト)](https://www.udemy.com/share/109BP83@LpDoVZm9UWw
エンジニア未経験転職後、約1年半でAWS資格 10個取得してみた
# 簡単な経歴
大学卒業後、新卒で食品製造販売の会社に入社し販売部で約7年間勤めました。
当時29歳、将来のことを考えたときに現職では得られない技術的なスキルを身につけたいという気持ちが強くなり、未経験ながらも思い切ってIT業界に転職し、本記事執筆時点で約2年が経過している30代前半のおっさんです。転職後はSESとしてお客様先に常駐し、今まで運用していた自動音声案内システムをAWSを使ったシステム(Amazon Connectを使用)へ移行するという案件に携わることになりました。「AWSに関わるのだから事前に知識をインプットしなくては!」という気持ちでAWSの勉強を始めたところ「AWSって面白いな~」となりました。「せっかく勉強するのだから資格取得を目指そう!」…そんなわけでAWS認定資格取得の道を歩むのだった。
# この記事の目的
・AWS認定資格に興味がある
・未経験だけどAWS認定資格にチャレンジしてみたい
・AWS認定資格を勉強中だけどどのように進めれば効率がいいのか分からないこのような方に向けて自身の経験を踏まえたお話をさせていただき、参考になれば幸いです。
~~資
CohereのモデルをAWS上(Bedrock or SageMaker)で使う方法(2024/4/30時点)
Cohereで色々なモデルがリリースされてまして、AWSのBedrockとSageMakerでの提供状況を表にしました。
## テキスト生成モデル(Commandシリーズ)
| モデル名 | Bedrock提供状況 | SageMaker提供状況
| — | — | — |
| Command R+ | 提供 | 提供 |
| Command R | 提供 | 提供 |
| Command | 提供 | 提供 |
| Command-Light | 提供 | 提供 |* Cohereが提供している`command-nightly`と`command-light-nightly`はいずれも未提供
## 埋め込みモデル(Embedシリーズ)
| モデル名 | Bedrock提供状況 | SageMaker提供状況
| — | — | — |
| Embed English v3.0 | 提供 | 提供 |
| Embed Light English v3.0 | – | 提供 |
| Embed Multilingual v3.0 | 提供 | 提供 |
古いOSを導入したAWS EC2インスタンスを稼働させつつ最新のOSにアップデートする
## はじめに
AWSでEC2を使ってると、アカウントの利用者自身でOSやアプリケーションで使うソフトウェアのアップデートを行う必要がたびたび発生します。
AWSのサーバレスのプログラムランタイム環境であるLambdaだと、OSやソフトウェアのサポート期限・EOL (End Of Life)を過ぎたランタイム環境は自動更新されます。ただ、これによりあるバージョンのランタイム環境では動くコードが、新しいランタイム環境では動かなくなってしまう場合もあります。
Lambdaと比べるとEC2の場合、EOLを過ぎた古いOSでも自動更新は行われないので使い続けることはできます。しかしながら、EOLが過ぎたOSはセキュリティパッチ等リリースされなくなるため、ゼロデイ脆弱性の危険も高まりセキュリティリスクとなります。
また、AWS側からEC2の環境に追加された新しい機能を利用したい場合、EOLを過ぎたOSでは新しい機能が動かないこともあります。
セキュリティリスクを軽減させ、便利な機能を享受するためにも、なるべくEC2内部のOSも最新を保つことが望ましいです。
ただ、そうはいっても、本番環
Amazon BedrockにCohere Command R と Command R+ が来たよ!RAGがすげーよ!
GW真っ只中の4/30、Amazon BedrockにCohere Command RとCommand R+がやってきました!!🎊🎊🎊
https://aws.amazon.com/about-aws/whats-new/2024/04/cohere-command-r-r-plus-amazon-bedrock/
Command R+はただのテキスト生成の枠を超えたAPIになっています!(と勝手に解釈しています!!)
いろいろ特徴がありそうですが、まずは、RAGをやってみました。
## なにがすごいの?
Command R+のInvoke ModelのBodyが特徴的で、 **documentを渡す専用項目があります** 。
“`json
{
“message”: string,
“documents”: [
{“title”: string, “snippet”: string},
]
}
“``message`に質問を入れて、関連ドキュメントを`documents`にセットします。
そう、まさしくRAGです。::
AWS
## インフラ構築の際に考えること
1. サーバーの構成
サーバ用のOSの設定など2. ネットワークの構成
IPアドレスをいい感じにする
【AWS×Webアプリ】S3静的Webサイトホスティング
## 目的
・AWS上にS3バケットを作成し、静的Webサイトホスティング設定を行う。## 前提条件
・SAMを使用してAWS上にリソースを作成する。## 完成イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637963/134555c8-3df4-e9c1-0ac2-377cd7e4da7e.png)## SAMテンプレート
“`template.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31Resources:
WebBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${AWS::StackName}-webbucket-${AWS::AccountId}
VersioningConfiguration:
Statu
CloudWatch カスタムディメンション追加
## はじめに
CloudWatchメトリクスのカスタムディメンション追加に関する備忘録
今回はEC2上でテストスクリプトを実行してメトリクスを受け取る。## 1. EC2インスタンスにSSH接続
“`ruby:bash
ssh -i ‘キーペアのパス’ ec2-user@’EC2のパブリック IPv4 DNS’
“`
## 2. CloudWatch エージェントのインストール“`ruby:bash
sudo yum install amazon-cloudwatch-agent
“`## 3. CloudWatchエージェントの構成ファイル編集
以下のコマンドでvimを開く
“`ruby:bash
sudo vim /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json“`
以下をコピペして保存
今回はインスタンスIDとインスタンスタイプを追加取得する
“`ruby:json
“metrics”: {
“append_dimensions”: {
“
AWS Amplifyの新世代Gen2で生成AIアプリをサクッとデプロイ!
これをやっていきます。
https://aws.amazon.com/jp/blogs/news/use-generative-ai-and-next-js-with-aws-amplify-to-build-a-fullstack-recipe-generator/
なお、エラー等で詰まったときはClaude 3 Opus(有料版)を頼りました。おっぷすおっぷす〜〜!!✌️✌️ [^1]
https://claude.ai/
[^1]:https://x.com/syobochim/status/1780267677782880498
# ハンズオン
### ローカル環境の準備
前提条件を確認:
– Node.js v18.17 以降
– npm v9 以降
– git v2.14.1 以降なお、Nodeはv20系だとうまく動かないため注意。**(ハマりポイント)**
### Bedrockのモデルを有効化
バージニア北部のClaude 3 Sonnet(中堅モデル)を有効化しておく。
![スクリーン ショット 2024-04-29 に 17.58.28
IAM を触るに当たって気を付けること
# はじめに
最近、AWS の IAM 触り始めて色々気を付けないといけないことがでてきたので共有する# IAM なんやいね
AWS IAM はユーザーのアクセス制限を管理したり、リソースからリソースへのアクセス制御を管理したりと主に AWS のアクセス関連全般を制御するサービスhttps://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html
なので、IAM の操作をやらかすと重大なインシデントが起きる代物になったりする
# 気を付けること1:ロールはポリシーまでチェック
当たり前のことですが、ロールには複数のポリシーがアタッチされています。ロール名で「あー××のロールなんだなー」と名前だけで判断せず、何のポリシーがアタッチされているのか?そのポリシーは何を許可、不許可、どんな条件かを確実に確認するべきです。その確認によってインシデントを回避できるなら儲けもんです# 気を付けること2:むやみにグループにユーザーをアタッチしない
特に本番環境を更新できてしまうようなポリシーがグループに含まれて
cdk-nagで子スタックにNagSuupression適用されない
今日はCDKでNAGを使っていた際に登場してきた簡単なエラーの対処法についてメモしておきたいと思います。
# そもそもcdk-nagとは…
AWS CDKのセキュリティベストプラクティスをcdk synthコマンドによりCloudFormationテンプレートを作成する際、自動で行ってくれる便利道具です。https://aws.amazon.com/jp/blogs/news/manage-application-security-and-compliance-with-the-aws-cloud-development-kit-and-cdk-nag/
# 背景&問題
**cdk-nagのサプレスが機能しない事例に行き当たった…**
cdk-nagを使って開発を行って行っていたのですが、1つのスタックに全てのリソースを定義している状態だったのでリファクタリングでスタックを分けようとしました。
対応しなくても良いベスプラチェックに関してはNagSuppressionによって無効化していました。
“`typescript: backend.ts
#!/usr/bin/en
API Gateway経由でLambda呼び出すときのマッピングテンプレート
## はじめに
BedrockにAPIリクエスト投げるLambda書いたからフロントエンドも作りたいな…と言いつつ数か月経ってしまった。
API Gatewayにリクエスト投げるシンプルなhtml書いてS3+CloudFrontのベタな構成……と思ったらAPI Gatewayにリクエスト投げるところで詰まったので、とりあえずその部分を記事化。Lambda書いたときの記事
https://qiita.com/Pretzelisa/items/61c4d3838bb6ac7ff561
https://qiita.com/Pretzelisa/items/e9f873806ed40d853e71
## 1. ハマリポイント
Lambdaに引数keywordを渡す必要がある。マネコンのLambdaのエディタからテストしたときは以下のようにJSONを手打ちして問題なく動いていた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3458266/b3f56c84-2487-1393-ce1
Github action実行時、 ”unexpected status from HEAD request to 403 Forbidden”エラーの解決
# 状況
– AWS ECRにGithub actionで作成したイメージをpushしようとしている
– buildxを使用している
– ローカルからのpushは成功している# 解決策
Pushに使用しているAWSロールのポリシーに`ecr:BatchGetImage`を追加する
“`yaml
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: “ecr:GetAuthorizationToken”,
“Effect”: “Allow”,
“Resource”: “*”
},
{
“Action”: [
“ecr:UploadLayerPart”,
“ecr:PutImage”,
“ecr:InitiateLayerUpload”,
“ecr:CompleteLayerUpload”,
“ecr:BatchCheckLayerAvailability”,
“ecr:BatchGetImage” # 追加
],
“Effec
初めての個人開発 ①要件定義・設計編
# はじめに
私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。https://apprentice.jp/lp
アプレンティスの課題としてオリジナルプロダクトを開発したので、その内容をまとめようと思います。
今回はその「要件定義・設計編」となります。# 目次
[1.テーマ(エレベーターピッチ)](#1-テーマ(エレベーターピッチ))
[2.課題定義](#2-課題定義)
[3.要件定義](#3-要件定義)
[4.業務フロー](#4-業務フロー)
[5.画面遷移図](#5-画面遷移図)
[6.ワイヤーフレーム](#6-ワイヤーフレーム)
[7.デザインカンプ](#7-デザインカンプ)
[8.プロトタイプ](#8-プロトタイプ)
[9.テーブル定義](#9-テーブル定義)
[10.ER図](#10-ER図)
[11.使用技術](#11-使用技術)
[12.システム構成図](#12-システム構成図)
[13.学んだこと](#13-学んだこと)# 1. テーマ(エレベーターピッチ)
自身のベジタリアンの種類に対応したレシピ
「AWSのWhat’s Newを解説くん」」をBedrockで作りました。
皆様、Bedrockを使うとこんな素敵なことができるようです!(すごい)
Amazon BedrockのClaude 3で、先人に倣って5ch風スレッドを作れないかと試していますが、本当に凄い pic.twitter.com/uOabApcFR6
— nasuuu (@nasuvit_z) April 17, 2024
AWS CDK : 特定のAPIコールを監視してみた (CloudTrail,CloudWatch Logs)
# 概要
CloudTrailを用いて特定のAPIコールを監視する方法として下記の2パターンがあります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746031/63af7343-8b20-d988-e04b-d100cf912651.png)
今回は「2. CloudTrailログのCloudWatch Logsへの格納及びメトリクスフィルタ・アラームの指定」のような「CloudTrailを用いて管理されたAPIコールログをCloudWatch Logsに転送し、メトリクスフィルタでフィルタリング、特定のAPIが呼び出された時にSNS通知を行う」という構成をCDKで検証してまとめてみました。「1. EventBridgeのイベントソースとしてAPIを指定」の構成は以下の記事をご覧ください。
https://qiita.com/Ak_ki/items/461991c1a67a1a0e4e2c
# 構成図
以下に示したようなAPIコールを監視する設計としています。
– IAM初サイト制作メモ5: サイトに載せる画像をS3に配置する
# AWS上にバケット、フォルダを作成
サイトに載せる画像なので公開状態で置いておきたい。
バケット作成時、パブリックアクセスのブロックのチェックを外す。
![スクリーンショット 2024-04-29 16.59.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366676/85b7a22e-7429-130b-c1db-f48418f06f8e.png)作成したバケット内に、imagesフォルダを作成する
![スクリーンショット 2024-04-29 17.01.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366676/9e48d314-c3a0-59f5-f444-5f0065f5c2f0.png)Amazon S3で画像や他のファイルを公開的にアクセス可能にするためには、単に「アクセスのブロックをオフ」にするだけでなく、適切なバケットポリシーを設定する必要があるらしい。
![スクリーンショ