AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

Alternative Cloud9としてのLightsail for Research + CloudShell

## はじめに

AWS Cloud9の新規サービス利用の停止と、移行ガイドが発表されました。

https://aws.amazon.com/jp/blogs/news/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/

この移行ガイドで困る例として「Workshop, HandsOnの受講者向け環境としてのWeb IDEを、AWSアカウント内・ブラウザベースで完結させるのが難しい」というユースケースがあります。具体的にはファイル編集や、サンプルアプリのローカル起動が課題です。本ブログではその回避策の一つを紹介します。

## Alternative Cloud9

AWSネイティブでのWeb IDEとしての代替え策としては、以下の例が良さそうです。

– SageMaker Studio

https://qiita.com/minorun365/items/f5289163795d5d7b21e2

https://github.com/aws-samples/sagemaker-studi

元記事を表示

AWS Lambda上で「LINE Messaging API SDK for Python」を使ったコードをデプロイしてLINE Botを作ることを楽しむ

# はじめに

LINEの[Messaging API](https://developers.line.biz/ja/services/messaging-api/)を使ってオウム返しをするボットを作ります。

こちらの記事をとても参考にしています。ありがとうございます。

https://qiita.com/w2or3w/items/1b80bfbae59fe19e2015

LINEボットはWebhookを受け取って反応するものを作ればよいので、[Amazon API Gateway](https://aws.amazon.com/jp/api-gateway/)と[AWS Lambda](https://aws.amazon.com/jp/lambda/)の組み合わせでサクッと作れます。

大部分はさきほど紹介した上記記事をなぞってもらえばできます。
この記事では、[LINE Messaging API SDK for Python](https://github.com/line/line-bot-sdk-python)を[AWS Lambda](https://aws.am

元記事を表示

オンプレミスからクラウドへの移行まとめ(SAA-C03)

SAA-C03向けまとめ
# オンプレミスからクラウドへの移行まとめ

# 1. 移行サービス
参考:https://aws.amazon.com/jp/cloud-data-migration/

– [1.1 データの移行](#11-データの移行)
– ハイブリッドクラウドストレージ
(ネットワーク帯域幅の制限がない場合に適した選択肢)
– AWS Direct Connect
– AWS Storage Gateway
– オンラインデータ転送
– AWS DataSync
– AWS Transfer Family
– AWS Snowcone
– Amazon S3 Transfer Acceleration (エッジロケーション経由でより迅速なアップロード)
– Amazon Data Firehose(リアルタイムデータ送信)
– オフラインデータ転送
– AWS Snowcone
– AWS Snowba

元記事を表示

AWS CLIを使ったプロファイルの管理方法

### プロファイルとは?
AWSプロファイルは、AWS CLIで使う設定情報をまとめたものです。例えば、異なるAWSアカウントやプロジェクトごとに設定を切り替えることができます。

### プロファイルの構造
プロファイルは通常、以下のような構造で設定ファイル(`~/.aws/credentials` と `~/.aws/config`)に保存されます。

`~/.aws/credentials`ファイル:
“`
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

[my-profile]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
“`

`~/.aws/config`ファイル:
“`
[default]
region = ap-northeast-1
output = json

[profile my-p

元記事を表示

RDSにアクセスするだけなら、踏み台サーバは不要。Cloud Shellを使ったRDSアクセス

## 結論
CloudShellがVPC内で使用可能になり、CloudShellを通じてアクセスすることで、踏み台サーバーの必要性はなくなりました。

## CloudShell とは
2020年12月16日にAWSのコンソールに追加された機能で名前の通りシェルが使えます。
AWS CLIなどがあらかじめインストールされており、AWS CLIを使うのに便利です。事前にログインしているIAMの権限がそのまま使えるので、アクセスキーの設定などの初期設定が不要です。mysqlクライアントなどよく使うコマンドはあらかじめ入っています。
https://docs.aws.amazon.com/ja_jp/cloudshell/latest/userguide/welcome.html

## RDSアクセス時の踏み台
昨今のコンテナ化により、webサーバのシェルに触れることが少なくなってきました。こうなると困るのが、web経由でなく直接クエリをRDSに入れたい場合などに、どこからクエリを入れるかです。サーバを自前で持っていた時はwebサーバにmysqlコマンドを入れて、webサーバとDBへの踏

元記事を表示

AWS SSOを使用したECRへのログインとDockerイメージのプル方法

手順1: AWS SSOにログイン
“`
aws sso login
“`

手順2: ECRへのログイン
“`
aws ecr get-login-password –profile –region ap-northeast-1 | docker login –username AWS –password-stdin .dkr.ecr.ap-northeast-1.amazonaws.com
“`

手順3: Dockerイメージのプル
“`
docker pull .dkr.ecr.ap-northeast-1.amazonaws.com/

“`
まとめ
これで、AWS SSOを使用してECRからDockerイメージをプルすることができるようになります。これらの手順を実行することで、セキュアにECRリポジトリへアクセスし、必要なDockerイメージを取得することができます。

元記事を表示

Amazon VPC(Virtual Private Cloud)について勉強してみた

## 前提
– [SAA-C03](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)の資格取得勉強中
– 普段の業務では[Lambda](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)を使ってサーバーレスアプリケーションを開発
– 業務でインフラ構成図を書く機会があり、あまり触れてこなかったのでVPCについて勉強したのでまとめてみる

## Amazon VPCとは
> Amazon Virtual Private Cloud (Amazon VPC) とは、リソースの配置、接続性、セキュリティなど、仮想ネットワーク環境をフルで制御できるサービスです。
https://aws.amazon.com/jp/vpc/

> Amazon Virtual Private Cloud (Amazon VPC) を使用すると、論理的に隔離されている定義済みの仮想ネットワーク内で AWS リソースを起動で

元記事を表示

[AWS] Verified AccessとOIDCによるアクセス制御

## はじめに

– Verified Accessはプライベートアプリケーション(LB等)に対するVPNレスでのアクセス制御を実施するためのAWSサービスです。
– OIDCのIdPと連携することで、認証ステータスやIdP側のユーザグループに応じた細かな認証認可を実装することも出来ます。
– OIDCのIdPとなるKeycloak及びAWS資源を実際に設定し、認証認可の動作確認をしてみます。(AWS資源設定にはAWS CDKを利用します。)

## OIDC認証基盤設定

– 既存の構築済みKeycloakに対して、Verfied Accessと連携するための設定をしていきます。
:::note info
本記事ではKeycloak実行環境構築の詳細は割愛します。
:::

### Client設定

– Keycloak管理コンソールの`Clients`から、OIDC Clientを作成します。
– Valid redirect URIs
– https://Verified Accessで設定するカスタムドメイン/oauth2/idpresponse

元記事を表示

Amazon Bedrock における Claude 3 Haiku の Fine-Tuning 検証レポート

## はじめに

株式会社 NTT データ デジタルサクセスコンサルティング事業部の [@ren8k](https://qiita.com/ren8k) です.
2024/7/10 に,Amazon Bedrock で [Anthropic Claude 3 Haiku の Fine-Tuning がプレビューで利用可能](https://aws.amazon.com/jp/about-aws/whats-new/2024/07/fine-tuning-anthropics-claude-3-haiku-bedrock-preview/)になりました.本稿では,Claude3 Haiku の Fine-Tuning の利用手順および,Fine-Tuning したモデルの評価結果を共有いたします.

なお,本検証で利用したコードは以下のリポジトリで公開しています.是非ご覧下さい.

https://github.com/ren8k/aws-bedrock-claude3-fine-tuning

## LLM を Fine-Tuning するメリット

Fine-Tuning により,

元記事を表示

AWS Fargate + セッションマネージャーをつかって、RDS接続用のbastionを構築する際に詰まったポイント

# 1. はじめに
「AWSコンテナ設計・構築[本格]入門」という書籍に、
AWS Fargateを使ったbastion設計の章があります。(Chapter5-7)

個人開発している環境において、AWS Fargateとセッションマネージャーを使ったbastionを導入しようとしたのですが、
なかなかうまく実装できませんでした。

この記事では、実装するうえで行き詰った個所を振り返り、共有することを目的としています。

# 2. つまずいた箇所
今回つまずいたポイントは2か所です。

2.1. private subnet上のECSから、ECRに保存されているコンテナイメージがpullできなかった
2.2. Session Managerのアクティベーションコードを発行できなかった

## 2.1. private subnet上のECSから、ECRに保存されているコンテナイメージがpullできなかった
ECRはリージョナルサービスのため、VPC内には存在しません。
また、今回のECSはprivate subnet上に配置されています。
つまりECSとECRの間に、次のいずれかがない

元記事を表示

Lineでよさそうな部屋を紹介してくれるボットを作成する

# 借りる部屋を簡単に探したい
部屋を借りるときにSuumoなどのサイトを使って部屋を検索することができる。しかし、以下の理由により既存のサイトでは使いにくさを感じた。
・同じ物件を複数の不動産屋が掲載していて省きたい
・検索結果の情報量が多いので必要な情報だけを一覧で確認したい
・検索条件がある程度固定されている中(1人暮らし、家族向けなど)で物件同士を比較したい
・電車の中などで短時間で手軽に物件検索したい

そこで、これらの課題を解決するアプリを開発した。

# Lineで簡単に良さそうな物件を紹介してくれるボットの作成
Suumoから自分の探したい条件の物件を簡単に比較できるようなLineボットを作成した。
自分の探したい物件の情報としては、「神奈川県の北東寄り」「間取りは2LDK以上」、「家賃は15万円以下」などがあり、こちらに該当する物件が今回借りたい部屋の条件である。
また、物件同士で比較したい条件は「家賃」、「敷金/礼金」、「間取り」などがある。
詳しい検索条件、比較内容については以降で記載する。
以下完成したLineボットで物件について検索している画面である。
駅名や

元記事を表示

AWS SESのサプレッションリストに入るメールアドレスはハードバウンス + 苦情のみ

## 概要

AWSのSESにはサプレッションリストなるものが存在する。これはバウンスしたメールアドレスや、苦情のあったメールアドレスが入るリストである。このリストに入っていると、そのSESを使ってメールを送ろうとしてもSESが自動的に判断してメールが送信されない。
このサプレッションリストに入る条件を勘違いしていたのでエビデンスとともに簡単にまとめる。

## 内容

実はバウンスには種類がある。主に下記の二種類だ。

– ハードバウンス → メールのToのアドレスが無効であり、永続的にメールが届かない状態
– ソフトバウンス → メールのToのアドレスの受信ボックスがいっぱいなどの、一時的にメールが届かない状態

このバウンスのうち、サプレッションリストに入るのは「ハードバウンス」のみである。

自身はソフトバウンスでもサプレッションリストに入ると勘違いしていた。

エビデンス↓

:::note info
>ハードバウンスのみが、アカウントレベルのサプレッションリストに追加されます。

https://docs.aws.amazon.com/ja_jp/ses/latest/dg

元記事を表示

AWS CloudShell上でVSCodeを動かすという発明

思いつきでやってみたらできました。

:::note warn
やってみたらできただけです。用法・用量を守って正しく使いましょう!
:::

## 使用するもの

* VSCode

おなじみのIDEです。VSCodeには、サーバーとして起動するオプションが用意されていますので、今回はその仕組を利用します。

* pinggy

プライベートネットワーク内のポートを一時的にパブリック公開するプロキシーをサービスとして提供しています。無料で利用することも可能です。

https://pinggy.io/

## 手順

1. AWS CloudShell( https://ap-northeast-1.console.aws.amazon.com/cloudshell/home )にアクセスします

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/63661a28-c2d0-e292-8255-a3c26ec15e0d.png)

1. VSCodeをインストールします

“`s

元記事を表示

AWS CodeBuild と GitHub で実現する Terraform CI/CD 入門

## 想定読者

AWS CodeBuild と GitHub による Terraform の CI/CD 実装例を紹介します。

– Terraform の CI/CD ワークフローを実装したい人
– AWS CodeBuild の具体的な使用例をみたい人

## 構成図

![architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3852183/aae01d06-65f5-39ce-8d91-b24811e1f2c4.png)

CodeBuild のビルドプロジェクトを 2 つ作成します。
それぞれプルリクエスト作成/更新とマージに対応します。

:::note warn
`terraform apply` が同時に実行される可能性がある場合は tfstate の破損を防ぐために DynamoDB による state lock を追加してください。
:::

details GitHub Actionsについて

Git

元記事を表示

AWS Well-Architected Frameworkについて詳しく見てみる【運用上の優秀性】

# 前段
Well-Architected Framework自体はよく聞くワードですが、その分量の多さ(とAWSドキュメントあるあるの若干の読みにくさ)にしっかりと読む機会がなかなかなかったため、ここで改めて自分なりに落とし込もうと思いました。

 Well-Architected Frameworkを読んで、「直訳過ぎて、何を言っているかわからないなぁ」となった時に見ていただけるような記事を目指しています。

※解釈に誤りがある場合はご指摘ください。
※ドキュメント本文そのままではないため、個人の解釈が入っている部分があります。 

記事内でワークロードという言葉が頻繁に出てくるので、ここで解説を入れておきます。
> **ワークロードとは:**
ビジネス価値をもたらすリソースとコード (顧客向けアプリケーションやバックエンドプロセスなど) の集合のことです。
引用元:[ワークロード
](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/userguide/workloads.html)

# 設計原則
## ① ビジネ

元記事を表示

AWS LambdaでSupabaseを使用したらNo module named ‘pydantic_core._pydantic_core’が出た時の対処

## 問題
AWS LambdaでPythonからSupabaseを使用しようとしたら,
“`エラー
No module named ‘pydantic_core._pydantic_core
“`
と表示された.

## 原因
Supabaseで使用されているfastapiのバージョンが高すぎると動作しない様子.

## 解決策
fastapiのバージョンを下げてインストールした後に,Supabaseモジュールをインストールする.
“`
pip install -t ./python fastapi==0.99 supabase
“`
ここではfastapiのバージョンを0.99に指定している.

元記事を表示

まるでCloud9なSageMaker Studio Code Editorを一撃で構築する

Xでポストされていたこちらを紹介します。

https://x.com/toshikwa/status/1820749343705698531

素敵です。

GitHubはこちらです。

https://github.com/aws-samples/sagemaker-studio-code-editor-template

## 特徴

デフォルトVPCを使用してSageMaker StudioとCode Editorを構築するCloudFormationテンプレートが提供されています。
未使用時に自動で停止するスクリプトが組み込まれていますので、Cloud9のような使い勝手で利用が可能です。

## 早速やってみた。

バージニア北部リージョンで試しました。

1. マネジメントコンソールにログインします

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/afb9e7e6-3694-bfc0-d984-ed6174df5b19.png)

1. 別タブを開き、GitHubのリポ

元記事を表示

Terraform で Service Control Policy の文字数上限に引っかかった場合の対策

## 課題

Service Control Policy (SCP) ドキュメントは、最大 5120 文字の制限があります。これを超えた場合には `terraform apply` に失敗します。

https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_reference_limits.html

## 先に結論

`data.aws_iam_policy_document` の `minified_json` を使うとよい!

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document

## 具体例

以下の通り SCP を作成してみます。

“`hcl:main.tf
provider “aws” {
region = “ap-northeast-1”
}

data “aws_caller_identity” “current” {}

data

元記事を表示

Amazon QuickSight で選択された期間の差分を計算する

## はじめに

Amazon QuickSight を利用する中で検索期間を絞り込んだ際に検索期間の差分を表示する必要があるケースを想定して手順を備忘録として残していきます。

## 手順

### 1. パラメータの作成
フィルターの開始日と終了日を格納するためのパラメータを2つ作成します。
– 開始日用パラメータ(例:StartDate)
– 終了日用パラメータ(例:EndDate)

![Screenshot 2024-08-02 at 16.47.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147300/40d31367-f108-7bb3-d309-cc40de7eaa3b.png)

### 2. コントロールの追加
手順 1 で作成したパラメータをそれぞれコントロールに追加します。
今回は選択された期間の月の差分を取ろうと思うので、日付形式も一旦 `YYYY/MM/DD` の形式にしておきます。

![Screenshot 2024-08-02 at 16.48.05.png

元記事を表示

AWS初心者がClaude 3.5 Sonnetとお話できるLinebot作った話

# はじめに
1ユーザー企業の情シス担当者ですが、CLaide 3.5 Sonnetの力を借りながらLINEでLambdaをキックしてユーザー入力に応答させるLINEボットを作ったので備忘録まとめてみました。

※disclaimer
初心者がClaude3.5に聞きながらこねくり回して作ったので間違いやベストプラクティスに反している部分があるかもしれません。良ければコメントでご教示ください。

# 用意するもの
・AWSアカウント
・LINE Developerアカウント
・まとまった時間
・諦めない心

# Lineアカウントを作ろう!
まず、LINEデベロッパーコンソールにアクセスし、新規アカウントを作成。ビジネス用のアカウントとして登録し、必要な情報を入力します。
ボット用チャネルも作成し、チャネル基本情報の中にある”チャネルシークレット”をどこかに控えておきましょう。同様にMessage API設定の中にある”チャネルアクセストークン”もどこかにコピペしておきます。

# Lambda関数を作ろう!
LINEの設定が終わったらいよいよAWSでLambda関数を作っていきます。

元記事を表示

OTHERカテゴリの最新記事