AWS関連のことを調べてみた2022年05月02日

AWS関連のことを調べてみた2022年05月02日
目次

S3とCloudFrontを使ってWEBサイトを公開する

目的

1. 自分用の手順書として、とりあえず設定内容だけ記載していく
2. 後々「なぜその設定にしたか」など、加筆して知識を深める

流れ

1. S3でとりあえず静的WEBホスティングを使ってHello Worldする
2. S3の設定を変更し、CloudFrontを使ってCDN配信する

# 1. S3でとりあえず静的WEBホスティングを使ってHello Worldする
##### バケットを作成し、オブジェクトにindex.htmlをアップロードする
バケット(フォルダ)を作ってオブジェクト(ファイル)を格納するような流れです。

:::note
AWSアカウントの作成などは終えているものとします。
:::

**① バケットの作成**
– S3と検索し「バケットを作成」をクリック。
– バケット名:全世界で被ってはいけないのでユニークなものを入れましょう。
私は”sample-qiita-220502″というものを作りました。
– AWSリージョン:私は東京リージョンを指定します。

![スクリーンショット 2022-05-02 9.50.29.png](https:/

元記事を表示

AWS DynamoDB メモ 項目削除ではまったこと

# エラーと原因

– エラーメッセージ

“`
[ERROR] ClientError: An error occurred (ValidationException) when calling the DeleteItem operation: The provided key element does not match the schema
“`

– 原因

`DynamoDB.Table()` クラスの `delete_item()` メソッドの `Key` 引数にプライマリキー以外のキーを指定していた

– 関連するドキュメント

> A map of attribute names to AttributeValue objects, representing the primary key of the item to delete.
>
>For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only ne

元記事を表示

Lambdaオーソライザー使うなら、知っとくと良いこと

### はじめに

最近、RESTでAPIを作るときにはLambda + APIGatewayで作ることが多いのですが、認可処理を作るときにはLambda オーソライザーが便利ですよね。
しばらく使ってみたので、新しく使おうと思う方向けに知っておいた方が良い知見を共有しようと思います

### [Lambda Authorizer](https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)とは

Amazon API Gatewayの機能で、APIのメソッドを実際に呼び出す前に認可処理用のLambdaを呼び出し、そこの結果で許可された場合のみ実際のAPIを呼び出せるというものです。

実際のAPIの処理から認可処理を分離することができるのと、APIで認可処理を再利用することができるので、とても有用です。
Lambda Authorizer以外でも認可処理をする方法は、[Amazon Cognitoユーザープールオーソライザー](ht

元記事を表示

AWS認定 SAP on AWS Specialty(PAS)を、SAP知識ほぼ0からスタートして取得したやったことまとめ

# はじめに
SAP on AWS Specialty(PAS)は、2022年4月25日に開始された、新しいAWS認定です。

今回、SAPをほぼ0からスタートして取得できた試験準備のコツなどについてまとめてみました。SAP on AWS Specialty に関わるAWS関連サービスのイメージを掴んでいただければ幸いです。

# 本記事の主な対象者
– AWS認定の他の試験区分は取得済みで、SAP on AWS Specialty の受験を検討している方
– 取得に向けて有効な学習方法などの情報収集したい方

# 筆者について
– [2020 APN AWS Top Engineer](https://aws.amazon.com/jp/blogs/psa/2020-apn-aws-top-engineers-announcement/)
– [2021 APN AWS Top Engineer / APN ALL AWS Certifications Engineer ](https://aws.amazon.com/jp/blogs/psa/apn-engineers-aw

元記事を表示

デフォルト暗号化したS3バケットのファイルをコピーできなかった

デフォルト暗号化されたS3バケットに対してEC2インスタンスからファイルをコピーしたり、S3バケットにあるファイルを取得をしようとしたりとするとエラーになったので、対応策を記載します。

# 前提条件
* EC2はAmazon Linux2
* EC2にはS3バケットへのフルアクセス権限を許可するIAMロールをアタッチする
* S3バケットはデフォルト暗号化を有効にする
* デフォルトの暗号化はSSE-KMSを利用する
* KMSキーは新規作成したデフォルト設定のCMKを利用する

# 検証環境で問題を再現させる

### S3バケットを新規作成する
デフォルト設定でS3バケットを新規作成します。

### EC2用IAMロールを作成する
今回マウントするS3バケットに対するS3のフルアクセス権限を持ったIAMポリシーを作成し、IAMロールにアタッチします。
IAMポリシーは以下のようにしました。
~~~
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,

元記事を表示

GitHub Actions + Hugo + AWS S3 + CloudFrontでホームページをリニューアルしました

# GitHub Actions + Hugo + AWS S3 + CloudFrontでホームページをリニューアルしました

## TL;DR

[www.inoue-kobo.com](https://www.inoue-kobo.com)は静的サイトジェネレータにより生成しています。今までは[MkDocs](https://www.mkdocs.org/)で運用していたのですが、[Hugo](https://gohugo.io/)に乗り換えてみました。ついでにCI/CDパイプラインを[AWS CodeBuild](https://aws.amazon.com/jp/codebuild/)から[GitHub Actions](https://github.co.jp/features/actions)に変更しています。

以下の様な構成です。

![](https://www.inoue-kobo.com/aws/hugo/images/hugo-architecture.png)

Hugoのテーマは以下を利用しています。

* [Mainroad](https://githu

元記事を表示

CloudShell・Cloud9でのSNS作成

# はじめに
私は大学卒業後に新卒でITとは無縁のアナログな会社に営業として6年勤務後に現在のSESに未経験から転職して1年ほど。

経験した言語はPython・C#・Js
インフラの仕事をしたい訳ではなかったが、知識がなさすぎてやばいと思い個人的に勉強を始めAWSにたどり着いた。
目的がないと続かないと性格なので何やら流行っているAWS認定試験を合格を目指そうと思い以下を合格済み
・クラウドプラクティショナー 
・ソリューション・アーキテクト・アソシエイト 

現在はAWSエンジニアとして転職できるように勉強している。

# この記事を書いた理由

オンラインでの勉強会に参加した際に
**アウトプットするまでが勉強**
という言葉から記事を書くというアウトプットをすることにした。
学んだことの復習をします。

アウトプット経験の少なさとそもそも学歴がないので文章力のかけた内容となる可能性もあると思いますがご理解のほどよろしくお願いします。
間違い、最善の策等のご指摘は喜びます。

# 内容について
[connpass](connpass)でJAWS-UG CLI専門支部でCLIハン

元記事を表示

Terraform Get Started – AWS チュートリアルのHands-on 詰まった場所

# 目的

TerraformのチュートリアルをHands-onしたときに、詰まった個所があったのでメモ的に。トラブルシューティングの内容と同じです。

https://learn.hashicorp.com/tutorials/terraform/aws-build

# 必要環境

– AWSアカウント
– AWS Credentials
– Terraform CLI

# 詰まった場所

### `terraform apply`実行時にAMIが見つからない

[Write configuration](https://learn.hashicorp.com/tutorials/terraform/aws-build#write-configuration)のmain.tfファイルのproviderでregionをap-northeast-1に設定
`terraform apply`実行時にAMIが見つからない

**原因**

us-west-2にあるAMIを設定していたため

**解決**

[EC2 AMI Locator](https://cloud-images.u

元記事を表示

AWS 構築順序

### 1. アカウント作成
* CloudWatchの設定で請求の見える化
* CloudTrailの設定で、作業ログの見える化

### 2. ルートユーザーとIAMユーザーの作成

### 3. VPCの設定
* VPCでリージョンとアヴェイラビリティゾーン(AZ)を設定
* AZにサブネットを設定(パブリックIPアドレスとプライベートIPアドレスを設定)
* パブリックIPアドレスにWebサーバー、プライベートIPアドレスにMySQLやOSを後ほど設置する。
* パブリックIPアドレスにインターネットから接続できる様にインターネットゲートウェイの設定を行う。
* パブリックIPアドレスにルートテーブルの設定を行う。

### 5. EC2インスタンスを作成し、Apachやファイアーウォールを入れる
#### ssh接続
* ターミナルでssh接続をする。その際、秘密鍵は最初に一度だけ“`chmod 600 ~/〇〇/himitsu_key.pem“`とし、権限を変更する
接続は“`ssh -i /Users/yourname/〇〇/himitsu_key.pem ec2-

元記事を表示

CloudFront Functions の活用パターン集

# はじめに

CloudFront Functions(以後CF2)は、L@Eと異なり、軽量のため、L@Eより優先して使用を検討する必要がようなので、CF2について使用パターンをまとめました。

ビューアーレスポンスは使用しなかったため、ビューアーリクエストのみのパターンになります。

# CF2とL@Eの比較

| 1 | 2 | 3 |
|:-:|:-:|:-:|
| | CloudFront Functions | Lambda@Edge |
| ランタイムサポート | JavaScript(ECMAScript 5.1準拠) | Node.js、Python |
| 実行場所 | 218 以上の CloudFrontエッジロケーション | 13 の CloudFrontリージョンのエッジキャッシュ|
| CloudFront トリガー | ビューアリクエスト / ビューアレスポンス | ビューアリクエスト / ビューアレスポンス / オリジンリクエスト / オリジンレスポンス |
| 最大実行時間 | 1 ミリ秒未満 | 5 秒 (ビューアトリガー)

元記事を表示

AWS 認定セキュリティ – 専門知識 試験対策

# はじめに

AWSのアソシエイトを三冠取ったので、次はSCSを取ろうと思い勉強はじめました。
その時のノートです。参考程度になればと思います。

### SCSの私の勉強法

– 参考書ベースで機能をざっと把握
– 参考書の最後の問題集とく
– AWSが無料で提供している問題とく
– 「AWS WEB問題集で学習しよう」で問題を解く
– [要点整理から攻略する『AWS認定 セキュリティ-専門知識』](https://www.amazon.co.jp/%E8%A6%81%E7%82%B9%E6%95%B4%E7%90%86%E3%81%8B%E3%82%89%E6%94%BB%E7%95%A5%E3%81%99%E3%82%8B%E3%80%8EAWS%E8%AA%8D%E5%AE%9A-%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3-%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98%E3%80%8F-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0

元記事を表示

【Glue】Glue Studioジョブノートブックを試してみた(起動編)

# 背景・目的
先日(2022/4/21)、Glue Studio ジョブノートブックが[発表](https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-glue-notebook-based-job-authoring/)されました。
ジョブノートブックは、インタラクティブにSparkを実行できる機能を有しているとのことで、従来の開発エンドポイントを用いたノートブックと異なり、サーバレスのようです。
まだ、理解が出来ていないため、実際に触って試したいと思います。

# まとめ
– 簡単に、ノートブックの作成ができました。
– ノートブックの起動や停止も速いです。

# 概要
## ノートブックの仕様の概要
– 以下の特徴があるようです。
– Jupyter ノートブックに基づいて、ノートブックインターフェイスでジョブをインタラクティブにオーサリング可能
– オーサリングという言葉が、私には馴染みがなかったのですが、[e-Words](https://e-words.jp/w/%E3%82%AA%E3%

元記事を表示

AWS Organizationsで利用するリージョンを限定しよう!

AWS Organizations の SCP (サービスコントロールポリシー) で、使わないリージョンを殺しておきます。

# Why ?

クレデンシャルが悪人の手に渡った場合、意図しない EC2 インスタンスを大量に立ち上げて仮想通貨掘られるなどの事態が起こりうる。特に普段使わないリージョンで悪意のある操作をされると気づきにくい。
特に日本から距離も遠く金額も高くあまり利用しないであろう思われる南米サンパウロリージョンなどで EC2 インスタンスを大量に立ち上げられてしまうと被害も大きくなる。

このような被害を防ぐため、 AWS Organizations の SCP (サービスコントロールポリシー)を使えば、普段使用しないリージョンの利用を制限しておくことができる。

望ましい構成として、 Organizations の親アカウントでは管理者権限の IAM ユーザを作らず、支払いと Organizations の操作のみ許可して普段は使用しない方針で運用する。
**Organizations の親アカウントは SCP で制御できない**ため、多くの権限を持たせないようにする

元記事を表示

Amazon Linux 2でLAMPサーバーのパッケージをインストールする際、No package ○○ availableエラーが出る

# エラー発生
[チュートリアル: Amazon Linux AMI への LAMP ウェブサーバーのインストール](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html)を参考に、LAMPサーバーのパッケージをインストールするとエラーが発生した。

“`
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
No package httpd24 available.
No package php72 available.
No package mysql57-server available.
No

元記事を表示

リリース2年後、セキュリティ視点でSaaSのバックエンドのインフラを振り返る

### はじめに

今日は、僕が担当しているサービスがリリースして2年ぐらい経ったので、バックエンドのインフラの変遷について振り返ります。

詳しくは書きませんが、サービスリリースから2年間、ユーザー数も増えましたし大規模法人にも使っていただけるようにもなりました。ユーザーさんが増えるにともなって、システム側に必要な要件も増えてきたため、それにどのように対応したのか?インフラ構成がどのように変えたのか?などを振り返ってみました。

会社がAWSベースでシステムを構築しているため、全てAWSのインフラの話になるのですが、参考になれば幸いです。

### リリース時の構成

自分のチームは新規プロダクトとしてチームが誕生しました。B向けのSaaSなのでユーザー数も最初はそこまで急に増えないこともあり、ある程度のリクエストを捌くことができて、少しのレイテンシは許容できるという状況だったので、AWSのLambdaを使うことにしました。

リリース時のインフラ構成は以下のような状況でした。

“`plantuml

() ブラウザ

package AWS環境 {
() Lambda

元記事を表示

【備忘録】AWSの便利なドキュメントまとめ(随時更新)

業務でAWSを扱うことが多いのですが、インターネットの世界には手助けになるドキュメントがたくさんあります。
ただ、色々なドキュメントがあるので「こんな時に参考になるのはどれかな?」と毎回考えるのがちょっと億劫です。

なので、以下のような形式でまとめておこうと思います。
***
見出し:大まかな目的
小見出し:ページの名前
1. 何が書いてあるのか
1. どんな時に見るべきなのか
1. URL
***

完全に個人的に使う目的ですが、誰かの役に立ったらうれしいです。
(見つけ次第、この記事は更新していきます)

# AWSの各サービスについて知りたい

## AWS サービス別資料
1. BlackBeltの資料、動画が見れる
1. 「このサービスについて詳しく知りたい」と思ったとき。ななめ読みすれば概要、読み込めば具体的にどんなことができるのかまでわかる

https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/

## awsgeek.com
1. AWSのサービス、概念などについて説明された

元記事を表示

Go,Vue,Firebaseを使ってポートフォリオを作成してみた。~参考リンク付き~

# はじめに
今回は私が転職活動で作成したポートフォリオについてまとめ記事を作成しました。
この記事ではアプリ開発にあたって苦労したことや、ポートフォリオ作成の参考になるようなことをご紹介できればと思います。

# 製作者の経歴
– 未経験でエンジニア転職し、1年程経験
– 受注開発でPHPを使用(フレームワークなし)
– 未経験時にRailsを使用してポートフォリオを作成し、一応springでの開発経験もあり。

# アプリの概要
基本的にはTwitterのような、投稿・コメント・いいね・フォロー機能のあるSNSをベースに、追加で
以下のような特徴のあるアプリケーションにしました。
– 目標起床時間を設定して、早起き達成日数を記録することができる
– 投稿にタグ付けしタグごとに朝活の共有ができる。

URLは下記です。よければ使ってみてください。
アプリのリンク:[ASAKATSUSNS](https://front.asakatsusns.com)
GitHub:[GitHub](https://github.com/taikyunn/asakatsusns)

# 開発し

元記事を表示

非エンジニアにクラウド技術の良さを伝えてみる

こんにちは、記事作成を1か月くらいサボタージュした、むっそでございます。
**とかく資本主義社会は誘惑が多すぎて**1つのことに集中するの激ムズです
(意志よわよわな自分を反省しています)

先日大学の友人(営業職)と久しぶりに会ったのですが、**「クラウド技術の良さがさっぱりわからん」** みたいなことを言っておりました。

確かに開発者じゃないといまいちクラウドの凄さは分からないかもなぁと思って記事を書こうと思いました。この題材自体は**N番煎じすぎてネットに記事はあふれかえってます**が、開発者視点で話せればなぁと思います。

一応、出身大学は経済学部なので「IT分からなすぎてマジ卍」という気持ちも通ってきておりますし、すこしばかりお悩み解決的なことはできるのではないかなと思います。

# はじめに

非エンジニア視点でクラウドの良さが伝わるように書きたいと思うのですが、非常に残念なことに [知識の呪い](https://ja.wikipedia.org/wiki/%E7%9F%A5%E8%AD%98%E3%81%AE%E5%91%AA%E3%81%84)みたいなやつはどうして

元記事を表示

AWSソリューションアーキテクトアソシエイト(SAA) 合格体験記

## はじめに
私自身クラウドに関する勉強を始めたばかりですが、無事にSAAの試験に合格することができました。事前になかなか勉強時間を確保することができず、結局、3週間程度で知識を詰め込んで試験に臨みました。(本当であれば数ヶ月間しっかり勉強し、理解を深めた上で受験した方が良いと思います。。)

今回の合格体験を踏まえたオススメの勉強方法や反省点を紹介したいと思います。
IT初心者の方やこれからクラウドを勉強しようとされている方の参考になれば幸いです。

## 勉強教材
書籍
[AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3

元記事を表示

ApplicationLoadBalancer(ALB)の自己証明書を用いたHTTPS化

# 概要
ALBの利用においてHTTPS化を行うための方法。
ALBのDNS名と同名の自己証明書を作成し、ACMへインポート。後、ALBに適用すればできると想定。

# 前提
構成は以下の通り。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505716/dd231726-7225-d112-1d4a-a63f2680506f.png)

構成のポイントは以下。
 ・ALBはプライベート
 ・ALB-バックエンドサーバ(Nginxコンテナ)間はhttps化しない

構築順序は以下の通り。
 1.SSL証明書の作成
 2.ACMへのSSL証明書のインポート
 3.ALBリスナーの設定変更(https化)

## SSL証明書の作成
“`sh
# 秘密鍵の作成
> openssl genrsa -out private.key

# CSRファイルの作成
# 対話モードでCSRファイルの各種属性を設定する
# その際「Common Name」の設定値はALBのDNS名※を登録すること
>

元記事を表示

OTHERカテゴリの最新記事