AWS関連のことを調べてみた2021年08月27日

AWS関連のことを調べてみた2021年08月27日
目次

AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する

とあるサーバー向けソフトウェアでJava16を必要とする事があった。
すでにAmazon Corretto 8を用いてJDK8がインストールされていたが、
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 16のインストールについて解説するが、Corretto 8については次の記事を参考にしてほしい。→[AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する](https://qiita.com/honahuku/items/e5464bb3b102710b555a)

# 環境
“`
AWS EC2 t4g.medium ARM AmazonLinux2
JDK 1.8.0_302 がインストール済み
“`
今回はARM版のAmazonLinux2を利用しているが、x86でも手順はほぼ同様だと思われる。

# インストール
今回はyumからインストールを行う。rpmからマニュアルでインストー

元記事を表示

Terraform+SAMでLambda+APIGatewayの環境構築

## どういう記事か

terraform, samの初心者がapi gateway + lambda + cloudfrontの環境構築をしたときのメモです。

## 前提

– m1 mac
– macos big sur

## 参考

https://dev.classmethod.jp/articles/sam-and-terraform-example/

## terraformのダウンロード&インストール

tfenvから導入を始めます。
tfenvが正しい方法なのかはよくわかっていませんが、、

“`
brew install tfenv
“`

今回は `0.15.5`をインストールしてみました。

“`
tfenv install 1.0.5

Installation of terraform v1.0.5 successful. To make this your default version, run ‘tfenv use 1.0.5’
“`

これで設定します。

“`
$ tfenv use 1.0.5

$ terraform –vers

元記事を表示

AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する

とあるサーバー向けソフトウェアでJava16を必要とする事があった。
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 8のインストールについて解説するが、Corretto 16については次の記事を参考にしてほしい。→[AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する](https://qiita.com/honahuku/items/36e83367f6acac9947c8)

# 環境
“`
AWS EC2 t4g.medium ARM AmazonLinux2
Javaは未インストール
“`
今回はARM版のAL2を利用しているが、x86でも手順はほぼ同様だと思われる。

# インストール
今回はyumからインストールを行う。rpmからマニュアルでインストールする方法はこちら→[AWSのマニュアル](https://docs.aws.amazon.com/corretto/lat

元記事を表示

【個人開発】地域の魅力を発信できるデジタルパンフレットサービス「Openパンフレット」を作った

# はじめに

* デジタルパンフレット作成公開サービス **[Openパンフレット](https://open-pamphlet.com)** をリリースしました。

* 個人開発です。

* バックエンドはだいたいAWSです。

* Android未対応?​

https://open-pamphlet.com

​バックエンドの技術者がフロントやらインフラやらアプリやら色んな所に手を出して作ったシステムになっています。

記事本文はZennで書いているので[こちら](https://zenn.dev/ymasutani/articles/42fb40f4e00f1d)です。

# 宣伝
Android版の開発のためクラウドファンディング募集しています。
よかったら見て下さい。励みになります。

https://camp-fire.jp/projects/view/467291

元記事を表示

【実践!AWS Lambda】Javaで書いたLambdaの初回起動が遅い問題を解決する

# 概要
AWS Lambdaの開発において、必ず出てくる初回起動が遅い問題、、、
NodejsやPythonなどのスクリプト言語のLambdaであれば対策は比較的簡単なのですが、Javaなどのコンパイル型の言語の場合は難易度が上がります
今回は、JavaのLambdaの初回起動にかかる時間を、**8秒→1秒**に短縮することに成功したので、ここに備忘録を残します

# 目次
1. 前提条件
1. 設計要素の洗い出し
2. コールドスタート対策
2. DBコネクション対策
2. クラスローディング対策

# 前提条件
・ランタイムはJava 11を使用
・以下のような構成とする
①API GatewayをトリガーにLambdaが起動
②RDS Proxyを介してAuroraに接続
③ClientにResponceを返す

# 設計要素の洗い出し
時間がかかっている要因を洗い出していく

## ▼ 実行時間を計測
まずはPostmanからAPIを叩いて初回起動に要する時間を計測

| | 実行時間 |
|:———–|———-

元記事を表示

AWSの便利なプラットフォーム「Amplify」について

# はじめに
これからAWSのサービスの一つ、**Amplify(アンプリファイ)**を利用してアプリケーションを開発するため、備忘録としてここに記述します。
私は初学者ですので、誤っている箇所がありましたらご指摘いただけますと幸いです。

# Amplifyとは
クラウドサービス上におけるモバイルアプリケーションやWebアプリケーションを安全に構築するためのプラットホームになります。
**Lambda**、**DynamoDB**、**Cognito**、**AppSync**、**CloudFront**、**S3** など、AWSのサービスを使いやすくパッケージ化したものです。Amplifyに対応している言語**( JavaScript、iOS、Android )**、ライブラリ**( React、Vue.js、Angular )** でフロントエンドさえ作ってしまえば、サーバーサイド、インフラはAWSのサービスで簡単につくれてしまうという優れものです。

# 導入されているツール(一部抜粋)

### ① API(例:AppSync、REST、GraphQL)
ソフトウェアの一

元記事を表示

no basic auth credentialsでdocker build出来ない

# 起きたこと
`docker build`しようとしたら`no basic auth credentials`と言うエラーが出てうまく行かない
S3環境を見に行けてなかったっぽい(エラーログ保存し忘れました)

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/common-errors-docker.html

>aws ecr get-login-password コマンドを使用して Docker に対して正常に認証されても、HTTP 403 (Forbidden) エラーが発生したり、docker push コマンドまたは docker pull コマンドからのエラーメッセージ no basic auth credentials が表示されたりする場合があります。この問題の既知の原因をいくつか次に示します。

# 解決策
## 1.AWS CLIインストール
もうしてある人は飛ばしてOK

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cl

元記事を表示

AWSソリューションアーキテクト合格体験記

先日AWSソリューションアーキテクト – アソシエイトの試験を受けました。
無事合格できたので、今後受験を考えている方の参考になるよう、体験記を書いていきます。

## AWSソリューションアーキテクト概要
|項目|内容|
|—|—|
|概要|AWS利用の最適な設計について
問われる試験|
|バージョン|SAA-C02|
|問題|選択問題 65問|
|時間|130分|
|合格ライン|720点以上|
|採点|100〜1000点で採点
50/65問が採点対象
15/65問は採点対象外※|
|受験料|15,000円|
|模擬試験料金|2,000円|
|受験の前提条件|なし|
|言語|英語、日本語、韓国語、中国語(簡体字)|

※採点対象外の15問は、`情報を収集し今後採点対象の設問として使用できるかどうかを評

元記事を表示

AWSのVPCとCIDRの事

# はじめに
少し前の事なのですが、AWSのトレーニングを受講する機会をいただきまして、その際、VPCの理解が浅いまま受講したのが災いし、せっかく受講したのにうまく再現できず(トレーニングでは専用のVPCがすでに構築されている状態だったため)
VPCから改めて知る必要があるなと思い、調べてみました

# 目次
1. [AWS VPC概要](#AWS%20VPC概要)
1. [サブネット](#サブネット)
1. [ルーティング](#ルーティング)
1. [ネットワークのアドレスについて](#ネットワークのアドレスについて)
1. [参考文献](#参考文献)


# AWS VPC概要
Virtual Private Cloudの略語で、仮想プライベートクラウド、開かれているクラウド上に仮想でプライベートなクラウドを構築するための**ネットワーク**を構築できる機能

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html

ネットワークの知識が必要だというこ

元記事を表示

公式資料を使ってゼロから2時間でAWSの全体像を理解しよう!

## 記事の目的

この記事は

– AWSについて全く知らない
– AWSの名前くらいは聞いたことがある
– AWSってなんなのかよく分からない

といった方々が、

– AWSとはなんなのかイメージできる
– 今後の学習をスムーズに進めることができる

ようになるための助けになる情報をご紹介します。

また、AWSに関する情報は色んな形でたくさんのものがありますが、今回はAWSの公式資料に絞って取り上げています。

## 2時間でAWSの全体像を理解するための公式資料

それでは早速資料を見ていきましょう!

#### 1.「クラウド (クラウドサービス) とは?」(Webページ)

こちらは公式のWebページです。

「そもそもクラウドとは?」という大前提の部分をまずは押さえておくのにおススメの内容です。

https://aws.amazon.com/jp/cloud/

#### 2. 「AWS の クラウドが選ばれる 10 の理由」(Webページ)

こちらも公式のWebページで「AWSの強み」や「AWSを利用するメリット」といった情報が分かりやすくまとまっています。

元記事を表示

Route 53 + CloudFront + ACM + S3でCDN&SSL付き静的サイト公開ハンズオン

このハンズオンを最後まで進めるとCDN付きhttps静的サイトが公開できます。
Route 53 + S3で静的サイトが公開できている前提として進めますので
まだの方は以下の記事を参考にしてみて下さい。
[お名前ドットコム+AWS Route 53+S3でhttp静的サイト公開ハンズオン](https://qiita.com/SwuBHj8aKGqBKHet/items/ba44351f7853c06e6bbb)
# CloudFrontを設定する
1.https://console.aws.amazon.com/cloudfront/v3/home#/welcome ←を開きます。
2.[Create a CloudFront distribution]をクリックします。以下書かれていない項目はデフォルトでOKですので飛ばしてお進み下さい。
3.Origin domainにS3のエンドポイント(ドメイン名で作ったバケットが候補で出てくるはずですがない場合はS3バケットを確認してなければ作成して下さい。[参考:S3バケットの作成](https://qiita.com/SwuBHj8aK

元記事を表示

IAMロールと信頼されたエンティティの関係性

## はじめに
IAMのロール作成時に聞かれる「信頼されたエンティティ」って何となったので調べて分かった事を備忘録としてを残す

## 信頼されたエンティティとは
IAMで作成したロールはユーザだけでなくサービス(s3とかLambdaとか)にも付与すること後できるが、
その付与可能なサービスを設定しているのが「信頼されたエンティティ」の部分
この「信頼されたエンティティ」にないサービスにはロールをアタッチできない

具体的に見ていく

### ロール作成
ロールをIAMで作成すると以下のような画面が出てくるが、ここで選択したサービスを「信頼されたエンティティ(=今作成中のロールをアタッチできる対象として許可する)」とみなすようになる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372684/8abc8e46-9dde-ce58-4c8e-72c5883f8146.png)

### 作成したロールの信頼関係(どのサービスならこのロールをアタッチできるか?)
「信頼されたエンティティ」

元記事を表示

S3、cloudfrontの設定をしたのにaccess deniedがwebページで表示されてしまう人向けの解決法

前提条件

この現象が起きている人の前提条件として、S3に表示させるindex.htmlなどのオブジェクトを設定し、バゲットポリシーも問題なく設定し、かつCloudfrontも設定し終わってるのにaccess deniedが出る人向けです。

特に他ページは普通に画面が表示されるのに特定のページだけaccess deniedが出る等の現象の方向けになっています。

回答

ルーティングはS3によって管理されていないため、常にindex.htmlにアクセスするようにルールを構成する必要があります。

具体的に何をすればよいかといいますと
cloudfrontのエラーページを設定するところにアクセスルート先を設定してください。

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662158/ed8f8a20-bf33-6483-53f0-d39a14db42b6.png)
こうすれば403(acces

元記事を表示

Windows10 コマンドプロンプトから ASWのWindows Server にscpでファイルを送信

# 環境

## AWS
– インスタンス Microsoft Windows Server 2019 Base – ami-0a2c187ea12f133eb

## 作業環境(クライアント)
– Windows 10
– コマンドプロンプト
– WSL(Ubuntu 20.04)

# AWS Windows Server(ファイルの受信側)の準備

## AWS Windows Serverで、OpenSSHサーバーを有効にする

– 以下の素晴らしい記事を参考に作業した
– ほんの少しはまっただけでゴールできたので本当に感謝!

https://dev.classmethod.jp/articles/configure-windows-server-2019-sshd/

## AWSのインスタンスのメタデータの取得方法を知らなかったのでメモ

– メタデータに公開鍵の情報がある
– http://169.254.169.254/latest/meta-data/ でメタデータにアクセスできる
– IP アドレス 169.254.169.254 は、リンクローカルアド

元記事を表示

AWSでAIサービスを使ってみる~⑧comprehend編~

##Comprehendとは
>自然言語処理を行うAIサービスです。主に①言語検出、②感情分析、③キーフレーズ抽出、④エンティティ認識、⑤構文解析の処理を行い情報を取得することができます。

今回は①の言語検出と②の感情分析を紹介させていただきます。

##言語の検出
初めに言語の検出を実行して行きます。

以下の文章の言語を検出します。

>私はこれから起こる出来事を楽しみにしています。

この文章の言語を検出して行きましょう。

検出するpythonファイルの概要
①ライブラリのインポート
②comprehend作成
③言語検出と表示

“`comp_japanese.py
import boto3
import json

comprehend = boto3.client(‘comprehend’, ‘ap-northeast-1’)
text = “私はこれから起こる出来事を楽しみにしています。”
result = comprehend.detect_dominant_language(Text=text)
print(json.dumps(result, inden

元記事を表示

お名前ドットコム+AWS Route 53+S3でhttp静的サイト公開ハンズオン

今回は静的サイトのテスト環境として設定していく手順のメモです。
※コンソール画面の構成が変わりやすいので画面キャプチャは載せない形で書いてみました。(2021/8執筆)
構成やボタンなどは同じものも多いので適宜似た単語などを探して進めてみてください。

このハンズオンを最後まで進めると
お名前ドットコム → Route 53 → S3の形式(http)で
静的なサイト公開までが実現できます。

# 1.ドメインレジストラを決める
ドメインレジストラはお名前ドットコムにしました。AWSでも取得できますがここは好みで良いと思います。ドメインをまず取得します。
# 2.S3バケットを作成します
ウェブサイトをS3で公開する場合はバケット名とウェブサイトのドメインを合わせる必要があります。今回はwww.example.comという前提で進めます。
 1.S3コンソール画面から[バケットを作成]ボタンをクリックします。
 2.バケット名にwww.example.comと入力
   リージョンにap-northeast-1と入力
   あとはとりあえずデフォルトで[バケットを作成]ボタンをクリック

元記事を表示

本番環境に対応したTerraform運用環境構築

# 概要
実務でAWS & Terraformを使用する機会があったので
その際得た運用環境の知見をまとめる。
また、2章以降で紹介するTerraform運用手法は、一個人の最終的な到達点であり
Terraformのベストプラクティスというわけではない為、参考程度に考えてください。
(あえて`terraform workspace`を使用していない等)

# 本記事で扱う環境一覧
– 開発環境 (ローカルPC)
– ステージング環境 (ステージング環境用AWSアカウント)
– 本番環境 (本番環境用AWSアカウント)

# 動作環境
– Linux
– Debian [v10.8]
– Windows
– WSL の Ubuntu [v20.04]
– WSLの構築については以下を参照

https://qiita.com/mttk030/items/6fd9821120a5a2218e78

# 0. AWSアカウント作成
以下を参考に、ステージング環境用と本番環境用のAWSアカウントを作成し、
Terraformで扱うリソースの権限を付与した
IAMユーザのクレ

元記事を表示

AWS Backup Audit Managerって何よ?

# はじめに
みなさんディザスタリカバリ(DR)対策は万全ですか?
今年は大阪リージョンが発表された影響もあり、東京-大阪でのマルチリージョン化がムーブメントとなっているのではないでしょうか?
AWSではDR構成として大きく4パターン(バックアップ&リストア、パイロットライト、ウォームスタンバイ、ホットスタンバイ)が用意されています。

そして私は丁度、東京-大阪DR構成を、AWS Backupを用いたバックアップ&リストア方式で検討している真っ最中で、AWS Backupお任せくださいマンになろうとしています。
そんな中、AWS re:Inforce 2021でAWS Backupの機能拡張「**Backup Audit Manager**」が発表され、内容が気になったので新機能を試してみました。
(※)ちなみに只今02:00、とても眠いです、、

# Backup Audit Manager

AWS公式Youtubeに[ムービー](https://www.youtube.com/watch?v=UH9sDD9UT38)が上がっていたので見てみる。
以下、動画に添えられていた解説

元記事を表示

Code CommitにpushされたらコミットのリンクをBacklogに記載を自動化

## はじめに
Backlogのgitではなく、Code Commitでソースを管理している場合にどのチケットに関するコミットか?分からなくなる
そこでBacklogにコミットのリンクを自動で記載する仕組みを構築したのでの備忘録を残す

https://github.com/yuta-katayama-23/codecommit-backlog

## 全体構成
自動的にコミットハッシュをBacklogチケット(Backlog的にはissue)に紐づけるロジックとしては、
コミットメッセージから正規表現でコミットハッシュを紐づけるべきBacklogのissueを探すキーワードを抽出し、そのキーワードをissueの件名に含むものを探し出しそのissueにコミットハッシュを紐づける
[^条件]: projectId や issueType

具体的には、

1. 開発者のCode CommitへのpushをCloud Watch Eventで捕捉しLambda関数を呼び出す
1. Cloud Watch EventのEventオブジェクトの内容にはコミットメッセージがないので、AWS SD

元記事を表示

is not authorized to perform: ecr:InitiateLayerUpload on resource: って怒られたら

“`
[ecs_test]$ docker push XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/hello-world-ecs-test-2:latest
The push refers to repository [XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/hello-world-ecs-test-2]
62fa8530d588: Preparing
fb04ab8effa8: Preparing
8f736d52032f: Preparing
009f1d338b57: Preparing
678bbd796838: Preparing
d1279c519351: Waiting
f68ef921efae: Waiting
denied: User: arn:aws:iam::YYYYYYYYYYYY:user/your_name is not authorized to perform: ecr:InitiateLayerUpload on reso

元記事を表示

OTHERカテゴリの最新記事