- 1. CloudScapeとReactでAWS風のWebサイトを作ってみました
- 2. 【aws cli】cloudformationスタックの作成と更新
- 3. AWS EC2でNode.jsを自動起動
- 4. AWS SAP-C02 にSpecialtyを受けてから挑戦するメリット
- 5. 【aws cli】lambda関数の作成とデプロイ
- 6. Fargate上のGitLab起点でGitOpsを実現するパターンのまとめ
- 7. AWSロードバランサーとターゲットグループの制御方法
- 8. AWS EC2インスタンスの自動起動停止の制御手法
- 9. CloudWatchアラームの状態変化でLambdaアクションが実行できるようになりました
- 10. AWS認定ソリューションアーキテクト – プロフェッショナル更新時の記録
- 11. 新年なのでLLMとのチャットアプリをイチから作ってみた③仕上げ
- 12. TerraformでAWS ChatBotとSlackを連携させる手順
- 13. AWS Amazon S3(SAA対策) メモ
- 14. 【Next.js(AppRouter) / Rails API / Terraform】ECS/FargateでNext.js(AppRouter)とRails APIで構成されるサービスの実行環境を構築する。
- 15. [Terraform]Github ActionからECSへデプロイ(タスク定義の更新)する場合に、タスク定義をJsonファイルとして分離させず、Terraformで直接管理する方法
- 16. IAMの基礎中の基礎をまとめてみる
- 17. AWS DBS サンプル問題解説
- 18. [AWS] CDKでAppRunnerのカスタムドメインを設定する(カスタムリソース)
- 19. AWS ANS-C01合格までの道のり
- 20. Amazon CloudWatch Network Monitor を使ってみる
CloudScapeとReactでAWS風のWebサイトを作ってみました
# やりたいこと
AWSのマネジメントコンソールのような、サイト画面を作りたい~前回は以下の記事通り、CloudScapeを入れてみたが、
https://qiita.com/curlneko/items/c062eed59e2f077f8915
今回は画像のように、もっとまじめな画面レイアウトを作りたいと思います~
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/77af1426-35b1-aefe-c899-a2169b2a8ba4.png)# ディレクトリ構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/5fee6c57-03a5-466b-a4ee-a8aeaddfd423.png)主にReactアプリ生成時に作られたディレクトリとファイルですが、
今回ディレクトリを変えずに、index.jsの修正とLayout.jsの作成、機能別
【aws cli】cloudformationスタックの作成と更新
## aws cliを使用したcloudformationスタックの作成手順
こんにちは。今回は、aws cliについて初心者エンジニアに向けて、cloudformationスタックの作成と更新方法について解説します。
aws cliとは、aws command line interfaceの略で、コマンドラインからawsの各種サービスを操作するためのツールです。cloudformationは、awsのサービスの1つであり、インフラストラクチャをコードとして扱うことができるサービスです。このcloudformationスタックをaws cliを使用して作成および更新する方法について説明していきます。
### 手順1: cloudformationテンプレートの作成とパラメータの設定方法
まずは、cloudformationテンプレートを作成しましょう。cloudformationテンプレートは、スタックを作成するための設計図のようなもので、yamlまたはjson形式で記述します。
以下のサンプルコードは、ec2インスタンスを作成するcloudformationテンプレートの一
AWS EC2でNode.jsを自動起動
# はじめに
Node.jsで作成したWebRTCのSignaling ServerをAWS EC2(Amazon Linux 2023)で自動実行する際に課題に直面しました。
その解決手順を以下にまとめました。
読んでいただいた方が少しでも参考になれば幸いです。# こんな人に読んでほしい
– EC2+Node.jsを使った環境を構築したい方
– AWSを学びたい方# 前提条件
– EC2+Node.js環境が作成済であること# やりたいこと
~~~php:Node.jsの手動実行の例
$ node signaling_server.js
~~~
これをEC2インスタンス起動時に自動実行する。# EC2のユーザーデータ作成手順
①EC2インスタンスを停止する。②EC2インスタンスから「アクション」-「インスタンスの設定」-「ユーザーデータを編集」を実行する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659381/2283633d-e7f1-b235-bc6c-
AWS SAP-C02 にSpecialtyを受けてから挑戦するメリット
# AWS SAPに受かりました。
2023/12/26 SAP-C02に合格しました。
一方で、夏ごろ受けた際は落ちていて、**Specialtyをいくつか受けてからSAPを取る**と戦略を変えての成果です。
結論として、この戦略は効果的でした。
SAPに挑戦する方の参考になれば幸いです。
本Qiitaでは、どのようにSAP取得にSpecialty取得が役立ったかを説明します。一言で言うと、**直前の対策範囲を特定の分野にフォーカスできる**、ということにあります。
# 夏はどのようにして挑んでいたか。
SAPの対策本の問題を全て解き、暗記する。
公式の過去問を解いて挑む。
→落ちました敗因は以下でした。
**対策が浅い**。広く深い対策が必要ゆえに、
時間がない直前、広さも深さも中途半端になり敗北しました。# DBSに受かる
DBSの対策本を全て解き、暗記する。
公式の過去問を解いて挑む。
→受かりました。これは狭く、深くなので、深さが合格の深さに届きました。
# DOPに受かる
ExamtopicsのDOPの問題を全て解く
→受かりました。examt
【aws cli】lambda関数の作成とデプロイ
## aws cliを使用したlambda関数の作成手順
こんにちは。今回は、aws cliについて初心者エンジニアに向けて、lambda関数の作成とデプロイについて解説します。
### aws cliとは
aws cli(command line interface)は、awsのリソースやサービスをコマンドラインから操作するためのツールです。aws management consoleを使用せずに、ターミナル上でawsの操作が行えるため、効率的にawsリソースを管理することができます。
### aws cliのインストール
まずは、aws cliをインストールしましょう。インストール方法は、公式ドキュメント(https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)を参考にしてください。
### lambda関数の作成
aws cliを使用して、lambda関数を作成する方法を説明します。
#### ステップ1: 関数の作成
以下のコマンドを実行して、lambda関数
Fargate上のGitLab起点でGitOpsを実現するパターンのまとめ
# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。この記事ではFargate上のGitLab起点で起動するCICDパイプラインのアーキテクチャのまとめを解説しています。
具体的には以下流れで説明します。
– 解決した課題の整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたことAWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。
# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– Fargate上のGitLab起点で起動するCICDパイプラインのアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Professionalを目指している人
AWSロードバランサーとターゲットグループの制御方法
## 概要
AWSで動的な拡張環境を構築した経験があります。Pythonを使用して、AWSロードバランサーとターゲットグループを制御するためのモジュールを作成しました。EC2の動的な制御に関する詳細は、以下の記事をご参照ください。
[AWS EC2インスタンスの自動起動停止の制御手法](https://qiita.com/SimonLee/items/6123e8d88b4e71b363c6)
## ソース
“`
import sys
import os
import traceback
import boto3def to_exception_detail(exception, includes_trace=False):
“””
概要: 例外の詳細情報を整形して返す関数
引数:
– exception: 例外オブジェクト
– includes_trace: トレースバック情報を含むかどうかのフラグ
戻り値: 整形された例外詳細情報の文字列
“””
exc_type, exc_obj, exc_tb
AWS EC2インスタンスの自動起動停止の制御手法
## 概要
AWS EC2インスタンスを利用しています。費用を節約するために、PythonでEC2インスタンスを自動起動停止のモジュールを作成しました。
## ソース
以下のスースを作成しました。
“`
import boto3
import os, sys, tracebackec2_instances = None
dict_instance_names = {}
dict_instance_ids = {}def to_exception_detail(exception, includes_trace=False):
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
lineno = exc_tb.tb_lineno
trace = traceback.format_exc() if includes_trace else ”
return ‘at [{0}]({1}:
CloudWatchアラームの状態変化でLambdaアクションが実行できるようになりました
# ■概要
CloudWatchアラームのステータス変更が起きた際の地味アプデを見かけたので書いてみます。
アラームの状態が変移した際にAWS Lambdaを指定できるというものです。Amazon CloudWatch alarms adds AWS Lambda as an alarm state change action
https://aws.amazon.com/about-aws/whats-new/2023/12/amazon-cloudwatch-alarms-lambda-change-action/# ■CloudWatchアラームのアクションについて
cloudWatchアラームを設定する際、閾値に引っかかった時の動作を決定できます。
アクションとして、例えばよく使いそうなものだと、前もってSNSトピックにメールアドレスのリストを設定していて、そのリストにメールを送付する等です。# ■コンソールからアクションを確認する
実際にコンソールから見てみましょう。
今回は現在設定済みのCPUアラートを編集する形で調べてみます。
アラーム編集の画面にてア
AWS認定ソリューションアーキテクト – プロフェッショナル更新時の記録
## この記事の概要
2024/01/07
**AWS認定ソリューションアーキテクト – プロフェッショナル**
(AWS Certified Solution Architect – Professional (SAP-C02))
を受験したので、その時の記録です。**SAP-C01**の取得から約3年が経過したため、更新のために再受験しました。
https://qiita.com/aminosan000/items/f172b7add8303926bddc2022/11/15にバージョンがC01からC02に上がったようです。
## 試験の概要
![aws_sap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/bf1a17ea-445d-cc49-5dd0-3470e691d1c7.png)
AWS認定の中で一番スタンダードな「ソリューションアーキテクト」の上位資格です。
AWSの公式ガイドには
– 「この試験では、AWS WellArchitected フレームワーク
新年なのでLLMとのチャットアプリをイチから作ってみた③仕上げ
前回までで、Bedrockと会話ができるチャットアプリを公開することまでできました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/bbeae2d0-09b6-5551-2e19-d38311cc2a71.png)
まだまだ機能的に不十分なところがあるので、開発していきます。
## 目次
* [新年なのでLLMとのチャットアプリをイチから作ってみた①](feb2875d2059b9074ce8)
* [新年なのでLLMとのチャットアプリをイチから作ってみた②](6fa9c5ceb28feac3f741)
* 新年なのでLLMとのチャットアプリをイチから作ってみた③ ←このページ## 会話の履歴を覚えてやり取りがしたい
BedrockのAPI呼び出しはステートレスでそれぞれ独立しています。そのため、直前までのやり取りを保持して会話がしたい場合は、過去のやり取りをすべてプロンプトに含める必要があります。
例として一回会話したあとのプロンプトは以下のような内容を送ります。
“
TerraformでAWS ChatBotとSlackを連携させる手順
# はじめに
TerraformでAWS ChatBotを作成し、Slackと連携させるための手順をまとめる。# テスト用のチャンネルを作成
Slackからテスト用のチャンネルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703223/845328c4-ccf4-be49-8954-6be4ae57a2d0.png)chatbot-testという名前にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703223/3bfd8814-d960-aa2d-ecf1-073f87eb0637.png)今回はパブリックチャンネルにしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703223/5c0dbbbd-c5df-8917-8722-0c4
AWS Amazon S3(SAA対策) メモ
## 暗号化について
– データをS3に保存する際、大きく分けて2つの選択肢がある。
– サーバー側で暗号化する方法(Server-Side Encryption:SSE)
– クライアント側で暗号化する
## サーバーで暗号化する場合(SSE)
– S3が管理している鍵を使用する (SSE-S3)
– AWS KMS(AWS Key Management Service)に保存されているKMSキーを使用する (SSE-KMS)
– ユーザーが管理している鍵を使用する (SSE-C)– ~~クライアント側はよしなに~~
## S3には静的Webサイトホスティング」機能がある。
– サーバー側で実行されるスクリプトはもちろんNG。
## オブジェクトストレージ
データを固有のIDを持つ「オブジェクト」として扱う、ディレクトリのような階層構造を持たないストレージのこと。## “AWS”って言葉の響き、格好よくないですか。
– それだけでモチベあがります。
– わからないことだらけで不安な毎日ですが、いつか身の回りのことだけでも心の底から理解していると胸を張れる日がくる
【Next.js(AppRouter) / Rails API / Terraform】ECS/FargateでNext.js(AppRouter)とRails APIで構成されるサービスの実行環境を構築する。
## 概要
Next.js(App Router)とRails APIで構成されるアプリケーションの実行環境を、AWSのECS/Fargateで構築する記事です。IaCにはTerraformを利用します。構築する環境の構成図は以下に示す通りで、SeverComponentからRailsで実装したAPIを呼び出す際は、CloudMapによるサービスディスカバリを利用してコンテナ間で直接通信するようにしています。
![スクリーンショット 2024-01-09 17.16.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987556/d667cacc-70dc-bba3-3f57-1afc7f5b96eb.png)# ※注意点
この記事では、ECS/Fargate環境におけるISRの実現方法については触れていません。今回の構成で考慮しているのはSSR(cache: no-store)のみです。ECS/FargateにおけるISRの実現方
[Terraform]Github ActionからECSへデプロイ(タスク定義の更新)する場合に、タスク定義をJsonファイルとして分離させず、Terraformで直接管理する方法
## 概要
ECSで稼働させているサービスをGithubActionからデプロイする際は、ECSタスク定義をJsonファイルで定義して、GithubActionのワークフロー内でaws-actions/amazon-ecs-render-task-definition@v1を利用してタスク定義を上書きした上でECSリソースに反映する、というのが一般的な流れです。TerraformなどのIaCを利用している場合は、Terraform内で対象のjsonファイルを呼び出すことにより、タスク定義の二重管理についても避けることができます。
しかし、このようにECSのタスク定義を管理する箇所を分離すると、感覚的にどこで何を管理しているのか分かりにくくなります。そこで、ECSのタスク定義をTerraformで直接管理しつつ、GithubActionでデプロイするための手順を考え、その手順について以下にまとめました。
## ECSのタスク定義をterraformで定義する
ECSのタスク定義の例を以下に示します。
注目する点は、imageのバージョンを変数で定義している点です。Gith
IAMの基礎中の基礎をまとめてみる
## 目的
IAMを学習したので備忘録として記事にまとめる。## IAM(Identity and Access Manaagement)とは
AWSアカウント内で「認証」「認可」を行い、ユーザーに対して権限管理をすることができるサービス。## コスト
IAM自体の利用は無料。
但し、IAMロールを使用したAWSリソース同士のアクセスに対して発生するコストは各リソース毎に課金されるケースはある。## 基本用語
### ●ルートユーザー
AWSアカウントのフル権限を持つユーザーであり、アカウント作成と同時に自動作成されているユーザー。
フル権限である為、ルートユーザーでしか実行できない操作が多数ありセキュリティ観点から、普段利用はせずIAMユーザーに同等権限を付与して利用することが推奨されている。### ●IAMユーザー
別名、「個別ユーザーアカウント」と呼ばれる。
管理者によって権限が付与され管理されているユーザーを指す。
IAMユーザーは人間だけでなくプログラムでも利用するケースがある。### ●IAMグループ
IAMユーザーのまとまり。グループごとに権限を付与
AWS DBS サンプル問題解説
以下のサンプル問題を解いてから閲覧することをお勧めします。
https://d1.awsstatic.com/ja_JP/training-and-certification/docs-database-specialty/AWS-Certified-Database-Specialty_Sample-Questions.pdf
AWSから出ているAWS DBSサンプル問題を解説している動画のまとめと、
本動画内で解説していない問題と各選択肢は自分なりの解説になりますので、
まちがってたらすみません。
※あくまで備忘録用です。https://pages.awscloud.com/AWS_Certification_DB_jp_confirmation.html
#### 問題(1)
あるメディア企業が、マルチ AZ 配置の Amazon RDS for PostgreSQL を使用した基幹アプリケーションを本番運用しています。現在のデータベースサイズは 25 TB です。IT ディレクターは、最小限の作業量と業務中断時間で、このデータベースを Amazon Auror
[AWS] CDKでAppRunnerのカスタムドメインを設定する(カスタムリソース)
## CDKでApp Runnerにカスタムドメインを設定することはできない
https://docs.aws.amazon.com/cdk/api/v2/docs/aws-apprunner-alpha-readme.html
↑を見てもカスタムドメインを設定することはできなそう…
実際にGitHubにissueがあり、2024年1月現在、AppRunnerのカスタムドメインはCloudFormationはサポートされていないっぽい。
https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/1092
しかし、APIはサポートされている。↓
https://docs.aws.amazon.com/apprunner/latest/api/API_AssociateCustomDomain.html
→ **カスタムリソースで設定できる!**
どういうことか、説明します。
## カスタムリソースとは
カスタムリソースはCloudFormationが用意してくれている機
AWS ANS-C01合格までの道のり
## はじめに
先日、**AWS Certified Advanced Networking – Specialty (ANS-C01)** に合格しました。感想として、年末にAWS SAPとDOPに合格していたので自信はあったのですが見事に跳ね返された印象です。SAPの1.5倍は難しかった。
そこで、私自身が参考にしたサイトや勉強方法について共有したいとおもいます。
## 使用した問題集
問題集に関しては、SAPやDOPでもお世話になった**Cloud License**のWeb問題集を使用しました。この問題集は、一問解くたびに正答がわかり解説も読むことができるので効率がいいです。
試験で出題されるサービスは、ほぼほぼ網羅しているので理解が浅いサービスを中心に下記で示すサイトなどで確認を行いました。
結果的にこの問題集は3周ほどしました。
## 参考にしたサイト
**Route53**
ざっくりDNSについての概要を押さえることができます。https://en-junior.com/route53/
*
Amazon CloudWatch Network Monitor を使ってみる
# 1. はじめに
– Direct Connect経由でオンプレミス環境と接続しているAWS上のシステムがあるが、障害時における接続断やパケロスの検知や、経路上の障害箇所の特定などに苦労する場合がある。
– 2023/12に、CloudWatchの新機能「Amazon CloudWatch Network Monitor」がリリースされた。「AWS とオンプレミス環境間のネットワークの可用性とパフォーマンスを監視するのに役立つ」とのことだが、実際にどういったことができるのかを確認する。# 2. やったこと
– AWSとオンプレミス環境がDirect Connect経由で接続されている検証環境がある。(構成図参照)
– オンプレミス環境内に監視対象サーバを作成し、pingに応答できるようにする。
– AWS側でCloudWatch Network Monitorを設定し、ポーリング先としてオンプレミス環境内の監視対象サーバを指定する。
– 監視可能な項目(監視対象サーバとの接続正常性やレイテンシーなど)について確認する。また、異常時にどのような検知ができるのかを確認する。# 3