- 1. ReactにおけるGoogle Analyticsの実装手順
- 2. BedrockでCloudWatchlogsの分析アプリ
- 3. 【AWS】小学生でもわかる!ELB(Elastic Load Balancer)を徹底解説【擬人化】
- 4. インフラ構築を簡単にするAWS CloudFormation
- 5. EC2サーバーへのアクセスログを調べる
- 6. Tera Termをインストールする前に、ターミナルエミュレータって何?
- 7. 【AWS】AWS-SOA合格体験記
- 8. LambdaからRDSにアクセスができない理由
- 9. VSCodeとEC2で実現する快適リモート開発
- 10. 運用工数削減!AWSで効率的なマルチアカウント管理をするには(1/3)
- 11. AWS CDK CLI のインストール方法
- 12. Ubuntu で Kubeadm により k8s 環境構築実験(1)
- 13. DiagramsでAWS構成図をパッと記載しよう!
- 14. AWS Chatbot と Bedrockエージェント の連携をIaCする!
- 15. 【個人開発】GoでECSの定義ファイルを生成するアプリを作ってみた
- 16. AWSのアカウントとIAMに関する備忘録
- 17. Lambda関数でMySQLに接続する(セルフホスト)
- 18. CloudFormationでControlTowerをデプロイする際のKMS設定と暗号化確認手順
- 19. 【あなたのAWS、攻撃されていませんか?】今すぐGuardDutyで脅威をあぶり出せ!
- 20. RAGのクエリ拡張を「Tool Use」機能を使って実装
ReactにおけるGoogle Analyticsの実装手順
# ReactアプリにGoogle Analyticsを導入する手順
以前の記事で、Reactを使ったWebサービスを個人開発しました。その際、アクセス解析のためにGoogle Analyticsを導入したので、手順を備忘録として残しておきます。
—
## 手順
1. [Google Analyticsの開発者サイト](https://developers.google.com/analytics?hl=ja)にアクセスします。
2. 「測定を開始」をクリックします。
![測定を開始](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892822/a89eeaa1-e443-3976-d5c4-717ac646f545.png)3. 任意の「アカウント名」を入力し、「次へ」をクリックします。
![アカウント名の入力](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892822/03b674f3-a2eb-73
BedrockでCloudWatchlogsの分析アプリ
# 機能
障害発生時間帯、障害発生内容を入力すると指定した時間帯のログを分析して結果を表示してくれる。
![障害対応.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/94d8e88f-e5d5-6146-5acc-541f769aa854.png)
# アーキテクチャ
EC2でStreamlitを起動。サーバやネットワークのログをCloudWatchLogsに取得しておく。
2つの処理があり1つ目の処理でCloudWatchLogsから指定した時間帯のログを取得する。2つ目の処理で取得したログ情報と障害発生内容をBedrockにインプットして分析結果を取得する。といった流れです。![アーキテクチャ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/f31772a1-82e7-038d-99db-196ea7fe6ba7.png)
# Lambdaのコード
“`python
im
【AWS】小学生でもわかる!ELB(Elastic Load Balancer)を徹底解説【擬人化】
:::note warn
「AWSに親しみを持つエンジニアが1人でも増えてほしい」という思いを込めて、擬人化で説明してます。
「ちょっとノリが合わないな…」と思ったら、戻るボタンで回れ右してね 😉
:::## 小学生でもわかるELBの概要
ELBさんは、部下の面倒見がとても良い中間管理職なんだよ。
部下にはEC2やECS、Lambdaっていう働き者がたくさんいるんだけど、ELBさんはその子たちが元気に仕事しているか、ちゃんと見てあげる役目を持ってるんだ。(**ヘルスチェック**)
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/target-group-health-checks.html
https
インフラ構築を簡単にするAWS CloudFormation
※編集中です。
皆さん、こんにちは! おすすめの牛は短角牛、ITエンジニアのSkyfox(なかやま)です!
この記事を読んで、AWS CloudFormationを使ってくださると嬉しいです!# **この記事について**
### **対象者**
– 手作業でAWS環境構築するのに疲れた方
– CloudFormationに興味がある方
– AWSリソースをマネージドコンソールで作成したことがある方### **本記事のゴール**
– CloudFormationの概要がわかること
– CloudFormationを使用してみようかという気持ちになること# 背景
AWS環境をマネージドコンソールで作成したことがある皆さん、こんなことを思ったことはありませんか?![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3752776/e2b26497-ff9b-9d50-c183-74a6c909db49.png)
今回の記事では、このようなお悩みを解決します。
# CloudFo
EC2サーバーへのアクセスログを調べる
# 概要
EC2サーバーへログインするとどのようなログが記録されるのかを整理する。
# 前提
– EC2インスタンスをパブリックサブネットで起動
– セキュリティグループで、22番ポートのインバウンドを許可
– OS: Amazon Linux 2023
– OpenSSH_8.7p1, OpenSSL 3.0.8 7 Feb 2023
– キーペア設定# SSH
## ログ
“`
$ sudo journalctl -u sshd
“`
### EC2 Instance Coreで接続した場合
18.237.140.165(EC2 Instance Coreのエンドポイント)からアクセスに成功していることが分かる。
“`
Oct 28 03:17:51 ip-10-0-0-214.us-west-2.compute.internal ec2-instance-connect[2691]: Querying EC2 Instance Connect keys for matching fingerprint: SHA256:
Oct 28 03:17:51
Tera Termをインストールする前に、ターミナルエミュレータって何?
# はじめに
最近データアナリストから転生して、インフラ周りも扱えるようになろうとAWSを学習しています。新たな転生者へ少しでも役に立てればと、学習メモや躓きポイントを記していきます。
今回は未知のモンスター、ターミナルエミュレータと遭遇したので、対戦ログを残しておきます。
# EC2でのサーバ立ち上げ
今日は、EC2でインスタンスを起動してサーバを立ち上げました。
EC2インスタンスの操作をしていくにあたり、どうやらインスタンスの操作方法はサーバの種類によって異なるとのこと。
– **Windowsサーバー向け操作GUI**
– **Linuxサーバー操作用SSHソフト**SSH接続方式の場合、WindowsではSSHソフトウェアのダウンロードが必要なんだとか。
(MACだとターミナルが内蔵されています)そこで有名なのがTera Term。version 5を選んでダウンロード。
※2024年10月時点https://github.com/TeraTermProject/teraterm/releases/tag/v5.0
[Tera Term
【AWS】AWS-SOA合格体験記
## 受験前の取得済み資格
・LPIC Level2
・AWS-SAA
・Java-Silver## 使用した書籍やサイト
・CloudTech 資格会員:3か月分4980円(Web問題集)https://kws-cloud-tech.com/
・公式サンプル問題集(10問+デモ操作問題1問)
https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sysops-associate/AWS-Certified-SysOps-Administrator-Associate_Sample-Questions.pdf
・AWS Skill Builder内のサンプル問題(20問)
https://explore.skillbuilder.aws/learn/course/external/view/elearning/12555/aws-certified-sysops-administrator-associate-official-practice-question-set-soa-c02-japan
LambdaからRDSにアクセスができない理由
初めまして!CREとしてエンジニアをやってますkazuです🦌
業務では、社内システム自動化プロジェクトに携わってましてその中でLambdaから RDSへのアクセスがなぜできないのかという疑問が湧いてきたので、それぞれの役割と関係性について調べました。# そもそも、LambdaからRDSに接続することになったワケ
本プロジェクトは、要件定義から開発まで一貫して担当しているプロジェクトであり、これまで社内において手動でやっていたのものを自動化する事が目的です。最終的にはLambdaからRDSにアクセスをし、本番DBの値を更新する事でその結果をSlackに通知する事を目指しています。
正直なところAWSに関する知識は乏しく、「Lambdaを呼び出して実行すれば、本番DBを更新できるだろう」と考えていました。
しかし、インフラ構成図をもとにフィードバックを受ける中で、LambdaからRDSへのアクセスが簡単ではないことを知り、その理由について疑問が湧いてきたので調べることにしました。
# なぜ、LambdaからRDSへ接続ができないのか
– “`RDSの作成場所がVPC内である
VSCodeとEC2で実現する快適リモート開発
ローカルで開発したソースコードをEC2上にデプロイして動作確認するシーンがありました。
効率化するために、VSCodeから直接EC2へ接続しEC2上でコードの修正や実行をするための設定を行いましたので、その方法を紹介します。手順は以下になります。最後に実動作を紹介します。
1. EC2作成
1. ローカルからEC2へssh接続するための設定
1. VSCodeからEC2へssh接続するための設定
1. 開発デモ## 1. EC2作成
以下のテンプレートを使用してCloudFromationでサクッとEC2を作成します。
*CloudFromationからssmパラメータを参照できますので、それを利用して最新のAMIの情報を自動で取得してます。ec2.yaml
“`yaml
AWSTemplateFormatVersion: 2010-09-09
Parameters:
VpcId:
Type: String
PrivateSubnetId:
Type: String
Ec2Imag
運用工数削減!AWSで効率的なマルチアカウント管理をするには(1/3)
# はじめに
複数のAWSアカウントを利用するうえで、組織全体で一貫したセキュリティポリシーを適用し、AWSが推奨するベストプラクティスを維持した状態でアカウントを統括することが大切になります。弊社でも複数のアカウントを利用しており、環境を横断してアカウントを統括・管理することが課題となっています。この課題を解決するために現在AWS Control Towerの導入を検討しています。
AWS Control Towerは、Organizationsやその他AWSのセキュリティサービスと連携することで、AWSのベストプラクティスに基づいた設定を各アカウントに適用・制御できるサービスです。AWS Control Towerを活用した弊社の取り組みを全3回の連載形式で公開します!
| | コンテンツ(予定) |
| — | — |
| 第1回 | Control Towerの概要 |
| 第2回 | 私達の運用方法の紹介 |
| 第3回 | 導入後の効果と今後の展望 |今回は、第1回目ですので弊社で利用し
AWS CDK CLI のインストール方法
“`terminal:インストール
npm install -g aws-cdkadded 1 package in 2s
“`“`terminal:確認
cdk –version
2.164.1 (build bb9275c)
“`参考
https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/getting_started.html
Ubuntu で Kubeadm により k8s 環境構築実験(1)
AWS で、2台のマシンを構成します。
今回は、ubuntu を使用します。
“`
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
“`
1. Master Node (t3.medium)
2. Worker Node (t3.micro)
セキュリティグループ
ssh TCP:自分だけ
すべて ICMP 127.0.0.1/8
TCP 6443 10.0.0.0/8ポート 6443 を kubernetes が使うため、オープンにする必要があります。
また、containerd が必要です。Runtime Path to Unix domain socket
containerd unix:///var/run/containerd/containerd.sock今回は、Debian-based ということなので、これら
DiagramsでAWS構成図をパッと記載しよう!
## 概要
突然ですが、AWS構成図は皆さんどうしていますか?
コーディングで構成図を作成する方法を最近知ったので、本記事で紹介します!AWSアーキテクチャ図を手軽に可視化できるので、インフラ設計の効率化に役立ちます!
## Diagramsとは?
– Pythonでインフラ図を作成できるライブラリ
– コードを実行するとPNGファイル等として出力が可能公式サイト:
https://diagrams.mingrammer.com/
## メリット・デメリット
### メリット
– AWSだけでなくGCP、Azureなどの構成図も対応可
– コードでリソース管理できるので、変更等が柔軟に!
– ソースなのでバージョンGitで管理も可能### デメリット
– AWSのアイコンが一部存在しない
– IoT Core, Bedrock、Local Zones等 (2024年現在)
– https://diagrams.mingrammer.com/docs/nodes/aws
– 複雑な設計になるとコーディングに時間がかかるこう見るとかなり複雑な構成になるので
AWS Chatbot と Bedrockエージェント の連携をIaCする!
# はじめに
こんにちは! **yu-Matsu**です!
先月話題になっていた、**AWS Chatbot が Amazon Bedrock に対応した件**に関して、商用展開の際のパッケージ化などを想定して **Terraform での IaC** を試してみました。
https://aws.amazon.com/jp/about-aws/whats-new/2024/09/aws-chatbot-amazon-bedrock-agent-microsoft-teams-slack/
ちなみに、Bedrockエージェント自体のIaCに関しては、以前に別で記事を書いていますので、ご興味がある方はご覧ください。
https://qiita.com/yu-Matsu/items/17c7f026810c4a496c20
# 完成イメージ
以下のような、Slack上でずんだもんと会話できるようなChatbotが完成イメージとなります。ユーザーの問いかけに対して、自分で回答できない場合はWeb検索をして回答してくれます。
AWSSlackTerraformchatbotbedrock【個人開発】GoでECSの定義ファイルを生成するアプリを作ってみた
# 概要
久しぶりに人様のための個人開発をしてみました。AWS Fargateにデプロイする際、環境ごとに異なる値をECSのタスク定義に埋め込む必要がありますよね。最初はシェルスクリプトで環境変数を埋め込んでいたのですが、シェルって意外と繊細でエラーも出やすい。少し書き間違えただけで動かない…なんてことも多く、もっと簡単に管理できないかと考えた結果、ECSタスク定義ジェネレーターをGoで作ってみることにしました。
Goならシェルスクリプトよりも読みやすく、go installで簡単にインストールして使うことができます。Go CLIアプリとして、このツールを導入することで、効率的で安定したタスク定義の生成が可能になりました。
# 作ったもの
https://github.com/rendaman0215/ECSBuilder## 使い方
– 必要なファイルの用意
– タスク定義のテンプレートファイル
– .envファイル
– インストール
– “`go
go install github.com/rendaman0215/ECSbuilder
AWSのアカウントとIAMに関する備忘録
# 記事を書こうと思ったきっかけ
AWSを使った初心者向けの勉強会を開催しようと思い、その際に参加者に実際の環境を使ってもらおうと考えた。AWS環境を使って実現したいことは
– 参加者が私の環境下でリソースを操作できる
– 参加者には一括で適切なリソースの操作権限を付与する
– 参加者のアカウントは私が提供する上記について、AWS Organizationを使えばできると思っていたが、調べていくと間違いだと気づき、そもそもアカウントとIAMユーザーを理解できていなかったのでそこをまとめてみた。
# AWSアカウントとは
AWSアカウントとは1つのAWS環境を表している。身の回りの物で例えるとすると家=AWSアカウントといえる。家の中には机や椅子、家電など様々なリソースがあるように、AWSアカウントの中にEC2やS3などのAWSリソースを作る。そのため、AWSアカウントというのは利用者(ユーザー)を示すのではなく、環境そのものを指している。
# IAMユーザーとは
では、我々がイメージするアカウントは結局AWS上だと何であらわされるのかというと、IAMユーザーがそれ
Lambda関数でMySQLに接続する(セルフホスト)
他社が公開しているパプリックなARNではなく、自前でレイヤーを用意するやり方。
https://qiita.com/drafts/2c74e5712d841a66a7ee## ファイル準備
任意のディレクトリに、以下2ファイルを配置“`yml:Dockerfile
FROM –platform=linux/x86_64 amazonlinux:2ARG PYTHON_VERSION=3.11.1
RUN yum update -y && yum install -y tar gzip make gcc epel-release openssl11 openssl11-devel bzip2-devel libffi-devel \
&& curl https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz | tar xz \
&& export CFLAGS=$(pkg-config –cflags openssl11) && export LDFLAG
CloudFormationでControlTowerをデプロイする際のKMS設定と暗号化確認手順
# 内容
CloudFormationでControlTowerを有効化する際にはいくつか、先に作って置かなけらばならないリソースがあります。1. ControlTowerをデプロイするのに必要になる専用のIAMRole
1. ControlTower用のKMS(任意)この今回、ControlTowerのConfigとCloudTrailのデータを暗号化したかったのですが、KMSを作成についての前提条件を忘れていたため、暗号化ができてませんでした。その備忘録として残したいと思います。
また暗号化されているのかを確認していきます。:::note info
参照情報
https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/configure-kms-keys.html
:::## KMSのコード
“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Parameters:
HomeRegion:
Type: String
Descrip
【あなたのAWS、攻撃されていませんか?】今すぐGuardDutyで脅威をあぶり出せ!
## はじめに
こんにちは、uiroleです!
AWSのセキュリティ対策は重要ですが、インターネットに接続している限り、リスクは常に潜んでいます。
今回は、 **AWS GuardDuty** を使って、脅威を検出・可視化し、攻撃からAWS環境を守る方法を紹介します。
この記事で、GuardDutyの活用法を身につけて、AWS環境をより安全に保つ知識を学んでいきましょう!## GuardDutyとは?
**Amazon GuardDuty** は、AWSのマネージド脅威検出サービスで、悪意ある活動や異常な動作を自動で監視・検出します。
GuardDutyは、以下の3つのログソースを分析して脅威を特定します|分析するログソース | 内容 |
|—————————|———————|
| VPC Flow Logs| ネットワークの流れを分析し、不審なトラフィックを検出 |
| AWS CloudTrail Management Events | AWS APIのアクティビティを監視 |
|DNS Logs |
RAGのクエリ拡張を「Tool Use」機能を使って実装
# 初めに
KendraとBedrockを利用したRAG実装でクエリ拡張を導入した際の話です。
当初はBedorockのモデル(Claude 3.5 Haiku, Sonnet を試用)から拡張したクエリがJSON形式で出力されるよう、invoke_modelメソッドを使いつつプロンプトを試行錯誤していた。しかし、この方法では時折JSONDecodeErrorが発生するため、悩まされていました。(エラー発生時にClaudeの返戻を確認すると、冒頭に文字列が含まれてしまっていることでエラーが発生していることが多い状況でした。)
リトライさせることも出来ますが、問合せ回数が増えるとコストにも影響するため、もう少し良い方法で対応出来ないか悩んでいました。
少し調べたところ、AnthropicのClaude3ではTool use機能を利用することで、JSON形式のレスポンスを得る方法があると分かり、実際にこちらで実装して問題が解決されましたので本記事にて記録します。# 目的
ユーザから入力されたクエリに対して、関連するキーワードを複数並べることでクエリを拡張し、それをJSON形式でClau