- 1. CloudFormationの!Ref と!GetAtt
- 2. DR戦略まとめ
- 3. AWS Certified Solutions Architect – Associate(SAA-C03)受験奮戦記
- 4. ALB配下のEC2 VirtualhostにてHSTSの設定をしてみた
- 5. awsume で本番プロファイルにスイッチロールすると赤背景で警告
- 6. 非対称ルーティングってなんぞや???
- 7. AWSセキュリティサービスまとめ(SAA-C03)
- 8. AWSのアップデートをSlackに通知する”What’s New Summary Notifier”をSlackフリープランのWebhookで受信する
- 9. Terraform 実行時に Assume Role して行いたい
- 10. AWSの予算超過時の通知設定をIaCで手軽に実現してみる
- 11. 【SOA】試験対策メモ その4
- 12. 「RDS for Db2・はじめの一歩」3回 シリーズ
- 13. streamlitとlangchainでチャットAIを作る
- 14. クロスアカウントアクセスでS3バケットへファイルアップロード
- 15. Livebook で Claude 3.5 Sonnet を Amazon Bedrock の基盤モデルとして呼び出す
- 16. AWS Certified Data Engineer – Associate(DEA-C01)を受験してみた
- 17. Re:ECS タスクの停止理由を Slack へ通知してみた
- 18. Bedrockでカスタムモデルのクロスアカウント共有とリージョンコピーが可能になりました!
- 19. 書評「AWSではじめる生成AI」
- 20. 【AWS】エラー「CloudFormation cannot update a stack when a custom-named resource requires replacing」の対処法
CloudFormationの!Ref と!GetAtt
## この記事の対象者
CloudFormationを使い始めたばかりの初心者
## !Refとは?!Refは、CloudFormationテンプレート内で他のリソースやパラメータを参照するための関数
#### !Refの主な用途と特徴
1. **パラメータの値を参照する**
– パラメータ値の参照には常に!Refを使用2. **リソースの基本的な情報を取得する**
– リソースID
– リソース名
– 一部のリソースの基本的な属性(例:EC2インスタンスIDなど)#### ポイント
– !Refは、パラメータとリソースの両方に対して使用できる
– リソースに対して使用した場合、通常はそのリソースを一意に識別する値(多くの場合、IDや名前)を返す
– パラメータに対して使用した場合、そのパラメータに設定された値を返す## !GetAttとは?
!GetAttは、CloudFormationテンプレート内で特定のリソースの属性値を取得するための関数
#### !GetAttの主な用途と特徴
– リソースの詳細な情報(IPアドレス、ARN
DR戦略まとめ
## はじめに
今回はSAPを学習していくなかでごちゃごちゃになっていたDR戦略についてまとめてみました。## 記事の対象者
– AWS初学者
– SAA、SAPを取ろうと思っている方## DR目標
– 目標復旧時間(RTO):サービスの中断からサービスの復旧までの最大許容遅延時間。これによりサービスのダウンタイムの許容可能な期間が決まります。
– 目標復旧時点(RPO):最後のデータ復旧ポイントからの最大許容時間。これにより許容できるデータの損失とみられるものが決まります。
実際の試験でもこの2つの目標を要件にして出題されることがあります。## DR戦略
### バックアップと復元
本番環境を別リージョンにバックアップする。バックアップからのデータリカバリに加えてリカバリリージョンに本番環境を復元する。
![バックアップ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812406/76c6ad98-f9ed-4953-dbd5-4144d147e5b1.png)### パイロット
AWS Certified Solutions Architect – Associate(SAA-C03)受験奮戦記
# 目次
[1. はじめに](#1-はじめに)
[2. インプット1(英語学習なら英単語に相当)](#2-インプット1英語学習なら英単語に相当)
[3. インプット2(英語学習なら英文法に相当)](#3-インプット2英語学習なら英文法に相当)
[4. アウトプット(英語学習なら英会話に相当)](#4-アウトプット英語学習なら英会話に相当)
[5. その他](#5-その他)## 1. はじめに
実業務でAWSのマネージメントコンソールに触れることは多くないものの、徐々に増えつつあります。
現在所属している会社がAWS資格取得を奨励していることと、仕事が一段落したことから、一念発起しました。私は、ハンズオンは極力省略する学習スタイルでインプット&アウトプットサイクルを回しました。
合格までに要した期間は2か月程度です。本稿が誰かの合格に一助となれば幸いです。
### 書くこと
有用と感じた教材と感想### 書かないこと
AWSやSAAの概要
途中で挫折した教材と感想## 2. インプット1(英語学習なら英単語に相当)
* [AWSソリューションアーキテクト(アソシエイ
ALB配下のEC2 VirtualhostにてHSTSの設定をしてみた
## はじめに
apacheのバーチャルホストごとにHSTSの設定ができるか検証してみました**今回ドメインを例としてexample.comとしましたが各自のドメイン名に置き換えてください**
以下の記事を参考にさせていただきました。
EC2 Amazon Linux 2 のVirtualHost 設定手順
https://qiita.com/gama1234/items/02640dd9d9185360c4f0HSTS (HTTP Strict Transport Security) の導入
https://qiita.com/takoratta/items/fb6b3486257eb7b9f12eAWS ALB 配下で HSTS の設定を行う方法
https://qiita.com/syoimin/items/db85769349d2cb9bda24## 前提条件
ACM ALB EC2を事前に作成する## 対応手順
rootに昇格する
“`
$ sudo su –
“`
yum updateを実施する
今回はupdateするパッケージがありませんでし
awsume で本番プロファイルにスイッチロールすると赤背景で警告
[awsume]:https://awsu.me/
[warp]:https://www.warp.dev/[awsume] を使って Mac Terminal 上で AWS Profile を切り替えているケースで、本番アカウントの AWS Profile へ切り替えた際に **赤背景にして注意喚起** を促す設定です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60131/9f868ced-c0c8-1d17-06d5-de1201d36d5e.png)
# 環境・制限
本記事の方法は次の環境のみが対象です。
* スイッチロールに [awsume] を使用している
* zsh ユーザーのみ対象
* zsh 標準のプロンプト設定 `PROMPT`, `PS1` が有効なターミナル:::note alert
[warp] 等、何らかのツール・設定で既にプロンプト設定が書き換えられている場合は、残念ながら本記事の設定は
非対称ルーティングってなんぞや???
## ネットワークの知識
– AWSクラウド基盤案件に携わって6年程度。
– それまでは(オンプレミス)アプリケーション開発に従事することが多かったので、苦手にしていた分野でもある。
– まだまだ分からない事が多いですがメンバーにも助けられ、日々の業務や自己研鑽の時間でキャッチアップを行なっています。## きっかけ
– AWS Certified Advanced Netwoking Speciality の 受験勉強していた時に、聞いたことのなかったキーワードが出てきたぞ!
– 『非対称ルーティング』
– ん? 何それ?
– リクエスト側サブネット構成が3AZで、対向側サブネットの構成が2AZで、PrivateLink を構成した場合、『非対称ルーティング』になるのではないか?という疑問から## そもそも非対称ルーティングってなんぞや???
ChatGPT o4 先生に聞いてみると下記回答で応答がありました。
> 非対称ルーティング(Asymmetric Routing)は、送信経路と受信経路が異なるルーティングパスを通る状況を指します。
これは、ネットワーク
AWSセキュリティサービスまとめ(SAA-C03)
# AWSセキュリティサービスまとめ
SAA-C03向け## ファイアウォール系
|サービス名|特徴|
|—|—|
|Shield|
- レイヤー3,4へのDDos攻撃からのマネージド保護
- 無償のStandard、ELB, Route53, CloudFrontなどと統合できる有償のAdvancedがある
|
|WAF|
- レイヤー7への攻撃(クロスサイトスクリプティングやSQLインジェクション)から保護
- ALB, CloudFrontと統合し、HTTP/Sリクエストを監視するウェブアプリケーションファイアウォールである
- ウェブACLで送信元の国を制限できる
AWSのアップデートをSlackに通知する”What’s New Summary Notifier”をSlackフリープランのWebhookで受信する
# はじめに
AWSの最新情報は[What’s New with AWS?](https://aws.amazon.com/new/)や[AWS News blog](https://aws.amazon.com/blogs/aws/)などで日々提供されていますが、これらから必要な情報を探し出し、内容を理解するのは大変な作業です。そこで、AWSが情報の収集、日本語での要約、受信Webhookに対応したコラボレーションツールへの投稿を行うソリューション[What’s New Summary Notifier](https://github.com/aws-samples/whats-new-summary-notifier)を公開しました。しかし、このコードはSlack有料プランのワークフローにあるWebhookを使う実装となっています。WebhookなのでフリープランのIncoming Webhooksで受信できるよう少し手を加えてみました。
さらに、得られた要約をXでシェアできるよう、シェアリンクも追加しました。https://aws.amazon.com/jp/builde
Terraform 実行時に Assume Role して行いたい
# やりたいこと
AWS にリソースを Terraform でプロビジョニングする際に、事前に作成していた開発者ロールを利用して権限を絞った状態で行いたい、となった時があったんですが、ちょっと手こずったので記事にしてみます。# 状況
:::note warn
本来は dev, stg, prod などで AWS アカウントを分けるべきですが、諸事情により1アカウントでやる必要がありました。
:::ざっくりと以下のような形。
* GitHub Actions からは OIDC 経由で専用のポリシーをアタッチしたロールに AssumeRole して AWS にプロビジョニングする
* develoer role には専用のポリシーをアタッチしており、開発者はこのロールに AssumeRole して Terraform コードの開発を行う
* 通常の IAM ユーザでは何もできない
* GitHub Actions と developer role は同じアクセス範囲にしたい
* 開発者が Terraform に必要な権限が不足していることに気づいてポリシーを修正できるよう
AWSの予算超過時の通知設定をIaCで手軽に実現してみる
# 概要
CloudFormation(AWSマネージドのIaCサービス)を使用してBudget(AWSリソースのコスト管理サービス)の設定を行う## 1. テンプレートファイルをローカルに準備
以下①か②どちらかをyamlファイルとしてローカルに保存しておく
– ①予測コストが基準を超えそうになったり、超えちゃったタイミングでメール通知
“`yaml:alarm-budget.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Parameters:
myAlarmCostUSD:
Type: Number
Default: 1 # 基準を1USDとする
Description: Alarm Cost.USD.
myEmail:
Type: String
AllowedPattern: >-
[a-zA-Z0-9]+[-._a-zA-Z0-9]*[a-zA-Z0-9]+.@[a-zA-Z0-9]+[-._a-zA-Z0-9]*[a-zA-Z0-9]+\.([a-zA-Z0-9]+[-
【SOA】試験対策メモ その4
# EC2 Image Builder
## 概要
事前定義に従ってAMIを作成するサービス。
AWS Systems ManagerのAutomationドキュメントを実行できるため、ソフトウェアアップデートなどを行った上でAMIを作成することができる。# ELB
## SSLネゴシエーション設定
SSLプロトコルのバージョン(SSLv3とかTLSv1.3とか)、暗号アルゴリズム、証明書などの一連の設定。# AWS Compute Optimizer
## 概要
以下のリソースについて、推奨事項(インスタンスタイプの変更など)をボード表示してくれるサービス。
– Amazon EC2 インスタンス
– Amazon EC2 Auto Scaling グループ
– Amazon EBS ボリューム
– AWS Lambda 関数
– AWS Fargate# Amazon Macie
## 概要
S3に保存された機密情報を含むデータを解析してくれるサービス。
ダッシュボードか
「RDS for Db2・はじめの一歩」3回 シリーズ
# Amazon RDS for Db2がGA
2023年11月より、Db2もAWSのマネージド・サービスとして提供開始されています。https://qiita.com/camp07/items/5e616f32713cffa5fce7
このRDS for Db2に関する、日本IBM Data and AI主催のウェビナーの資料が公開されました。
# 「RDS for Db2・はじめの一歩」3回 シリーズの資料が公開
IBM Database Dojoとして、Amazon RDS for Db2の「はじめの一歩」30分のウェビナー✖️3回が、2024年6月-7月に開催されました。
その資料と録画が公開されています。
実際のAWSの画面を使ったライブデモの録画であり、具体的でわかりやすい内容となっています。
注)資料へのLinkは各connpassサイトの下の方にあります
### 1.[『RDS for Db2 はじめの一歩・作り方編』](https://ibm-developer.connpass.com/event/321924/)
|AW
streamlitとlangchainでチャットAIを作る
# はじめに
今さらですが、最近の学習で**streamlit**を知りました、
爆速で**ChatGPT**のようなサービスを作れるとのことで、その過程を記録していきます。:::note info
Streamlit
Pythonで簡単にデータアプリケーションを作成できるフレームワークです。データサイエンスや機械学習の結果を、簡単にインタラクティブなウェブアプリケーションとして表示するためのツールとして人気があります。[公式ドキュメント](https://streamlit.io/)
::::::note info
langchain
LangChainは、LLMを使ったアプリケーションを簡単に作成・統合するためのフレームワークです。 [公式ドキュメント](https://www.langchain.com/)
:::## 成果物
![画面収録 2024-08-02 14.37.42.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320164/334570db-ff7f-abe0-d9c
クロスアカウントアクセスでS3バケットへファイルアップロード
# やりたいこと
BアカウントのIAMユーザーから、Aアカウント所有のS3バケットへファイルをアップロード# やり方
## ①Aアカウント
### バケット作成
設定がデフォルトでいい
(ACL使わない)
(パブリックアクセスブロックをオンのまま)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/e5b2d54f-795a-944c-e254-c05171821306.png)
### バケットポリシー設定
(BアカウントのIAMユーザー作成へアクセス権限を付与)
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Only allow writes to my bucket with bucket owner full control”,
“Effect”: “Allow”,
“Principal”: {
Livebook で Claude 3.5 Sonnet を Amazon Bedrock の基盤モデルとして呼び出す
## はじめに
AWS の生成 AI サービス Bedrock を Livebook から呼び出します
2023 年 12 月にもやっていますが、今回は Claude 3.5 Sonnet に画像を与え、内容を説明してもらいます
https://qiita.com/RyoWakabayashi/items/bb85dd2286420205e2da
実装したノートブックはこちら
https://github.com/RyoWakabayashi/elixir-learning/blob/main/livebooks/aws/bedrock_claude_35.livemd
## 事前準備
以下の記事を参考に、 AWS コンソールから基盤モデルのアクセス要求を出しておきましょう
https://qiita.com/RyoWakabayashi/items/5680a4bac246a1a0c532
また、 AWS にアクセスするための IAM ユーザー、認証情報が必要です
## セットアップ
必要なモジュールをインストールします
以前はまだ AWS Elixir の
AWS Certified Data Engineer – Associate(DEA-C01)を受験してみた
# はじめに
先月に「AWS Certified Data Engineer – Associate」(DEA-C01)を受験しました。# スコア
**840/1000**無事に合格できました。
やはり、Professional系の試験と比較して問題文・選択肢の文章量がすくなく、気が楽でした。
難易度については、以前から業務で出題範囲内のGlueやらRedshiftを使ってたこともあり、勉強中もイメージしやすかったように思います。# 受験対策
### Web問題集
3~4周くらい実施しました。### 公式練習問題
#### Exam Prep Official Practice Question Set: AWS Certified Data Engineer – Associate(DEA-C01 – Japanese)
こちらについても何周か実施しています。# 受験方法
テストセンターで受験しました。
試験に集中したいというものあり、テストセンターでの受験を個人的におすすめしています。
受験日が平日の昼
Re:ECS タスクの停止理由を Slack へ通知してみた
# はじめに
暑い日々が続きますね。
なんだかんだでAI界隈に中々DeepDiveできない [@\_\_\_nix___](https://twitter.com/___nix___) です。# 背景
「ECS のタスク停止理由を Slack に通知してみた」をテーマにすると、ECSタスク停止後の昇天までの時間は1時間以内ということで皆さん様々なご苦労をされているかと思います。* 1時間以内にログを確認
* EventBridgeでストップイベントをフック
* 等々そこで先日(勝手に)リスペクトしているたかくにさんが次のようなブログを執筆してました。
https://dev.classmethod.jp/articles/ecs-task-stop-reason-slack-notification/
これ、めっちゃ便利やん!と思いながらも画面見ながらポチポチし、「ここはこうかな?」と考えながらAWSマネージドコンソールとにらめっこするのがツラミでした。
「それならもうIaC(Terraform)で書いちゃおう!」という勢いで進めて行こうと思いますが、更にアーキテク
Bedrockでカスタムモデルのクロスアカウント共有とリージョンコピーが可能になりました!
## はじめに
これまでBedrockのデフォルトでは、カスタムモデルの使用は作成されたリージョンとアカウントでのみ利用可能でした。今回追加された機能では他のリージョンへのコピーや別AWSアカウントへの共有ができるようになりました!![スクリーンショット 2024-08-02 9.50.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/416655a6-7440-4728-b8f9-b928dfb1a231.png)
## カスタムモデルのリージョンコピー
### カスタムモデルコピーのサポートリージョンとベースモデル
※Claude 3 Haikuはまだプレビュー中なのでClaude 3 Haikuを微調整したい場合は、事前にサポートへ問い合わせをしましょう。| モデル | 米国東部 (バージニア北部) | 米国西部 (オレゴン) | アジア太平洋 (ムンバイ) | アジア太平洋 (シドニー) | ヨーロッパ (アイルランド) | ヨーロッパ (フランクフルト) | ヨー
書評「AWSではじめる生成AI」
ありがたいことに、「AWSではじめる生成AI」を献本いただきました。
https://www.oreilly.co.jp/books/9784814400720/
> AWSではじめる生成AI
> ―RAGアプリケーション開発から、基盤モデルの微調整、マルチモーダルAI活用までを試して学ぶ
>
> Chris Fregly、Antje Barth、Shelbee Eigenbrode 著、久富木 隆一 訳、本橋 和貴、久保 隆宏 技術監修発売日に合わせて書評をと思ったのですが、サラッと読んで理解できる本ではなかったので、読んだところまでで、ご紹介させていただきたいと思います。
## まえがき
まえがきでは、6月開催のAWS Summit Japan 2024に触れられています。原著を単純に翻訳するだけでなく、できるだけ最新の情報を盛り込んでくれています。
原著では、「Pythonや深層学習の基本要素についてはすでに知識があるもの」を想定されていますが、日本語版では概念についての解説が訳注として追加されています。このあたりも嬉しい点だなと思いました。
## 1章 生成A
【AWS】エラー「CloudFormation cannot update a stack when a custom-named resource requires replacing」の対処法
# 概要
AWS Batchを記述したCloudformationテンプレートを更新したら、以下のエラーになりました。こちらの原因と対処法を解説します。
> CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename arn:aws:batch:ap-northeast-1:1234567890:compute-environment/xxxx-compute-environment and update the stack again.
# 原因
このエラーは、CloudFormationがカスタム名を持つリソースを置き換える必要がある場合に発生するもの。
今回で言うと、AWS Batchの`compute-environment`が該当します。Batchの`compute-environment`の中身を少し変えたので、そうするとCloudFormationは新しいリソースを作成し、古いリソースを削除しようとしますが、カスタム名を持つリソースは直接