<mxfile host="www.iigtn.com" modified="2026-05-08T00:00:00.000Z" agent="iigtn-platform" version="24.0.0">
  <diagram name="hcl-guide.com Architecture" id="hcl-guide-arch">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="780" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <mxCell id="title" value="hcl-guide.com - Architecture" style="text;html=1;align=center;fontSize=18;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="320" y="20" width="560" height="30" as="geometry" />
        </mxCell>

        <mxCell id="user" value="Visitor" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="60" y="170" width="170" height="50" as="geometry" />
        </mxCell>

        <mxCell id="r53" value="Route 53" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.route_53;" vertex="1" parent="1">
          <mxGeometry x="290" y="160" width="78" height="78" as="geometry" />
        </mxCell>

        <mxCell id="acm" value="ACM (us-east-1)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#DD344C;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.certificate_manager_3;" vertex="1" parent="1">
          <mxGeometry x="430" y="280" width="58" height="58" as="geometry" />
        </mxCell>

        <mxCell id="cf" value="CloudFront (OAC)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.cloudfront;" vertex="1" parent="1">
          <mxGeometry x="430" y="160" width="78" height="78" as="geometry" />
        </mxCell>

        <mxCell id="s3" value="S3 (private, static)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#7AA116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;" vertex="1" parent="1">
          <mxGeometry x="600" y="160" width="78" height="78" as="geometry" />
        </mxCell>

        <mxCell id="content" value="GitHub × Terraform: 7 章&#xa;HCL 言語: 9 章&#xa;AWS リソース: 11 章&#xa;(計 27 章)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e3f2fd;strokeColor=#1565c0;fontSize=10;align=left;spacing=8;" vertex="1" parent="1">
          <mxGeometry x="760" y="150" width="220" height="100" as="geometry" />
        </mxCell>

        <mxCell id="ae1" value="DNS" style="endArrow=classic;html=1;fontSize=10;" edge="1" parent="1" source="user" target="r53">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ae2" value="alias" style="endArrow=classic;html=1;fontSize=10;" edge="1" parent="1" source="r53" target="cf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ae3" value="TLS" style="endArrow=classic;dashed=1;html=1;fontSize=10;" edge="1" parent="1" source="acm" target="cf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ae4" value="OAC sigv4" style="endArrow=classic;html=1;fontSize=10;" edge="1" parent="1" source="cf" target="s3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ae5" value="serve" style="endArrow=classic;dashed=1;html=1;fontSize=10;" edge="1" parent="1" source="s3" target="content">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="subB" value="B. Terraform 二段構成 (bootstrap + site)" style="text;html=1;align=left;fontSize=12;fontStyle=2;fontColor=#1565C0;" vertex="1" parent="1">
          <mxGeometry x="50" y="420" width="600" height="22" as="geometry" />
        </mxCell>

        <mxCell id="dev" value="Local terraform apply" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="60" y="470" width="200" height="50" as="geometry" />
        </mxCell>

        <mxCell id="bootstrap" value="terraform/bootstrap&#xa;(state + DDB lock)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff8e1;strokeColor=#ffa726;fontSize=10;align=center;" vertex="1" parent="1">
          <mxGeometry x="310" y="470" width="180" height="50" as="geometry" />
        </mxCell>

        <mxCell id="site" value="terraform/site&#xa;(ACM + CF + S3 + R53)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff8e1;strokeColor=#ffa726;fontSize=10;align=center;" vertex="1" parent="1">
          <mxGeometry x="540" y="470" width="200" height="50" as="geometry" />
        </mxCell>

        <mxCell id="stateS3" value="S3 (tfstate)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#7AA116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;" vertex="1" parent="1">
          <mxGeometry x="350" y="580" width="78" height="78" as="geometry" />
        </mxCell>

        <mxCell id="ddbLock" value="DynamoDB (lock)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.dynamodb;" vertex="1" parent="1">
          <mxGeometry x="470" y="580" width="78" height="78" as="geometry" />
        </mxCell>

        <mxCell id="be1" value="1) bootstrap" style="endArrow=classic;html=1;fontSize=10;" edge="1" parent="1" source="dev" target="bootstrap">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="be2" value="creates" style="endArrow=classic;dashed=1;html=1;fontSize=10;" edge="1" parent="1" source="bootstrap" target="stateS3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="be2b" value="creates" style="endArrow=classic;dashed=1;html=1;fontSize=10;" edge="1" parent="1" source="bootstrap" target="ddbLock">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="be3" value="2) apply site" style="endArrow=classic;html=1;fontSize=10;" edge="1" parent="1" source="dev" target="site">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="be4" value="creates" style="endArrow=classic;dashed=1;html=1;fontSize=10;" edge="1" parent="1" source="site" target="s3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="be5" value="state" style="endArrow=classic;dashed=1;html=1;fontSize=10;" edge="1" parent="1" source="site" target="stateS3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
