- 1. 自己紹介
- 2. S/4 HANA 2023インストールしてみた(HANA DB編)
- 3. なぜS3のバケット名はグローバルで一意でないといけないのか
- 4. Distribution Map(StepFunctions)の限界を知った話
- 5. AWS DAS合格(更新)記(2023/11/20投稿)
- 6. k8sのコントロールプレーンをELBでヘルスチェックさせてみる
- 7. EC2をIPv6にする方法
- 8. 【AWS】EventBridgeによるS3ファイルアップロードイベント起動の設定方法【EventBridge】
- 9. 【AWS】Codebuildのエラー「 YAML_FILE_ERROR Message: YAML file does not exist」の原因
- 10. Amazon OpenSearch ServiceとBedrockを組み合わせてRAGを作る(LangChainいらず)
- 11. AWS Global Accelerator のイメージ図
- 12. セキュリティーグループのアウトバウンドルールでVPCエンドポイント宛の通信を許可する方法
- 13. generative-ai-use-cases-jp で Kendra を Enterprise Edition に変更してデプロイ
- 14. 【OCI クラウド移行ガイド】 AWSとOCIをプライベートDNSピアリングで相互参照してみた
- 15. LoRaWANを試す – デバイス編
- 16. Amazon Kendra の Web Crawler の Depth の動作を確認する
- 17. S3のURL叩いた時に出るAccessDeniedはカスタムできりゅ
- 18. RDSの接続トラブルの原因を切り分ける手順
- 19. 【学習メモ】API GatewayのCross-origin resource sharing (CORS)とは
- 20. 【学習メモ】SQS拡張クライアントライブラリとは
自己紹介
# 自己紹介
初めまして。hoyaと申します。
– [x] 経歴
– 新卒から美容師を七年
– ネットワークエンジニアを一年(オンプレ、無線関係がメイン)
– 2024年1月から自社プロダクトに携わるクラウドエンジニアとして転職予定– [x] 保有資格
– CCNA
– AWS SAAQiitaを使って記事を作成しよう!と思ったのはいくつか理由があるのですが、まだまだ駆け出しレベルであるため学習した内容を頭の中だけでなく、文章にしてまとめることでより整理できると感じたからです。
来年から新しい企業にてクラウドエンジニアとしてより広い範囲で自社プロダクトに携わっていきますので、当面の間は入社までの間に業務で使用する技術に関しての投稿がメインになるかなと思います。
他には異業種からエンジニアに転職してますので、同じような境遇の方がいらっしゃいましたら少しはお力になれるかもしれないです。
もし今後の記事で誤った情報を発信していた時は是非コメントで教えて頂けますと幸いでございます。
数年後に自分の過去の記事をみて、こんな時代もあったな、、、笑
なんて、笑える日が来ることを
S/4 HANA 2023インストールしてみた(HANA DB編)
先月2023/10月にS/4 HANA 2023がリリースされたのでインストール検証をしました。
インストールで遭遇したエラーやS/4 HANA 2022から変更されていた点があれば話そうと思います。
インストール検証はAWSで実施しました。詳細は以下。
“`:使用OSとインスタンスタイプ
S/4 HANA
OS:RHEL8.6(AWSが用意しているSAP High AvailabilityのAMIを使用しました)
インスタンスタイプ:m6i.2xlargeHANADB
OS:同上
インスタンスタイプ:r5.8xlarge
“`
### OS設定
下記に従い推奨のOS設定をします。
SAP Note
①2772999 – Red Hat Enterprise Linux 8.x: インストールと構成
https://launchpad.support.sap.com/#/notes/2772999
②2777782 – SAP HANA DB: RHEL 8 の推奨 OS 設定
https://launchpad.support.sap.com/#/notes/2777782
なぜS3のバケット名はグローバルで一意でないといけないのか
## きっかけ
S3を使ってCDNの機能を作る時にバケットを作成するが、IAMの情報でS3のバケットにアクセスするのにそのバケット名がグローバルで一意にならなければいけない理由がわからなかったのでまとめました。## s3のバケット名の概要
**グローバルな名前空間**:
S3のバケットはグローバルに一意な名前空間を持ちます。つまり、S3に作成された全てのバケット名は、AWSの全リージョンにわたって一意である必要があります。これにより、どの地域からでも特定のバケットにアクセスしやすくなります。**DNSに基づいたアドレッシング**:
S3バケットはDNS(ドメインネームシステム)に基づいてアドレス指定されます。バケット名がURLの一部として使用されるため、一意でなければなりません。例えば、バケット名が my-unique-bucket であれば、そのバケットのURLは my-unique-bucket.s3.amazonaws.com になります。**シンプルな管理とアクセス**:
一意のバケット名により、開発者や管理者は特定のバケットに簡単にアクセスし、管理できます。名前が
Distribution Map(StepFunctions)の限界を知った話
## はじめに
昨年のre:Inventで発表されたStepFunctionsの新機能である、Distribution Mapは我々開発者にとってかなり強力な機能だと思います。
(Distribution Mapがどんな機能かは、[リンク](https://qiita.com/saba_miso/items/3309348bb46d50dea158)を確認してみてください。)今回はDistribution Map(Step Functions)を利用して分かった「限界」に関して記録したいと思います。
## 目次
1. 何をしたかったか。
2. やったこと・起こったこと
3. どのように乗り越えたか
4. まとめ### 1. 何をしたかったか。
我々は開発フローの中でCICDでデプロイされるWeb資材をS3にビルドを実施しています。
さらにそのWeb資材をユーザー毎に展開していくために、これまではVBAツールを利用して1ユーザーずつコピーを行っていました。
(1つずつ行うのは、ユーザー毎にWeb資材のカスタマイズがあるため、一括コピーができないため)ただこのツールはお察しの
AWS DAS合格(更新)記(2023/11/20投稿)
# はじめに
この度AWS認定のDASを受験してきましたので、勉強した内容と受験した感想を書いておきます。
今回は更新目的の受験になります。尚、AWS DAS試験は2024年4月9日に廃止が決定しておりますので、この記事はそれまでに期限が来る人向けの内容になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440403/c7fccfa5-324a-ac60-f9a1-7af546d0b380.png)
https://aws.amazon.com/jp/certification/certified-data-analytics-specialty/# 前提
* AWSのデータ分析基盤は実務経験あります
* AWS認定は全て取っています(詳細は[こちら](https://qiita.com/handy-dd18/items/d21d914bf1c475d777f2)) ※PASは[こちら](https://qiita.com/handy-dd18/items/18e8a
k8sのコントロールプレーンをELBでヘルスチェックさせてみる
# はじめに
以前k8sをkubeadmで構築した際に、コントロールプレーンのヘルスチェックはHAProxy+keepalivedで実現させていたが、AWSのNetwork LoadBalancerで実現できるか確認してみようと思います。# 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478546/480aac74-492b-3a40-0abc-78b1be7c0720.png)### サーバ環境情報
– Ubuntu 22.04
– kubeadm/kubectl/kubelet 1.28.03
– runc 1.1.9
– containerd 1.7.5
– cni-plugin 1.3.0# 実際にやってみる
### Kubernetesをまずインストール
コントロールプレーン3台に入れていく。
“`
#各種設定
cat <
EC2をIPv6にする方法
2024年2月より、IPv4を利用すると1時間あたりで課金されると通達が、、、
いつかはIPv6にしないとなぁとぼんやり思っていたものの、めんどくさくてやってませんでしたが、お金が絡むと、優先順位が変わるみたいです。今回は、EC2インスタンスをIPv6を有効にした形で起動する手順について、まとめようと思います。
# VPCの設定
まずは、VPNへIPv6 CIDRを追加します。
VPC設定画面より、設定を行うVPCを選択し、画面上部の”Action” -> “Edit CIDR”を選択します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626057/8a25418e-a246-a932-447f-11e830db0820.png)
“Add new IPv6 CIDR”をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626057/24b7b6e9-459c-
【AWS】EventBridgeによるS3ファイルアップロードイベント起動の設定方法【EventBridge】
## 初めに
別のシステムが出力したファイルを使ってAWS環境で構築したシステムを実行する際に、そのファイルが連携されたことを検知してAWSサービスを実行したい要件がある。
今回の記事ではEventBridgeを使用したその要件の実現方法を記載した。## 使うAWSサービス
・Amazon EventBridge
・Amazon S3
・AWS StepFunctions## アーキテクチャ図
![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/3c84e411-71c7-102b-24a3-99bd8e1a8111.png)## アーキテクチャ説明
### 1.S3バケットの通知設定
①S3バケットのタブメニューから「プロパティ」を選択
![通知1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/016de794-fee1-9caf-a37a-9fa97bb1513c.pn
【AWS】Codebuildのエラー「 YAML_FILE_ERROR Message: YAML file does not exist」の原因
# エラー内容
AWS Codebuildを利用してビルドを行ったら以下のエラーになりました。“`
[Container] 2023/10/19 02:18:10 Waiting for agent ping
[Container] 2023/10/19 02:18:11 Waiting for DOWNLOAD_SOURCE
[Container] 2023/10/19 02:18:12 Phase is DOWNLOAD_SOURCE
[Container] 2023/10/19 02:18:12 CODEBUILD_SRC_DIR=/codebuild/output/src1489528821/src
[Container] 2023/10/19 02:18:12 Phase complete: DOWNLOAD_SOURCE State: FAILED
[Container] 2023/10/19 02:18:12 Phase context status code: YAML_FILE_ERROR Message: YAML file does not exist
“
Amazon OpenSearch ServiceとBedrockを組み合わせてRAGを作る(LangChainいらず)
Amazon OpenSearch ServiceのBedrock連携機能を使用してRAGの仕組みを構築しました。
## アーキテクチャの特徴
RAGの仕組みの構成はこういったものが多いと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/aa2181a4-299b-2772-b839-875f313b608d.png)
OpenSearchの最近のアップデートで以下の機能が追加されました。
1. OpenSearchのセマンティック検索(今回はニューラル検索)を使用することで、OpenSearchにドキュメントを登録した際に、自動でベクトル情報も保存します。
1. OpenSearchのRAG機能で検索結果を要約して回答します。そのため **アプリ側でのベクトル変換が不要** かつ、検索処理一発で **RAGで要約した回答が取得** できます。
![image.png](https://qiita-image-store.s3.ap-northeast
AWS Global Accelerator のイメージ図
## AWS Global Accelerator のイメージ図
![スクリーンショット 2023-11-19 21.37.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586577/c3609dd8-44d3-5670-c2c4-4513b284dd5c.png)雑な絵ですが、
Public Internet は必ずしも最短経路を通るわけではなく、
複数の事業者のネットワークを経由しながら目的のリージョンまで辿り着く。
AWS Global Accelerator を使えば、近くのエッジロケーションからAWSのネットワーク内の短い経路で目的のリージョンまで辿り着く。
こんなイメージ。近くのリージョンでは効果が薄いが、
地理的に遠くのリージョンにアクセスする際には効果が大きくなる。
グローバルに展開するサービスに利用される。### Global Accelerator vs Public Internet
Global Accelerator と インターネット経由のアクセス速度の比
セキュリティーグループのアウトバウンドルールでVPCエンドポイント宛の通信を許可する方法
# はじめに
セキュリティーグループのアウトバウンドは設定しないことが多いですが、
セキュリティー要件が厳しいシステムだと細かく制御を求められることがあります。そんなとき、
「VPCエンドポイント宛の通信ってどうやって指定するんだ??」、
「そもそもVPCエンドポイントにIPアドレスあったっけ??」なんてお悩みがわきませんか??![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3491064/eb97e851-eaf5-aacf-76ab-c76db630201e.png)
本記事はそんなお悩みをもった方に向けたものです。
また以降の図ではクライアント側はEC2としていますが、ECSやLambda(VPC内)などセキュリティーグループをアタッチできるリソースは同様の設定方法となります。
# 1.インターフェース型VPCエンドポイントの場合
## ・VPCエンド
generative-ai-use-cases-jp で Kendra を Enterprise Edition に変更してデプロイ
# はじめに
GitHub で公開されている [generative-ai-use-cases-jp](https://github.com/aws-samples/generative-ai-use-cases-jp) についての記事です。デフォルトでは、Kendra が Developer Edition でデプロイされます。使い方によっては Document の数が多くなったりするので、Enterprise Edition に変更したい事があります。
今回は、Edition の変更を行うショート記事です。
# 変更点
`/packages/cdk/lib/construct/rag.ts`のファイルを開き、47 行目付近にある Edition の指定を、`ENTERPRISE_EDITION` に変更します
“`
const index = new kendra.CfnIndex(this, ‘KendraIndex’, {
name: ‘generative-ai-use-cases-index’,
edition: ‘ENTER
【OCI クラウド移行ガイド】 AWSとOCIをプライベートDNSピアリングで相互参照してみた
# OCIクラウド移行ガイドとは
オンプレミスやAWSなど、複数のプラットフォームからOracle Cloud Infrastructureへの移行プロジェクトに取り組んでいるクラウドエンジニア(@araidon,@kazunishi,@yama6)による、OCI移行手順をまとめたシリーズ記事です。
各回、サンプルワークロードから対象サービスを取り上げ、移行手順をガイドいたします。
まとめ記事は以下になります。https://qiita.com/yama6/items/b197c0fe3ec75eb02637
# 移行したいサンプルワークロード
日々の業務でよく目にするサービスを中心に、サンプルワークロードとしてまとめてみました。このシリーズでは、主にAWSからの移行を取り上げます。
このワークロードは、ユーザがログインして、Web上で写真を共有するWebサービスをイメージしています。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/1c9074f1-d4df-e2
LoRaWANを試す – デバイス編
# はじめに
前回設置したLoRaWANのゲートウェイの続き。実際にデバイスをLoRaWANでAWS IoTに繋いでみます。
LoRaWANデバイスの認証プロセスは、OTAA:Over The Air Authentication と ABP:Authentication By Personalization の2種類ありますが、今回はABPを利用します。
– 今回使用するデバイス
SenseCAP T1000-A LoRaWAN Trakcerhttps://www.seeedstudio.com/SenseCAP-Card-Tracker-T1000-A-p-5697.html
SenseCAP T1000-B LoRaWAN GPSカードトラッカー(センサなし)
# デバイスの準備
デバイスの準備はこちらのガイドを参考に行います。スマホにSenseCAPアプリをインストールして、Bluetooth経由でデバイスの設定を行います。
https://files.seeedstudio.com/products/SenseCAP/T1000_Tracker/Se
Amazon Kendra の Web Crawler の Depth の動作を確認する
# はじめに
Amazon Kendra はコネクターが提供され、様々なデータソースを検索対象に含めることができます。このコネクタ―の一つに、[Web Crawler](https://docs.aws.amazon.com/kendra/latest/dg/data-source-web-crawler.html) がありインターネットに公開されている Web ページや、VPC 内から接続可能なイントラサイトなどを対象にできます。
Web Crawler コネクターの動作が不明なところがあったので、検証を行う記事です。特に **Crawl depth** パラメーターの意味がわからなかったので、サンプル Web サイトを準備して動作確認をします。
# 結論
検証結果の結論を記載します。
Web Crawler v2 コネクターにある **Crawl depth** の値は、指定した URL の中でリンクされている「別のページ」をどれくらい辿るのか「深さ」を指定するパラメーターだという検証結果でした。
具体的には、次のような結果でした。
– **Crawl depth
S3のURL叩いた時に出るAccessDeniedはカスタムできりゅ
## はじめに
らしいです。## 手順
1. htmlやxmlを頑張って作る
1. エラードキュメントとして指定する
![gs-開発チーム_-_トライト-マーケティング本部_-_Slack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278897/079d0350-1937-fad2-1adc-d1e5024a8591.png)良い感じに動作確認してエラードキュメントが表示されればOK!
## おわりに
検証してなくて申し訳ないですが、たぶんこれで実現できそうですね。
CloudFrontが前段にある場合はどうなるのかなーと思うので、いつか業務で設定した際は追記。。したいけど忘れてそうwどんまいどんまい!## ご参考
– AWS神より
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/CustomErrorDocSupport.html以上です!:fist:
RDSの接続トラブルの原因を切り分ける手順
# はじめに
RDSにうまく接続できない時に考えられる原因と切り分け方について、AWSの方が[動画](https://www.youtube.com/watch?v=_Ox2lul0cI8)を出していたので内容をメモ。
MySQLを例にする。MySQLのポートは3306と仮定する。## (現象1) MySQLコマンドの結果が帰ってこないとき
別ターミナルで以下のコマンドを打つ。
“`sh
netstat -an | grep 3306
“`### 結果パターン1
“`sh
(略) SYN_SENT
“`
上記のような出力の場合、リクエストを送ったがレスポンスが帰ってきていないことがわかる。その場合は、以下に問題がないか見直す。
1. セキュリティグループの設定
2. 接続元のFWの設定## (現象2) Access Denied
→IDとパスワードが正しいことを確認する。## (現象3) Unkown MySQL Server Host
→DNSの名前解決ができていない状態。この場合は、以下を確認する。
1. ホスト名が正しいか
2. 利用しているDNSが名前
【学習メモ】API GatewayのCross-origin resource sharing (CORS)とは
# Cross-origin resource sharing (CORS)とは
MDNから抜粋ですが> Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources. CORS also relies on a mechanism by which browsers make a “preflight” request to the server hosting the cross-origin resource, in order to check that the server will permit the actual request. In that preflight, the browser sends h
【学習メモ】SQS拡張クライアントライブラリとは
# SQS拡張クライアントライブラリとは
・通常のSQSキューのデータサーズ制限は**256KB**だが、運用上それを超えたい場合の対応法である・大量のAmazon SQSメッセージを管理するには、Amazon S3とJava 用SQS拡張クライアントライブラリを使用することで、**2GB**までのサイズのメッセージを保存および処理ができるようになる
→AWS Java SDKが必要(プログラミングを作る必要がある)・イメージとして、メッセージの保管場所を本来の狭いパイプ(SQSキュー)から広い貯水槽(S3)に変える
→常にS3に保存するか、サイズが256KBを超える場合のみ保存するかを指定できる# 参考サイト
https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.htmlhttps://zenn.dev/hi_ka_ru/articles/a516af8bfc4457