- 1. AWS-EC2にSSH接続してみた
- 2. EC2にSSH接続をする際、出力されたエラー
- 3. 【自記事まとめ】AWSでplumberをコンテナにして実行した例
- 4. RのWeb APIをLambdaで作る
- 5. 【AWS】24時間稼働Webシステムのユーザ影響を与えないDBメンテナンス手順【Redshift】
- 6. AWS SAA 模試直し④
- 7. 今すぐローカル開発環境のアクセスキー/シークレットキーを削除してIAM Roles Anywhereを使いなさい!
- 8. ルートテーブルとサブネットの明示的な関連付けの罠
- 9. EC2のコストを抑える観点を考えてみた
- 10. 【AWS】ネットワーク接続基本アーキパターンまとめ【ネットワーク】
- 11. 【学習メモ】DynamoDB APIのまとめ
- 12. 【AWS】SNSからアラートメール送信機能を使ってみました
- 13. Cognito の外部 IdP として Cognito を使う
- 14. 【AWS】SNSからショートメール機能を使ってみました
- 15. 【学習メモ】AWS X-Ray SDKにおける各プログラミング言語の環境変数について調べた
- 16. AWS料金ざっくりメモ【個人用】
- 17. Amazon BedrockをAWS Lambda上で呼び出してみた(API化)
- 18. 【AWS】CLIでCloudWatchのカスタムダッシュボードを作成する
- 19. Amazon Bedrockをさわってみる
- 20. 【学習メモ】CodeDeployのデプロイライフサイクルイベント(AppSpecの各hook)を調べた
AWS-EC2にSSH接続してみた
「まんがでわかるLinux」にて、SSHについてのページがあったので、理解を深めるために
AWS-EC2にSSH接続を試みてみました。
# 開発環境
– AWS-EC2
# やったこと
1. AWSのアカウントを発行
2. AWS-EC2のインスタンスを起動するまで
3. SSH接続実行## 1.AWSのアカウントを発行
AWS-EC2は無料枠があり、無料枠を超えなければ課金発生対象外ということで、アカウントを発行。
> EC2 は AWS 無料利用枠に含まれているので、無料で開始できます。これには、1 年間毎月 750 時間分の Linux および Windows の t2.micro インスタンス (t2.micro が利用できないリージョンでは t3.micro) が含まれています。無料利用枠内に抑えるには、EC2 マイクロインスタンスのみを使用してください。
>ちなみに、AWSの動画内では課金についての説明をしてる部分があるので、気になる方は[公式](https://aws.amazon.com/jp/free/?all-free-tier.sor
EC2にSSH接続をする際、出力されたエラー
AWS-EC2にSSH接続しようと、コマンドを実行。
“`bash
ssh -i ~/.ssh/EC2_01.pem ec2-user@{EC2-01のIP}
“`すると、以下2つのエラーが出力。
“`bash
WARNING: UNPROTECTED PRIVATE KEY FILE!
“`“`bash
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
“`1つ目のエラーは、「プライベートキーが保護されていない」と教えてくれてる模様。
2つ目のエラーは、「権限がないよ〜」と言われている。
2つ目のエラーは、SSHを理解していないと解けなかったので、もし同じエラーでつまづいてる人が居たら参考にしてみてください。
# 試したこと
今回試したこととしては、以下になります。
– 権限変更
– 秘密鍵から公開鍵を発行
– AWS側のサーバーに公開鍵を配置## 権限変更
こちらは、権限を読み込みのみに変更すればいいので以下のコマンドを実行。
“`bash
chmod 400
【自記事まとめ】AWSでplumberをコンテナにして実行した例
# はじめに
AWS上のコンテナサービスを触ってみるのに、サンプルとしてRのplumberをコンテナ化して使っていました。
「AWS上でplumberを動かしたい」や「コンテナサービスを触ってみたい」という方の参考になるかと思い、まとめました。# ECS on Fargate
AWS Coplilotでデプロイした記事になります。メインは`run local`の話ですが、デプロイもしています。https://qiita.com/a_b_/items/f0a5ba490670e6c85790
以下はデプロイに便利なサービスを使わないで行った記事です。今見ると大変面倒に見えてきます。
https://qiita.com/a_b_/items/32cbc21bd140321719c2
# App Runner
AWS Coplilotでデプロイした記事になります。https://qiita.com/a_b_/items/decf0b0c020cab46e0f8
CFnで作成した記事になります。
https://qiita.com/a_b_/items/03e76bf
RのWeb APIをLambdaで作る
# はじめに
前回、LambdaをRで動かす`lambdr`を紹介しました。
https://qiita.com/a_b_/items/aec53d51d40781c18b89
以前から、ちょくちょくRをREST API化するplumberをコンテナサービスで動かしてきました。
ですが、Lambdaで同じコンテナは動かせないため、`lambdr`を使って、Function URLで似たようなものを作ってみました。# 概要
以下の事をやっています。
– lambdrを使って、RをLambdaで動かします
– LambdaのFunction URLを使って、Web APIにします
– API Gatewayでも同じようにできるはずです
– 動かす処理はPOSTで指定します
– plumberのように、URLパスでの指定はできませんでした…# 参考
https://cran.r-project.org/web/packages/lambdr/lambdr.pdf
https://rdrr.io/github/mdneuzerling/lambdr/man
【AWS】24時間稼働Webシステムのユーザ影響を与えないDBメンテナンス手順【Redshift】
## 初めに
24時間稼働しているWebサービスの場合、DBデータの一括置き換えのような時間のかかるデータメンテナンス時にもユーザがデータにアクセスできない状態を避ける必要がある。
これに対応するため、Amazon Redshiftで使えるサーチパスを使用したDBの更新手順の案を記載した。
この記事では手順の説明のために手動更新のような書き方になっているが、これら一連の処理をStepFunctionsの各ステップで実装しておけばバッチ処理でも画面影響なくデータ更新を行うことが可能になる。## 使うAWSサービス
・Amazon Redshift## 更新手順
1.通常稼働時
![通常稼働.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/f7839eea-01ed-cbda-15f2-da129e8e4d07.png)
・2つのスキーマを用意しておきます
・画面はサーチパスのスキーマの優先度順にテーブルを参照します。テーブルはどちらか一方にしかなくてもアクセスできますが、両方にある場合
AWS SAA 模試直し④
# 現状
Udemyの講座をすべて視聴完了(約1ヶ月半かかった)
AWS-CLI取得済# 今回の模試の結果
![スクリーンショット (89).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957298/7eb6cc45-567f-d579-e56b-d0747368dedf.png)あと7問答えられれば、、、
各章をまとめたので、知らない単語は減ったものの、細かい部分まで覚えきれておらず、どっちだったかな?となることが多かったイメージだ。
見直しマークも35問つけていたので、それが半分外れていたというイメージである。# 直し
## Amazon Athena
Amazon S3 バケットに保存されているデータに対して直接にクエリ処理を実施するサーバレスなデータ分析サービス## S3
#### 暗号化の復号
S3側で自動的に復号#### 暗号化の対象
S3バケットに保存されるアクティビティログなどのログも自動で暗号化される#### クロスリージョンレプリケーションの挙動
S3バケ
今すぐローカル開発環境のアクセスキー/シークレットキーを削除してIAM Roles Anywhereを使いなさい!
タイトルは少し煽りましたが、簡単にできますので、一度検討してみてはいかがでしょうか!
## 環境
前半の手順はUbuntuで行いました。
最後の”証明書をWindowsに保存して管理する”の部分だけWindows 11を使用しました。## 手順
### 証明書を生成する
AWS IAM Roles Anywhere Credential HelperのGitHubリポジトリに便利なスクリプト(generate-credential-process-data.sh)が用意されています。
https://github.com/aws/rolesanywhere-credential-helper
“`console:shell
wget https://raw.githubusercontent.com/aws/rolesanywhere-credential-helper/main/generate-credential-process-data.sh
“`出力先のディレクトリを作成し実行します。
“`console:shell
mkdir credenti
ルートテーブルとサブネットの明示的な関連付けの罠
# はじめに
皆様はルートテーブルとサブネットの明示的な関連付けの仕様について、正確に理解していますか??
どちらも AWS が提供しているネットワーク系リソースの中で基礎となるものであり、なおかつ手軽に作成できるので、ドキュメントを隅々まで読み仕様を把握している人は案外少ないのかもしれません。そんなルートテーブルとサブネットについて、凄まじい罠を発見しました。
知ってる人からしたらかなり常識的なことですが、案外見落としがちな仕様だと感じたので共有させてください…。# 目次
1. [サブネットとルートテーブルの関係性について](#1-サブネットとルートテーブルの関係性について)
2. [関連付けをするまでの作業](#2-関連付けをするまでの作業)
3. [一体何が罠なのか](#3-一体何が罠なのか)
4. [罠を回避するには](#4-罠を回避するには)
5. [最後に](#5-最後に)
EC2のコストを抑える観点を考えてみた
## EC2利用料を節約したい
AWSを利用する上で、EC2を使う機会はとても多いと思います。
最近は円安傾向ということもあり、とにかくコストを抑えたい!というニーズはビジネスシーンでも個人利用でも高まっているかと思います。そこで、コスト削減の観点に着目してポイントを整理していきます。
## インスタンスタイプ
まずインスタンスタイプです。
そうですね。Tシリーズを利用することで節約可能です。
でも一つ注意してください。>T4g、T3a、および T3 インスタンスは (デフォルトを変更しない限り) デフォルトで unlimited として起動します。
T3インスタンス等では、unlimitedモードでの起動がデフォルトになっています。
unlimitedモードでインスタンスに負荷をかけ続けると、M6iインスタンス等と同等以上のコストが発生してしまいます。デフォルトから変更していない(意図せず利用している)ケースもちらほらみかけますので、ご注意ください。https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/bu
【AWS】ネットワーク接続基本アーキパターンまとめ【ネットワーク】
## 初めに
オンプレミスからAWSへの接続、AWSのVPC同士の接続、さらには接続するVPCの数や予算によってなどのネットワーク接続に関してはさまざまなアーキテクチャのパターンが考えられる。
この記事ではAWSのネットワークに関する基本的なアーキテクチャをいくつか紹介し、その用途や違いをまとめた。## ネットワーク構成パターン
### とにかくAWSに接続したい
・インターネットゲートウェイ(IGW)を使用する
![IGW.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/456d527a-de48-1dd3-b1c4-18b82863e65d.png)
(アーキテクチャのポイント)
・インターネット経由でAWSのリソースと通信できれば良い(通信内容を保護する必要がない)という場合
・運用コストを抑えたい場合### 安全にAWSに接続したい
・VPNを使用する
![VPN.png](https://qiita-image-store.s3.ap-northeast-1.amazon
【学習メモ】DynamoDB APIのまとめ
# テーブル関連
CreateTable
DescribeTable
ListTables
UpdateTable
DeleteTable
# PartiQL関連
(両方とも複数の項目を読み込み、書き込み、更新、ができる)ExecuteStatement:一つか複数
BatchExecuteStatement:複数、ExecuteStatement よりも効率的、1 回のネットワークラウンドトリップのみで済む
# データ作成
PutItemBatchWriteItem :最大25個
# データ取得
GetItemBatchGetItem:最大100個(大量のデータを呼び出すときに使う、BatchGetItemを複数回分けて実行するとか)
Query:特定のパーティションキーがあるすべての項目(条件を満たしてるデータのみ取る)
Scan:指定されたテーブルまたはインデックスのすべての項目(条件を問わず全部取る)
# データ更新
(複数個更新できないらしい。。。)UpdateItem
# データ削除
DeleteItemBat
【AWS】SNSからアラートメール送信機能を使ってみました
# SNSからアラートメールを送信
EC2のCPU使用率をAWSのSNS機能を使って送信してみました。# ステップ1: EC2用のIAM Roleを作成する
– “`IAM “`→“`ロール“`→“`ロールを作成“`をクリックする![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983478/62da7d29-6b9b-6915-3f91-68f88089e16d.png)
– “`AWSのサービス“`をクリックして、“`ユースケース“`に“`EC2“`を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983478/81fc6d8e-ecf4-6f67-ab24-aabc70b9066a.png)
– “`AmazonSSMFullAccess“`を選択する
![image.png](https://qiita-image-store.s
Cognito の外部 IdP として Cognito を使う
# はじめに
今回は AWS が認証機能として提供している Cognito ユーザープールに関する記事となります。
Cognito ユーザープールとは何ぞやという方は[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-identity-pools.html)をお読みください。Cognito では外部の IdP を使用して外部 IdP 経由のサインインを行うことができます。
使用できる外部 IdP のプロトコルとしては OpenID Connect (OIDC) と SAML になります。
ここで、あることに気が付きます。OIDC が使えるのであれば、Cognito ユーザープール自体を外部 IdP とした構成ができるのではないか。。!というわけで試してみました。
Cognito ユーザープールで外部 IdP を使ったフェデレーションサインインを試してみたいけど、使えそうな IdP なんて持ってない、という方には参考になるか思います。実装方法を読む前に、
【AWS】SNSからショートメール機能を使ってみました
# SNSからショートメールを送信
AWSのSNS送信機能を使って、ショートメールを送信してみました。# ステップ1
“`Amazon SNS“`→“`モバイルテキストメッセージ(SMS)“`→“`サンドボックスの送信先電話番号“`→“`電話番号を追加“`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983478/7a96851f-4814-ce07-91d4-3f63ba3b34a9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983478/12e31f29-188c-c30c-c48c-e382d22bfe87.png)* 送信先国別を選択する
* 電話番号を入力する
* 検証メッセージの言語を選択する![截屏2023-10-14 18.52.36.png](https://qiita-image-store.s3.ap-northea
【学習メモ】AWS X-Ray SDKにおける各プログラミング言語の環境変数について調べた
# X-Ray SDK for Java
(ほかの言語とは同じ)AWS_XRAY_TRACING_NAME:SDK がセグメントに使用するサービス名を設定
AWS_XRAY_DAEMON_ADDRESS :X-Ray デーモン リスナーのホストとポートを設定
AWS_XRAY_CONTEXT_MISSING :コンテキスト欠落エラーが発生するとき、どのように処理するかを設定
-RUNTIME_ERROR:デフォルトでは、SDK はランタイムの例外をスローするように設定
-LOG_ERROR:エラーを記録して続行
-IGNORE_ERROR:エラーを無視して続行# X-Ray SDK for .NET
(ほかの言語とは同じ)AWS_XRAY_TRACING_NAME:SDK がセグメントに使用するサービス名を設定
AWS_XRAY_DAEMON_ADDRESS :X-Ray デーモン リスナーのホストとポートを設定
AWS_XRAY_CONTEXT_MISSING :コンテキスト欠落エラーが発生するとき、どのように処理するかを設定
-RUNTIME_ERROR
AWS料金ざっくりメモ【個人用】
・1ドル=150円の場合のAWS料金の雰囲気をつかみたい
・料金計算ツールでの計算結果のチェック用の個人メモ
・データサイズが2倍なら金額2倍程度、コア数、メモリも同様に2倍なら金額も2倍程度
・金額は間違えてるかもしれないので注意!! 詳細は各章の料金ツールURLから確認してください。## データサイズ(TB)による課金
| サービス | 課金の単位 | 何千円? |
|:–:|:–|–:|
| EBS | サーバのSSDディスクサイズ(1TB) | 1万4千円 |
| RDS | DBのSSDディスクサイズ(1TB) | 4万2千円 |
| S3 | 安い!ストレージ(1TB) | 4千円 |
| AWS Backup(EBS) | SSD(1TB)のバックアップ | 8千円 |
| EFS | NFSマウントできる!ファイルサーバ(1TB) | 1万4千円 |
| CloudWatch | 便利で高い!ログ保管(1TB) | 11万8千円 |※ssdはgp2で計算
※2023年10月頃の料金計算ツールの結果を基に算出
※データ転送にかかる料金は含みませんが
Amazon BedrockをAWS Lambda上で呼び出してみた(API化)
# はじめに
こんにちは、はやぴー(@HayaP)です。[前回の記事](https://qiita.com/HayaP/items/3395a0d6e1007448fca8)ではPythonスクリプトからAmazon Bedrockを利用してみましたが、今回はAWS LambdaからAmazon Bedrockを動かしてみたいと思います。
# 前提
前提として、Amazon BedrockでJurassic-2 Midが使用可能になっていることが必要です。
実施手順は、過去の記事[Amazon BedrockをPythonスクリプトから利用してみた
](https://qiita.com/HayaP/items/3395a0d6e1007448fca8)にありますので、ご参照ください。# TL;DR (忙しい人用)
– Amazon BedrockのJurassic-2 MidモデルをAWS Lambdaから利用する手順を解説。
– Lambda関数はPython 3.11ランタイムとarm64アーキテクチャで作成。
– IAMロールを作成し、LambdaにアタッチしてBed
【AWS】CLIでCloudWatchのカスタムダッシュボードを作成する
## はじめに
CLIでCloudWatchのカスタムダッシュボードを作成する手順。CLI操作用のIAMユーザ作成とか認証情報の設定は割愛。
1はカスタムダッシュボードはどんな感じかっていう話なので本題は2。## 1. CloudWatchカスタムダッシュボードはこんな感じ(GUIで作ってみる)
CloudWatch -> ダッシュボード -> ダッシュボードの作成で画面右上の`+`か、`+ 最初のウィジェットを追加`をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3458266/e1182efc-fe2f-25ab-6006-f25cfa0d628b.png)好きな形式を選ぶ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3458266/2987986d-9033-59cc-bd1b-12c0fa51451e.png)Lambdaの実行時間のグラフ。他に確認し
Amazon Bedrockをさわってみる
# Bedrockって何?
* [基盤モデル API サービス – Amazon Bedrock – AWS](https://aws.amazon.com/jp/bedrock/)`Amazon Bedrock は、Amazon や主要な AI スタートアップ企業が提供する基盤モデル (FM) を API を通じて利用できるようにする完全マネージド型サービスです。`
「AWS上でAI基盤モデル(FM)が利用できるようになりました!」といった内容です。
# ざっくりと、料金体系を整理します
* [Amazon Bedrock Pricing](https://aws.amazon.com/jp/bedrock/pricing/)3つの料金モデルがあるようです。
## オンデマンド
使用した分を支払うモデルです。それぞれ生成させるモデル毎に課金されます。※以下抜粋* テキスト生成モデルでは、入力トークンの処理および出力トークンの生成ごとに課金されます。
* 埋め込みモデルでは、入力トークンの処理ごとに課金されます。(トークンは数文字で構成されており、ユーザー入力と、結果を
【学習メモ】CodeDeployのデプロイライフサイクルイベント(AppSpecの各hook)を調べた
# 「hooks」 セクションの構造
“`ruby:
hooks:
– deploymentLifecycleEventName:
– location: script-location
timeout: timeout-in-seconds
runas: user-name
“`## ECS デプロイ
“`ruby:
hooks:
#Startする
– BeforeInstall: “BeforeInstallHookFunctionName”
#Installする
– AfterInstall: “AfterInstallHookFunctionName”
#AllowTestTrafficする
– AfterAllowTestTraffic: “AfterAllowTestTrafficHookFunctionName”
– BeforeAllowTraffic: “BeforeAllowTrafficHookFunctionName”
#AllowTrafficする
– AfterAl