- 1. Amazon Q Business ApplicationとJiraを連携してみた
- 2. Beanstalkでeb cliが機能しなくなった時の対応記録
- 3. Amazon Q Business Applicationの設定方法
- 4. Ansibleメモ
- 5. Amazon Bedrockの新モデルにSAA試験を解かせた結果
- 6. AWS リソースのタグ付けについて整理してみた
- 7. SQLをちょっと使うなら、Cloud9がおすすめ
- 8. 【Ansible】GitLab RunnerでAnsible実行環境のコンテナイメージを使いたい~第2章:Runnerの登録・実行~
- 9. 超ざっくり!AWSコストの基礎 ~クリスマスにAWSリソースを買ってもらった君へ~
- 10. DynamoDBをグローバルテーブル構成にしたうえで、DynamoDB StreamsによるLambdaトリガーを実行してみた
- 11. EKS node groupアップグレード時NodeCreationFailureを解決
- 12. 【Ansible】GitLab RunnerでAnsible実行環境のコンテナイメージを使いたい~第1章:GitLabの構築~
- 13. 【2023年11月版】【Next.js】AmplifyJS がv5→v6とアップデートされたので、改めてAmplify Authの基本的な記法をまとめました
- 14. 【EC2 + Nginx】 第3回 Basic認証設定
- 15. 【AWS】DevelopersIO BASECAMPに参加して学んだこと【デベキャン】
- 16. LambdaでExcelファイルをエクスポートすると文字化けしてしまう
- 17. AWS クラウドプラクティショナー 試験対策まとめ
- 18. 年末に AWS の無駄なリソースを切り落とす(備忘)
- 19. AWS WAF の CrossSiteScripting_BODY ルールでバイナリデータを格納したリクエストがブロックされる
- 20. Step Functionsを利用してNAT Gatewayを自動作成/削除する
Amazon Q Business ApplicationとJiraを連携してみた
# はじめに
re:Invent 2023で登場したAmazon Q Business Applicationについて、Adamの基調講演内でデモが紹介されました。その映像の中で、チャット上でチケットの作成を要求するとJiraの設定画面が表示されていました。本記事では、Amazon Qのプラグインの機能を利用し、Jiraと連携する方法を紹介します。
# 設定方法
今回は既存のアプリケーションにJiraを連携させます。アプリケーションの作成方法は[こちら](https://qiita.com/Neville/items/8bc10b1b7a29faae1c6b)の投稿を参考にしてください。## 1. Jiraの設定
JiraはFreeプランを利用しました。Googleアカウントは連携せず、メールアドレスを設定し登録しています。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/6878d596-8c22-9876-6f5a-90c74857436e.png)
初期
Beanstalkでeb cliが機能しなくなった時の対応記録
# 状況
Beanstalkでeb cliから以下のコマンドを実行して環境を終了しました。(一時的に停止するつもりで)“`shell
eb terminate –profile myprofile
“`※オプションのprofileはAWSアカウントを指定しています。
詳細は以下のページを参照ください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.htmlその後再度環境を再起動させようとしました。
“`shell
eb restore –profile myprofile
ERROR: NotFoundError – No terminated environments found.
Environments are available for six weeks after termination.
eb list –profile myprofile
“`通常であればrestoreコマンドで再起動する。listコマンドでは環境の一覧が表示されるとい
Amazon Q Business Applicationの設定方法
# はじめに
re:Invent 2023で登場したAmazon Q Business Applicationについて、設定方法を紹介します。今回は、ガードレールおよびデプロイの設定までまとめてみました。# Amazon Q Business Applicationとは
一言でいうと「エンタープライズ向けの生成AIチャットアプリ」です。企業のデータに基づき、質問に答えたり、必要な情報を検索したり、内容を要約したりといったことが可能となります。https://aws.amazon.com/jp/q/
「責任あるAI」の考えに基づき、アプリケーションにアクセスできるユーザは制限可能で、企業のガイドラインに基づき不要なトピックやキーワードの使用した回答を禁止することも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/1c44d4d9-16ba-46db-94a1-e1bae3a4ee8a.png)
# 構成
Amazon Q Business Applic
Ansibleメモ
## はじめに
Ansibleでのインフラの自動化についてさわりの確認を行いました。## コード例
インフラコード化の例として、AWSにEC2インスタンスを作成例を挙げます。
以下に、Ansible Playbookの基本的な例を示します。
この例では、AWSにEC2インスタンスを作成し、セキュリティグループを設定するためのタスクが含まれています。このPlaybookを使用する前に、AnsibleがAWSの認証情報にアクセスできるように設定する必要があります(通常は環境変数やAWSの認証情報ファイルを介して行います)。“`yaml
– name: AWS EC2インスタンスのプロビジョニング
hosts: localhost
gather_facts: false
tasks:
– name: セキュリティグループの作成
ec2_group:
name: my_security_group
description: “セキュリティグループの説明”
region: ap-northeast-1
Amazon Bedrockの新モデルにSAA試験を解かせた結果
# Amazon Bedrockの新モデルリリース
約1ヶ月前、Amazon Bedrockにいくつかの新しいモデルが追加されました。
今年、私はre:Inventに現地参加しており、キーノートでこの発表を聞いていました。AWSがLLM(Large Language Models)に相当な注力をしていることを強く感じました。https://press.aboutamazon.com/2023/11/aws-announces-more-model-choice-and-powerful-new-capabilities-in-amazon-bedrock-to-securely-build-and-scale-generative-ai-applications
Amazon Bedrockは、生成AIのための基盤を提供し、Amazon Bedrockを通じて簡単に色々な企業のモデルを利用できることが特徴です。新たに追加されたモデルには、以下のようなものがあります
– Meta Llama 2 70b
– Anthropic’s Claude 2.1これらのモデルの
AWS リソースのタグ付けについて整理してみた
# 背景・目的
リソースについて、統制を取る機会が増えてきたので、あらためてAWSのタグについて整理したいと思います。# まとめ
下記の特徴があります。|特徴 | 内容|
|:–|:–|
|概要| AWSリソースを整理するためのメタデータとして機能するキーと値のペアで設計されている。|
|タグの仕様|キーと値は、大文字・小文字が区別される|
|インタフェイス|・サービスAPI
・タグエディタコンソール
・Resource Groupタグ付けAPI|
|ベストプラクティス|・PII、機密情報などはタグに追加しない
・タグは、大文字小文字を区別する形式とする。すべてのリソースに対して一貫してつける
・複数の目的に対応した、リソースアクセスコントロール管理、コスト追跡、オートメーション、整理などのタグガイドラインを考慮する。
・自動化されたツールを使用する。タグエディタとResouce Groups Tagging APIを使用することでプログラムでタグの制御が可能になる。
・タグは多く使う。
・将来の変更の影響を考慮する。アクセス制御タ
SQLをちょっと使うなら、Cloud9がおすすめ
# はじめに
すこしSQLを試してみたかったり、SQLを勉強したかったりする際、データベースの環境を用意するのは面倒です。
今回はSQLをお試しする環境として、Cloud9が使えることを紹介します。# 概要
SQLを軽く確認・勉強するならCloud9が使えます。以下のようなメリットがあります。– Cloud9にはデフォルトでSQLiteが入っています
– インストールに手間取ることはありません
– Cloud9は簡単に作成、削除ができます
– うまく動かなくなったらインスタンスごと削除して、再作成してやり直せます
– クラウド上の個人環境です
– テストデータに機微な情報を使える
– Web上にSQLを使えるサービスもありますが、機微なデータは使いづらい
– 料金も安い
– Cloud9は使わないと自動で停止する機能があります
– AWSクーポンがあれば、コスト0で利用できますSQLiteについては以下の記事で紹介されています。
https://qiita.com/ko1nksm/items/87d27a287e1b
【Ansible】GitLab RunnerでAnsible実行環境のコンテナイメージを使いたい~第2章:Runnerの登録・実行~
## はじめに
2021年頃からAnsible実行環境のコンテナ化が進んできています。今回は、Amazon EC2を用いて、GitLab Runner経由でAnsible実行環境のコンテナイメージを使用可能にするまでの流れを紹介します。
第2章では「Runnerの登録・実行」を実施します。## TL;DR
– GitLab Runner実行時に、Ansible実行環境のコンテナイメージを指定することが可能
– Ansible実行環境のコンテナイメージを使用することで、開発とプロダクション間の環境差分のリスクが減る
– `execution-environment.yml`には、OSパッケージ・Pythonモジュール・Collectionなどを指定する## 前提条件
– GitLabの最低限の操作を理解していること(プロジェクトの作成・ファイルの編集)
– AWSにGitLabが構築済みであること(実際に操作する場合)
– 手順は、前の記事[【Ansible】GitLab RunnerでAnsible実行環境のコンテナイメージを使いたい~第1章:GitLabの構築~
超ざっくり!AWSコストの基礎 ~クリスマスにAWSリソースを買ってもらった君へ~
早いもので気づいたらもう年の瀬ですね。
クリスマスにAWSリソースを買ってもらって、冬休みにうきうきでいじっている人も多いかと思います。そんなAWSデビューを果たした君たちに、AWSにかかるお金について知ってもらえたらなと思います。
(先日社内でLTしたときの内容となります。)# AWSコストの基礎
実はAWSも使っていくとお金がかかるんです。
水道や電気、タクシーや焼肉と一緒ですね。
こういう使えば使うほどお金がかかる仕組みのことを、「従量課金制」といいます。
明日学校でみんなに自慢しちゃおう!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045261/399fce87-ba6a-31b3-df27-74cd75a95163.png)# AWSを使いすぎると恐ろしいことになる
クリスマスに買ってもらったRDSやEC2、楽しくてついつい使い過ぎてしまうと思います。
しかし、何も考えずに使い続けると水道水の流しっぱなしや電気のつけっぱなし、焼肉屋さんで単品でカルビを頼みまく
DynamoDBをグローバルテーブル構成にしたうえで、DynamoDB StreamsによるLambdaトリガーを実行してみた
# 疑問と検証結果
__疑問:グローバルテーブル構成かつ、DynamoDBトリガーを有効にした場合、更新が同期・伝搬されるリージョン側でもトリガーが作動するのか?____結果:更新が同期・伝搬されるリージョン側でもトリガーが作動した。__
# 検証環境の構成
![構成図①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429161/08a95c12-ac4f-9f26-6c9e-0f6e5c1819a3.png)__構成概要__
* DynamoDBを更新するためにAPI Gateway + LambdaでAPIを作成
* DynamoDBはグローバルテーブル構成にして、東京リージョンとバージニア北部リージョンで同期
* それぞれのリージョンのDynamoDBの更新をトリガーに実行されるLambda関数を作成__確認観点__
* 片方のリージョンからのAPI実行(データ更新)で複数のリージョンのDynamoDBトリガーが実行されるか
* 複数リージョンに作成したAPIからのデータ更新が、そ
EKS node groupアップグレード時NodeCreationFailureを解決
## 背景
AWSのドキュメントに従ってEKS(k8s)のバージョンアップする時、
EKS clusterをアップデートした後、
node groupを同一バージョンに更新する必要がある。
今回は1.24 -> 1.25。前は1.21 -> 1.22 -> 1.23 -> 1.24 と更新してきた。## 問題
node groupを更新しようとたら、`NodeCreationFailure Couldn’t proceed with upgrade process as new nodes are not joining node group`のエラーで失敗。
下記の記事のどれも当てはまるようには見えず、スタックした。
https://repost.aws/knowledge-center/eks-node-group-update-failures
## 解決方法
`kube-proxy`のバージョンが原因のようで、
なぜか過去の更新で`kube-proxy`がv1.21から上がっていない。下記の記事で、現在の`kube-proxy`のバージョンを特定できた。
そ
【Ansible】GitLab RunnerでAnsible実行環境のコンテナイメージを使いたい~第1章:GitLabの構築~
## はじめに
2021年頃からAnsible実行環境のコンテナ化が進んできています。今回は、Amazon EC2を用いて、GitLab Runner経由でAnsible実行環境のコンテナイメージを使用可能にするまでの流れを紹介します。
第1章では「GitLabの構築」を実施します。## TL;DR
– GitLab構築手順はRHELやGitLabのバージョンにより異なるため、必要に応じて公式ドキュメントを確認する
## 前提条件
– AWSでEC2インスタンスの作成方法がわかること
## 実行環境
– Red Hat Enterprise Linux: 9.2
– GitLab: v16.7.0-ee
– Python: 3.9.16## 詳細
### 1. EC2インスタンスの作成
1. AWSにログインする
2. [サービス] -> [EC2] を選択する
3. [インスタンスを起動] を選択し、以下の条件でEC2インスタンスを起動する
– Amazon マシンイメージ (AMI)
– RHEL-9.2.0_HVM-202305
【2023年11月版】【Next.js】AmplifyJS がv5→v6とアップデートされたので、改めてAmplify Authの基本的な記法をまとめました
## はじめに
Amplify Authはとても簡単に認証ロジックを実装できるライブラリとして広く使われていますが、既存記事はv5を使用したものがほとんどです。
それもそのはずで、Amplify JavaScript v6が一般提供されたのは2023年11月15日です。(→[参考](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-amplify-javascript-v6/))Next.jsを使用していて、認証をAmplify Authで実装することになったので、改めてv6を使用した記法を簡単にまとめてみました。
## 対象者
この記事は下記のような人を対象にしています。– Next.jsで認証ロジックを実装したい方
– Cognitoを使って認証ロジックを実装したいが、最新バージョンでの書き方がわからない方※当記事のみで実装を完結できる構成にはなっておりません。予めご了承ください。
## 前提
– Next.jsのバージョン: 13.4.19 **(※Pages Routerなので十分ご注意ください)
【EC2 + Nginx】 第3回 Basic認証設定
# はじめに
本記事ではWebサイトへのBasic認証設定を解説します。
Basic認証は事前に設定したIDとパスワードを入力することで認証する方法です。
取り急ぎとして設定する場面は多くありますが、あくまでも簡易的な機能であるため、勉強や検証環境以外の環境で使用する場合、別途セキュリティ対策はしっかり行いましょう。
少しでも皆さんの参考になれば幸いです。前回、サブドメイン登録&SSL化設定手順についてまとめました。
本記事単体でも参考になるかと思いますが、[【EC2 + Nginx】第2回 サブドメイン登録&SSL化設定](https://qiita.com/KoutaKawaguchi1101/items/011a2406392d2ea4beec)も合わせてご覧ください。# こんな人に読んでほしい
– Webサイトやアプリケーションを閲覧する環境を作りたい
– EC2 + Nginxを使った環境を作りたい
– Basic認証を設定したい
– Nginxについて理解を深めたい# 前提条件
– EC2インスタンス作成済みであること
– Nginxインストール済みであること
【AWS】DevelopersIO BASECAMPに参加して学んだこと【デベキャン】
みなさんこんにちは。寒い日が続きます。
ずーーーーっと前から書こうと思っていて書けなかったデベキャンの記事を書こうと思います。# デベキャンとは?
DevelopersIO BASECAMP、通称デベキャン。AWSのことなら日本でNo. 1の会社、クラスメソッドが主催する実践形式のトレーニングです。
動画コンテンツとかで見て学ぶ。とかではなく実際に設計書を書いてみましょう!作ってみましょう!というトレーニングです。
それでクラスメソッドのエンジニアさんに質問ができる。さらに直々にレビューをいただける。しかもこれがなんと無料、いたせりつくせり。
本当にいいのか?なんならお金出しますよ。と言いたくなるくらい。
ちなみに自分が参加したのはデベキャンの“エッセンシャル”というやつ。Slackでチャットしながら進めるもの
本チャンのデベキャンは実際にオンライン通話し要件定義から設計から構築までできるというもの。
https://dev.classmethod.jp/news/developersio-basecamp/
# デベキャンではどんなことをしたのか?
まず課題が渡
LambdaでExcelファイルをエクスポートすると文字化けしてしまう
## はじめに
バックエンドにLambdaを使用しているのですが、Excelファイルをそのまま返却しようとすると文字化けしてしまうエラーが発生しましたので、解消方法を記載しておきます。## 対象者
この記事は下記のような人を対象にしています。– PythonのopenpyxlでExcelファイルを作成している
– Lambdaを使用している## 結論
Base64エンコードを使用します。【サーバー側】
“`python:excel.py
import openpyxl
import base64
import tempfile
import jsondef export_excel():
wb = openpyxl.Workbook()
# ここでシートにデータを書き込むwith tempfile.NamedTemporaryFile(delete=False, suffix=”.xlsx”) as tmpfile:
wb.save(tmpfile.name)
with open(tmpfile.name, “
AWS クラウドプラクティショナー 試験対策まとめ
# はじめに
今回は試験対策として、「AWS認定資格 クラウドプラクティショナーの教科書: 合格へ導く虎の巻 CloudTech制作委員会シリーズ」を読んでのまとめ記事になります。参考URL:[https://www.amazon.co.jp/AWS認定資格-クラウドプラクティショナーの教科書](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%BC%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E5%90%88%E6%A0%BC%E3%81%B8%E5%B0%8E%E3%81%8F%E8%99%8E%E3%81%AE%E5%B7%BB-CloudTech%E5%88%B6%E4%BD%9C%E5%A7%94%E5%93%A1%E4%BC%9A%E
年末に AWS の無駄なリソースを切り落とす(備忘)
年の瀬に、不要なAWSリソースを放置していることに気付いたので・・・。
Billing and Cost Management を見ながらお掃除します。
備忘のために記録しておきます。
2023 年、唯一の投稿がこれか・・・。
2024 年はもうちょい色々やって投稿したい。# DynamoDB
確認すると、2 つほど不要なテーブルを発見。
名前からすると、趣味のソフトテニス関係で何かをやろうとしたときに作成したテーブルっぽい。
もう全然覚えてないや・・・。チェックを入れて、「削除」ボタンをクリック。
![dynamo-db_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244560/4759bc24-c7a4-71c9-76d9-c54f75811e63.png)オンデマンドバックアップはいらないかな。
「確認」を入力し、「削除」ボタンをクリック。
![dynamo-db_02.png](https://qiita-image-store.s3.ap-northeast-1.amazo
AWS WAF の CrossSiteScripting_BODY ルールでバイナリデータを格納したリクエストがブロックされる
# はじめに
Amazon API Gateway の REST API に、AWS WAF のコアルールセット(CRS)マネージドルールグループを設定しています。リクエストボディにバイナリデータを格納してこの API をリクエストすると、コアルールセット(CRS)マネージドルールグループに含まれる“CrossSiteScripting_BODY“ルールでリクエストがブロックされることがありました。
なぜバイナリデータでクロスサイトスクリプティング?と疑問に思い、色々調べてわかったことをまとめます。
# コアルールセット(CRS)マネージドルールグループとは
一般的な Web アプリに必要になるであろうファイアウォールのルールを、ひとまとめにしてくれている AWS WAF のマネージドルールグループです。[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-ba
Step Functionsを利用してNAT Gatewayを自動作成/削除する
## 概要
本記事ではStep Functionsを利用して、Nat Gatewayを自動で作成/削除する方法について記載します。
NAT Gatewayは作成しているだけでコストがかかるリソースであり、開発環境の利用していない時間帯などは停止(削除)することでコスト削減につながります。同じことを以下の記事でCloudFormationを利用して説明していますが、今回はStep Functionsを利用して実施したいと思います。
以下のことをStep Functionsを利用して実現します。
* 作成時
* 既に存在するElastic IPとSubnetを指定してNAT Gatewayを作成する。
* ルートテーブルを更新し、デフォルトゲートウェイ(0.0.0.0/0)のルーティング先をNAT Gatewayにする
* 削除時
* NAT Gatewayを削除する
* ルートテーブルからデフォルトゲートウェイ(0.0.0.0/0)のルー