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

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

AWS SAM: 役割と機能をざっくりまとめてみた

こんにちは!Xyeerです
今日は、SAMの役割と機能について説明します。

## 経緯
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3749163/d52c05cc-4442-a7af-270d-dea05d3673fc.png)

現在、上記のようなシステムを使っています。
Lambdaには、[Amazon Elastic Container Registry](https://aws.amazon.com/jp/ecr/)経由でアップロードしています。

**問題点**
・Lambdaにアップロードするまで、システムが問題なく動くかわからない。
・何度もソースコード修正するのに、毎回アップロードして確認するのが手間である。
### →ローカル環境で、Lambdaを使えるようにしたい

そんな思いで色々と調べていたら、サーバレスアプリケーションを簡単に定義、デプロイ、管理できるフレームワークであるSAMに出会いました。

## そもそも AWS SAMって何?
イベント駆動型のサー

元記事を表示

SwiftでAmazon S3のモックを用意して自動テストを実装する

# 概要
AWS SDK for Swiftに[Testing and debugging](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/using-testing-debugging.html)というセクションがあり、モックを使用した自動テストの方法が記載されています。
また、上記のドキュメント内で紹介されているコードは[Github](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/swift-sdk/mocking)上に公開されているので、こちらを確認するとより理解が深まります。

上記のコンテンツを参考にしてモックを使ったテストを実装したのでその方法についてメモを兼ねて記述します。

# 詳細

モックを用意して自動テストを実装する際の基本的な流れは以下の通りです。

**1. Protocolを作成し、Protocol内でモックを作成したい関数を指定する
2. 1で作成したProtoco

元記事を表示

AWS AppFlow 接続先情報を変更するために「フローを編集」をクリックするとエラーが出る

## 概要

AppFlowの接続先の認証情報が代わった。送信元接続の情報を変えようとフローの詳細画面からアクションを開き「フローを編集」をクリックしたらエラーが出たので自分の場合の解決方法を簡単にメモする。

## エラー内容

“`
Error while communicating to connector: HttpClient error executing/parsing response given request object due to 接続先の情報
“`

## 解消方法

そもそも、送信元接続の情報変更は、フローの編集画面からではなく、フローの詳細画面の「送信元接続」の下にある「別の接続を選択」をクリックして変更すれば良い。
接続が確立されている、「送信元接続」を選択できれば、「フローを編集」をクリックしてもエラーにならない。

元記事を表示

AWS勉強備忘録17 – UL/DLの方法、 S3のアクセス管理と改ざん防止機能

# UL/DLの方法について

| 方法 | 説明 | 適用シナリオ | メリット | デメリット |
|———————–|————————————-

元記事を表示

SalesforceのApexでREST APIを使用してS3に署名バージョン4でアクセスする方法

SalesforceのApexを使用して、REST APIでAmazon S3に署名バージョン4を使用してアクセスする方法の日本語記事があまりなかったので、メモとして残しておく。

# 前提条件
– AWSアカウントを所有しており、IAMユーザーを作成し、アクセスキーとシークレットキーを取得していること
– S3バケットのアクセス権やSalesforceの設定が適切にされていること

# 実装
以下の公式ドキュメントの手順にしたがって実装。詳細は以下を参照。
[署名付き AWS API リクエストを作成する](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/create-signed-request.html)

:::note warn
`secret, secretKey, region`はクラス変数等で定義しておく
:::

## 手順1: 正規リクエストを作成する
“` Apex
private String generateCanonicalRequest(String method, String filena

元記事を表示

AWS勉強備忘録16 – 命名規則、バケットポリシー、ユーザーポリシー、Webサイトホスティング

Amazon S3バケットを作成する際、バケット名は全AWSユーザー間で唯一無二でなければなりません。このため、バケット名を選ぶ際にはいくつかの命名規則に従う必要があります。

– **バケット名は小文字のみ**を使用できます。
– **数字とダッシュ(-)** も使用できますが、連続するダッシュは使用できません。
– バケット名は**3文字以上**と**63文字以下**でなければなりません。
– バケット名は数字やダッシュで始まることはできません。
– 「.」(ドット)を含むバケット名は、特定の条件下でのSSLの問題を引き起こす可能性があるため、推奨されません。

これらの規則に従ってバケット名を選ぶことで、グローバルに一意のバケット名を確保することができます。

## バケットポリシーとユーザーポリシー

Amazon S3でのアクセス制御には、主に「バケットポリシー」と「ユーザーポリシー」の二つのメカニズムがあります。これらのポリシーを使って、バケットやオブジェクトへのアクセスを細かく制御できます。

### バケットポリシー

– **概要**: バケットポリシーは、バケットレ

元記事を表示

AWS勉強備忘録15 – S3を使用する流れ

# Amazon S3の基本: バケットとオブジェクトの操作

## S3の基本概念

### バケット
– **定義**: S3でデータを格納するためのコンテナです。バケット内には無制限のオブジェクトを格納できます。
– **バケット名**: グローバルに一意である必要があります。バケット名は、S3内でのリソースのアドレス指定に使用されます。

### オブジェクト
– **定義**: ファイルとそのメタデータを含むデータの実体です。オブジェクトはバケット内に格納されます。
– **オブジェクトキー**: オブジェクトの識別子です。すべてのオブジェクトは、必ず1つのキーを持ちます。バケット、オブジェクトキー、バージョンの組み合わせによってオブジェクトを一位に識別する。実質的には名前のようなもの。また、ファイルパスのような構造をとれる。
– **オブジェクトメタデータ**: 名前と値のセットのことです。オブジェクトのアップロード時に設定できる。オブジェクトキーはS3がファイルを識別するためのデータだが、メタデータは、人間がファイルを管理しやすくするためのデータと考えるとわかりやすいです

元記事を表示

【AWS】あまり費用をかけずに閉域網からHTTPSでS3のファイルダウンロードを可能にする方法

# 0. はじめに
公共系システムでは政府共通ネットワークなど、各公共機関の組織で用意された閉域網に接続することが多いです。公共系システムのクラウド化にあたってはその閉域網からアクセスしてくるユーザ向けにサービスを提供する場合も多いですが、一般的にあまりノウハウが流通していないかと思います。

今回はそんな閉域網から接続するユーザ向けにAWS S3からファイルダウンロードを可能にする構成について検討し、比較的簡易な構成であまり費用をかけずに行える方法を確認しました。

# 目次
[0. はじめに](#0-はじめに)
[1. 要件](#1-要件)
[2. 考えられる構成](#2-それぞれ暗号化する方法)
[3. インタフェースエンドポイント経由でS3から直接ダウンロードする方法の検証](#3-インタフェースエンドポイント経由でS3から直接ダウンロードする方法の検証)
[3-1. 必要な設定](#3-1-必要な設定)
[3-2. 検証結果](#3-2-検証結果)
[3-2-1. s3の証明書と接続可能なurl](#3-2-1-s3の証明書と接続可能なurl)
[3-2-2. ファイルの種類

元記事を表示

CI/CDによるIaC運用

# CI/CDによるIaC運用
Shigeyukiです。
CloudFormationを題材に、CI/CDによるIaC運用を考えてみたいと思います。
CloudFormationテンプレートをソースコード管理してインフラコードをDevOpsできる、シンプルな構成で実現してみます。

# 目的:IaCもDevOps的に運用して作業効率を図りたい。
アプリのデプロイに比べて、インフラ整備のデプロイ頻度は少なく、IaCがDevOpsされていないことが多いのではないかと思います。
IaCをGitなどで管理してCI/CDすることで、インフラ整備の作業効率と安定した運用が可能となります。

:::note info
**Point**
インフラコードをGit管理し、DevOpsで運用することで品質の高いインフラの迅速な提供を図ります。
手操作によるミスを徹底排除します。
:::

# 全体構成:CodePipeline + CloudFormation
IaCをCI/CDするために、CodePipeline上でCloudFormationを利用した基本構成は以下のイメージとなります。

![i

元記事を表示

IaC汎用化について考えてみる(その1)

# IaC汎用化について(その1)

Shigeyukiです。
IaCの構築するには、保守性を意識する際に基本的な要素について複数回に分けて検討してみたいと思います。

# 目的:IaCの保守性を考慮し作業効率を向上させる
CloudFormationを例にIaCを導入するあたり、環境毎の違った要件に沿うAWSリソースをつくるのに、類似したテンプレートが生成されやすくなります。どういったポイントについて意識することで保守性が向上するかについて検討します。

# テンプレートを汎用化するための検討事項
テンプレートのAWSリソースの作成・設定条件となる情報を外部から受け取り、それを基にAWSリソースの作成・設定を動的に制御する必要があります。

ここでは1つのEC2インスタンスを開発環境用と本番環境用に異なるインタンスタイプを作成し、本番環境だけに専用リソースS3を作成したいとします。
環境に依存した設定値(この場合、インスタンスタイプ)をテンプレートにハードコーディングしたり、環境専用インスタンスをそのまま定義してしまうと、下図のように環境専用のテンプレート化となってしまいます。

元記事を表示

AWS勉強備忘録14 – S3 ストレージクラス

### オブジェクト単位でのクラス選択

オブジェクト単位でストレージクラスを選択できるとは、S3に保存される個々のファイル(オブジェクト)ごとに、上記のストレージクラスを適切に選択できることを意味します。これにより、アプリケーションの要件に応じてコストとパフォーマンスのバランスを最適化できます。

### ライフサイクルポリシー

ライフサイクルポリシーを設定することで、オブジェクトが特定の条件を満たした時(例えば、作成から一定期間経過した時)に、自動的に別のストレージクラスに移動するように設定できます。この機能は、コストの最適化とデータ管理を自動化するために利用されます。例えば、ある期間が経過したデータを標準から低頻度アクセスクラスに移動したり、さらに時間が経過したデータをGlacierに移動させることが可能です。

Amazon Simple Storage Service(Amazon S3)は、オンラインでのデータストレージサービスを提供し、様々なストレージクラスを通じてデータの保管ニーズに対応します。データのアクセス頻度や保持期間に応じて、最適なコスト効率を実現

元記事を表示

【初心者向け】AWSでメインフレームをモダナイズする~Blu Ageについてまとめてみた

# はじめに
このブログはAWSとメインフレームのモダナイゼーションについて自身が学習した内容のまとめ記事となります。
前半ではクラウドやメインフレームに関して簡単に触れていますが、既に知識のある方は、冒頭を読み飛ばしていただいて構いません。
内容としては自身が理解しやすいように平易な表現を使って構成しているため、著しく正確性に欠ける情報がありましたらご指摘いただけると筆者は大変喜びます。
# そもそもAWSとは
もはや説明不要かもしれませんが、AWSによるメインフレームモダナイゼーションを理解する前にAWSについて簡単に触れておきます。

AWSとはAmazon Web Servicesの略で、
Amazonが提供している200以上のクラウドコンピューティングサービスの総称です。

https://aws.amazon.com/jp/what-is-aws/

### クラウド
クラウドを一言でいうと「利用者がサーバーやネットワークのなどのインフラや、ソフトウェアを持たずとも、インターネットを通じて、サービスを必要な時に必要なだけ利用する仕組み」のことです。
つまり、物理的なハードウ

元記事を表示

[AWS]TerraformでECS FargateでAPIの実行環境を作ってみた

# はじめに
完璧の「璧」って、「壁」じゃなくて「璧」だって知ってました?
僕は知らなくて、最近会社の先輩に言われて初めて気づきました、、、
スマホとかPCで入力するときは勝手に変換してくれているのでいいんですけど、手書きの時は絶対まちがっていただろうなーと思います

はい、では、前回までで、API の作成と GithubActions で CI の構築をしました
せっかくなので、今回は作った API を動かすための AWS 環境を作っていきます

## 実際に動かす方法について
以下の手順を見てください
https://github.com/Ixy-194/go-api-sample-todo-terraform/blob/main/README.md
docker で動くようにしているので、terraform インストールしなくても、docker さえ入ってれば動かせます👍

# 今回のゴール
以下構成の AWS 環境を作ります。terraform で
よくある構成な、シングルリージョン、マルチ AZ 、アプリは ECS 、RDS は Aurora です
API は ECS Far

元記事を表示

【AWS】用語を整理しながら学ぶAWS Amazon CloudFront

## はじめに

この記事ではAWSが提供するAmazon CloudFront(以下、CloudFront)を学習していく内容となっています。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。

## Amazon CloudFrontとは

CloudFrontは、AWSが提供するグローバルなコンテンツ配信ネットワーク(CDN)です。
AWSの公式サイトには下記のように表現されています。

> 低レイテンシーかつ高速な転送速度でコンテンツを安全に配信
> グローバルに分散した 600 以上の Point of Presence (PoP) を経由してデータを配信
> トラフィックの暗号化やアクセス制御によりセキュリティを向上させ、AWS Shield Standard を利用
> 統合されたリクエスト、カスタマイズ可能な料金オプション、AWS オリジンからのデータ転送にかかる費用をゼロ
> AWS のコンテンツ配信ネットワーク (CDN) エッジで実行するコードを、サーバレスコンピューティング機能を使ってカスタマイズ

元記事を表示

HULFT10 for Container Services でHULFT Squareのスクリプト実行してみた

# はじめに

こんにちは、すぎもんです。:smiley:

HULFT10 for Container Services では WebAPI リクエストの発行に対応したことにより、外部サービスとシームレスに連携が可能となりました。

今回はそんな HULFT10 for Container Services のジョブ起動情報を使って、配信成功時に HULFT Square のサービスが実行される方法についてご紹介します。

HULFT10 for Container Services について紹介している、下記の記事とウェブサイトもあわせてご覧ください。

**■ HULFT10 製品紹介ページ**

https://www.hulft.com/software/hulft-10#hulft10-for-container-services

**■ HULFT10 for Container Services (コンテナ版HULFT)の環境構築をしてみた**

https://qiita.com/sugimon/items/e589e654f7bb38825550

**■ HUL

元記事を表示

ROSAでEFSを利用する

# 概要
**R**ed Hat **O**penShift **S**ervice on **A**WS(ROSA)はAWS上で提供され、ManagedなOpenShiftが利用出来るサービスです。
ここでは詳細な説明は割愛しますが、OpenShiftはKubernetesにエンタープライズにも対応出来るようなサービス(ロールベースでのアクセス制御・ソースコードからのアプリケーションのデプロイ等)を追加したサービスです。

https://www.redhat.com/ja/technologies/cloud-computing/openshift

ROSAの場合はレイヤー毎にAWS・Red Hat・利用者で責任が分かれ、AWS・Red Hatのサポートを受けながらコンテナプラットフォームの運用を行うことになります。

https://access.redhat.com/documentation/ja-jp/red_hat_openshift_service_on_aws/4/html/introduction_to_rosa/rosa-policy-responsibilit

元記事を表示

マルチアカウント環境でのGuardDutyの一括設定

## 概要
GuardDutyはAWSの提供する不正検知・脅威検出に関するサービスで、Security Hub・InspectorとともにAWSで利用を強く推奨されるサービスの一つです。マルチアカウント環境では、Organizationsのサービス統合および管理アカウントのGuardDutyでアカウント追加時の自動有効化の設定により、Organizationsにアカウントが追加されたときにGuardDutyを自動で有効化することが出来ます。

一方で上記の設定を行う場合、GuardDutyで管理アカウント・メンバーアカウントの親子関係が構成されるため、メンバーアカウントからは一部の操作が制限されます。
管理アカウント・メンバーアカウントでの各アクションの実施可否については以下の公式Docsをご確認ください。

https://docs.aws.amazon.com/guardduty/latest/ug/administrator_member_relationships.html

そこで、本記事では[前回のCloudTrailの記事](https://qiita.com/nara

元記事を表示

マルチアカウント環境でのCloudTrailの一括設定

## 概要
AWSを利用するにあたって操作情報を記録するCloudTrailは必須と言っても良い機能です。
そのため、複数のAWSアカウントを利用するようなマルチアカウント環境では、複数のAWSアカウントのCloudTrailを一括で設定したい・ログ集約に特化したアカウントに全アカウントのCloudTrailログを集約したい、という要件はよくあると思われます。

こういった要件に対して、AWSではOrganizations・Control Towerの機能を活用することでほぼ自動で設定を行うことが出来ます。
一方、要件によってはこの設定がマッチしない場合もあります。
例えば以下のようなシチュエーションです。
・同一Organizationsに開発・本番など複数の環境が存在しており、環境毎にログ出力先を変更したい
・環境毎にCloudTrailのログ出力設定を変更したい

そこで、本記事ではOrganizations・Control Towerを利用するパターンと比較しながら、Control Towerを利用せずに複数アカウントへCloudTrailを実装するパターンを紹介します。

元記事を表示

S3 Transfer AccelerationとAWS Global AcceleratorとAmazon CloudFrontのそれぞれの特徴について

初めまして、目黒です。

4月からAWSの仕事に携わるために、AWSの資格を取得するため日々勉強をしています。
現在は3月末の SOAの試験に向けて勉強中です。

今回は以下サービスの特徴についてまとめます。
* **S3 Transfer Acceleration**
* **AWS Global Accelerator**
* **Amazon CloudFront**

### S3 Transfer Acceleration
一言まとめ:S3へのデータアップロードを高速化するためのサービス
※「Amazon CloudFront の PUT/POST」もS3にデータをアップロードを高速化できる
 (CloudFrontの詳細は下記リンクを参照)

https://aws.amazon.com/jp/s3/faqs/#:~:text=%E5%8F%82%E7%85%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82-,Amazon%20S3%20Transfer%20Acceleration,-Q%3A%20S3%20Trans

元記事を表示

Amazon Comprehendはプロンプトの安全性・個人情報チェックに使えるか?

# 要約

– Amazon Comprehendのコンテンツモデレーション(有害性検出、迅速な安全性分類、PII検出)を試した
– 日本語は非サポートとなっているが、部分的には利用可能
– 安全性分類:〇、有害性検出:✕、個人情報検出:△

# はじめに
LLMの社内利用やビジネス適用が進む中で、LLMへの入力・出力の管理が重要度を増しているように思います。LLMへの入出力の監視や不適切なコンテンツの検知と削除の仕組み化が必要となり、コンテンツモデレーションの方法を模索している方も多いのではないでしょうか。
今回はAmazon Comprehendをコンテンツモデレーションに使えないか確認してみます。

## Amazon Comprehendとは

端的に言えばテキストを入力に、さまざまな情報解析が行えるサービスです。
公式の説明を見てみましょう。

> Amazon Comprehend では、自然言語処理 (NLP) を使用して、特別な前処理をすることなくドキュメントの内容に関するインサイトを引き出すことができます。Amazon Comprehend は UTF-8 形式

元記事を表示

OTHERカテゴリの最新記事